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

AI摘要

作者用OBS推WebRTC流,以SRS为流媒体服务器,用浏览器观看实时流并测延迟。通过修改date - and - time.lua插件,将定时器周期从1秒改为100毫秒添加毫秒级时间显示。可截屏粗略测延迟,还提到用ffmpeg给视频文件打时间水印对比。

作者在用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,可以自行搜索。

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()) 

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

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.youkuaiyun.com/download/SimpleForest/90481050?spm=1001.2014.3001.5503

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

后来又想了一下,如果是视频文件的话,可以先用ffmpeg打上时间水印,然后进行比较。

ffmpeg -i video.mp4 -vf "drawtext=fontcolor=white:fontsize=100:x=10:y=10:box=1:boxcolor=black@1.0:boxborderw=5:text='%{pts\:hms}'" output.mp4 -y

效果如下:

基于webRTC推流的直播方案 直播 成熟的直播业务,诸如抖音、快手、斗鱼,多采用自研推流端或者OBS,由于公司人才匮乏和与业务融合的需求,所以使用web端推流的方式。 webRTC WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。 在我看来,低延迟是webRTC最大的优点,相对来说,图像质量不会太高。当然对于现在的我 阅读详情

相关推荐

基于OBS和SRS进行推流和webrtc拉流

基于OBS和SRS进行推流和webrtc拉流

Gpointy的博客 5695

利用 OBS 推送 WEBRTC 流到 smart rtmpd

通用的 webrtc 对于 SDP 协议的交换已经有对应的 RFC 草案出炉了。这就是 WHIP( push stream ) & WHEP ( pull stream ) .

freeabc的专栏 1826

实时时间OBS Studio插件(附下载地址与效果),实时时间插件date-and-time.lua的使用

OBS Studio插件,获取实时时间插件date-and-time.lua的使用 目录 1.效果及软件版本 2.文件与下载地址 3.放置位置 4.具体设置 5.注意 1.效果及软件版本 实时显示时间效果: 软件版本: OBS Studio 24.0.3(64-bit,windows) 2.文件与下载地址 文件:Date and Time1.0 下载名默认为:date-and-time.lua 下载地址:https://obsproject.com/for...

Ticky的博客 3万+

OBS使用WebRTC进行腾讯云推流播流

OBS使用WebRTC进行腾讯云推流播流

salestina的博客 5123

【OBS-studio-webrtc】obs推流到webrtc服务器端:接管OBS输出流到自定义推流服务

