OBS推WebRTC流,并添加毫秒级时间显示

作者在用OBS推WebRTC流,并用浏览器观看推送的实时流。另外就是想看一下延迟有多少。采用一台电脑,流媒体服务器为SRS,相关配置比较简单,可以自行搜索。

推送的流 http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream

拉取的流 http://localhost:1985/rtc/v1/whep/?app=live&stream=livestream

OBS 添加时间的插件 是 date-and-time.lua,我也是在这个基础上做了一点改动,感谢原作者。如何配置 date-and-time.lua,可以自行搜索。

Lua 复制代码
function set_time_text()
	--local text = os.date(format_string)
	
	local date_table = os.date("*t")
	local ms = string.format("%.3f", os.clock()) 
	local hour, minute, second = date_table.hour, date_table.min, date_table.sec
	local year, month, day = date_table.year, date_table.month, date_table.day   
	local text = string.format("%s", ms)

	if text ~= last_text then
		local source = obs.obs_get_source_by_name(source_name)
		if source ~= nil then
			local settings = obs.obs_data_create()
			obs.obs_data_set_string(settings, "text", text)
			obs.obs_source_update(source, settings)
			obs.obs_data_release(settings)
			obs.obs_source_release(source)
		end
	end

	last_text = text
end

local ms = string.format("%.3f", os.clock())

主要是这句,下面的代码没有去掉,方便需要自行修改的同学,获取日期等信息

Lua 复制代码
function activate(activating)
	if activated == activating then
		return
	end

	activated = activating

	if activating then
		set_time_text()
		obs.timer_add(timer_callback, 100)
	else
		obs.timer_remove(timer_callback)
	end
end

obs.timer_add(timer_callback, 100)

主要改了这句,这句是设置定时器的周期,原来是1000,也就是1秒触发一次。我改成了100,也就是100毫秒。这里可以看出,该插件是定时获取系统时间,然后添加到视频中。因此如果延迟低于定时器周期,其实是测不出来的。

100毫秒触发一次,肉眼是看不出来差多少的。这里可以采取截屏的方式,多截几次,大概可以看出延迟有多少。这种方式可以粗略测试延迟,如果有更精确的方法,欢迎讨论。

完整的lua文件:

https://download.csdn.net/download/SimpleForest/90481050?spm=1001.2014.3001.5503

最后是我自己的测试结果:

相关推荐
平行云8 天前
国产GPU云渲染适配实战:驱动兼容、编码调优与多路并发
unity·ue5·webrtc·webgl·实时云渲染·云桌面·像素流送
隐擎fox9 天前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
福大大架构师每日一题11 天前
mediamtx v1.21.0 发布:Media-over-QUIC、RTSP、HLS、WebRTC 与安全能力全面升级
安全·webrtc
脏脏a12 天前
Neko 自托管实战:WebRTC 远程浏览器、多用户权限与公网访问
webrtc
cuijiecheng201813 天前
从 6.49 秒到约 1.9 秒:RK3588上的WebRTC 实时流启动速度优化记录
webrtc
SendTomo14 天前
SendTomo 与 send.wang 全景对比评测与实战指南
网络·网络协议·tcp/ip·webrtc·p2p
java_logo14 天前
Docker 部署 SRS:轻松搭建实时音视频流媒体平台
docker·容器·webrtc·实时音视频·rtmp·http-flv·轩辕镜像
wjcroom15 天前
一个可以在线多人玩的五子棋开发与布署方法-WebRTC和WebSocket的测试方法
websocket·网络协议·webrtc
cuijiecheng201818 天前
RK3588 WebRTC 实时流卡顿优化:从视频桥接到 H.264 PTS 回退
音视频·webrtc·h.264
SendTomo20 天前
send.wang:基于浏览器WebRTC实现无客户端文件互传
网络·python·网络协议·webrtc·p2p