官方最新版本(20210219) 参考大神的文章 理解obs架构设计。 添加自定义输出流 webrtc_custom_output_info 桥接输出的YUV到自己的输出流中。 实现一个 obs_output_info 结构: 当OBS-OUTPUTS 插件加载时,注册了这个自定义输出流 obs-outputs 插件 struct obs_output_info webrtc_custom_output_info = { "webrtc_custom_output", ..

突围 3296

OBS推流延迟优化至300毫秒实战方案

通过本章的系统分析,我们可以看到,OBS低延迟优化方案不仅涉及单一参数的调整,更需要从推流链路整体出发,结合协议选择、架构设计等多方面进行协同优化。下一章将深入探讨编码参数调优方法,包括GOP设置、码率控制模式、音频缓冲区设置等关键技术点,进一步挖掘延迟优化的空间。

weixin_36296444的博客 1830

obs 时间显示插件

obs 时间显示插件

qq_42339350的博客 1万+

OBS-studio-webrtc:这是OBS-studio的分支,具有对webrtc的通用支持。 它利用了大多数浏览器使用的相同的webrtc实现

OBS工作室WebRTC 该项目是OBS-studio的一个分支,支持WebRTC。 WebRTC支持来自包括至少部分由chrome,firefox和safari使用的webrtc.org的开源实现。 该实现位于“ plugins / obs-outputs”目录中。 WebRTCStream文件包含高级实现,而xxxx-stream文件包含给定服务的特定实现。 目前支持以下服务和站点: Janus“ videoRoom”服务器(使用WHIP) Millicast.com PaaS 不要忘了与原来的OBS-Studio项目和其梦幻般的团队分享爱。 二进制文件 预编译和测试过的二进制文件在。 编译,安装和包装 遵循原始的编译,安装和打包指南

推流工具OBS 支持webrtc推流

OBS 是一款好用的直播流媒体内容制作软件,为用户提供了视频、文本、图像等的捕获录制功能,OBS 界面简洁并专业,功能强大。OBS 程序和其源代码都是免费提供给大家使用,版本更新一直比较活跃,支持 OS X、Windows、Linux 操作系统,适用于多种直播场景,满足大部分直播行为的操作需求。 01行业背景 直播技术飞速发展让各个行业的用户体验呈现多样化和个性化,不同业务场景下创新实践满足大众对于音视频互动体验和参与的高标准要求。历经 2020 年初的巨变之后,以视频、游戏、电商、教育为主的互联网经.

hero 6540

obs-文本-脚本 date-and-time.lua

obs-文本-脚本 date-and-time.lua

OBS时钟插件 OBS时间插件

OBS时钟插件 OBS时间插件

obs+srs+nginx实现直播推流拉流

推流端一般为OBS、FFmpeg等推流软件或者摄像机等设备通过推流协议将编码后的音视频流推送到流媒体服务器。目前主流的流媒体服务器为Nginx-rtmp、SRS、EasyDarwin和Red5等。流媒体服务器将视频流进行解码封装之后,拉流端通过流媒体协议从流媒体服务器获取数据流。拉流端一般为PC端或者移动设备。不同的拉流设备对流媒体协议的兼容性不同。

xuweilin的博客 2704

livox avia平台搭建

livox雷达数据采集平台搭建

Shilong的博客 1310

如何用WHIP协议WebRTC推流到NodeMediaServer

NMS v3.21支持WHIP协议的WebRTC推流,提供摄像头/桌面采集功能,支持OBS和网页集成。配置简单,支持HTTP/HTTPS推流,可主动结束推流或自动超时断开。

illuspas的专栏 2383

手把手拆解UCIe协议层:从Raw Mode到Flit Mode,数据包到底经历了什么?

本文深入解析UCIe协议层的数据包处理机制,从Raw Mode到Flit Mode的三大变体(Standard 256B、68B-Enhanced、Latency-Optimized),详细揭示数据包在不同模式下的封装与转换过程。通过工程师视角,展示协议层如何实现多模式动态切换、错误恢复及与D2D Adapter的协同设计,为芯片级互连技术提供实践指导。

weixin_28728495的博客 239

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(一)

CHB-MIT癫痫EEG脑电数据处理CHB-MIT头皮脑电图数据介绍CHB-MIT头皮脑电图数据下载CHB-MIT头皮脑电图数据处理提取原始数据滤波(0.1~50hz)数据分块(时间窗口) CHB-MIT头皮脑电图数据介绍 该数据库收集自波士顿儿童医院,其中包括患有难治性癫痫发作的儿科患者的脑电图记录。停用抗癫痫药物后最多持续几天对受试者进行监测,以表征其癫痫发作并评估其对手术干预的候选资格。 从22位受试者中收集了23个病例的记录(5例男性,3至22岁; 17例女性,1.5至19岁)。 (案例chb21是

AI_DOG的博客 1万+

OBS推流WebRTC操作流程(腾讯云服务)

OBS推流WebRTC

oolonglab的博客 3726

Codesys电子凸轮Cam表实战:从可视化配置到程序化构建

本文详细介绍了Codesys电子凸轮Cam表的实战应用,从可视化配置到程序化构建的全过程。通过包装机和印刷机案例,解析Cam表的基础设置、调试技巧及动态构建方法,帮助工程师快速掌握电子凸轮技术,提升运动控制精度和效率。

weixin_29309785的博客 298

5分钟搞定SRS+WebRTC直播测试:用OBS推流网页时钟的极简教程

本文提供了一个极简的SRS+WebRTC直播测试教程,旨在5分钟内完成从OBS推流到网页播放的全链路验证。通过Docker一键部署SRS服务器,使用OBS捕获动态网页时钟作为视频源进行推流,并利用SRS内置的WebRTC播放器实现低延迟拉流播放,直观感受WebRTC的实时性优势。

g8f9d0s1a2的博客 789

【华为OD技术面】 - 考到的Lettcode手撕算法代码真题目录

【华为OD技术面 - 考到的Lettcode手撕算法代码真题目录

算法大师! 7816

1.4 KFD 设备文件的获取与驱动握手协议

本文分析了OpenClose模块中libhsakmt与KFD内核驱动建立通信的过程。首先通过hsaKmtOpenKFD()函数打开/dev/kfd设备文件,建立用户态与内核态的通信通道。随后通过AMDKFD_IOC_GET_VERSION ioctl命令完成版本握手,确认双方的接口兼容性。KFD驱动采用Major.Minor二级版本号体系,当前主要版本为1,从1.1演进到1.19不断添加新功能。整个过程构成了用户态与内核态之间的"建连协议",是所有后续GPU操作的基础前提。

图形/计算GPU的驱动与虚拟化技术分享园地 607

直播推流全面指南

直播推流(Live Streaming Push)是指将视频/音频内容从采集设备(如摄像头、电脑、手机)传输到直播服务器的过程。

A2321161581的博客 4999

车载ECU底软测试:方法与技术的深度解析

底软是运行在 ECU 硬件平台上的基础软件,它为上层应用程序提供了硬件驱动、操作系统服务、通信协议栈等功能。底软的主要功能包括:硬件驱动:负责与 ECU 的各种硬件外设进行通信和控制,如 GPIO、UART、SPI、CAN 等。操作系统服务:提供任务调度、内存管理、中断处理等功能,确保系统的实时性和稳定性。通信协议栈:实现 ECU 与其他 ECU 或外部设备之间的通信,如 CAN、LIN、FlexRay 等。诊断服务:负责对 ECU 的故障进行诊断和处理,并将故障信息存储在故障码存储器中。

天赐好车的博客 1429
上一篇: 大模型基础pdf
下一篇: ffmpeg 添加毫秒时间戳
SimpleForest
博客等级 码龄10年 171粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值