rtmp直播如何实现200ms内级别延迟?
Posted 宸瑞-疾风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rtmp直播如何实现200ms内级别延迟?相关的知识,希望对你有一定的参考价值。
实测
接上文,今天分享下基于上一篇博客开发的PC端直播SDK及相关衍生工具。方便直播开发者最对比测试
下载地址
csdn:测试工具
暂提交csdn链接,已固定免费积分下载
测试说明
sdk文件结构如上,仅支持win平台运行,使用之前请确保已安装vc2015运行环境,如果没有安装请双击vcredist2015.exe环境包
- CRDevices.exe 为pc端摄像头和麦克风设备列表读取工具
双击运行结果如上图,可读取音频麦克风设备名称和摄像头名称,摄像头可读取id(部分采集卡名称可能相同,需要通过id区分)采集格式、分辨率、帧率等信息
- CRMedia.exe为推拉流主程序,具体用法可见demo文件夹下脚本用法
- 推流示例:..\\CRMedia.exe -live "rtmp://localhost/live/demo" -vn "USB2.0 HD UVC WebCam" -an "麦克风 (Realtek High Definition Audio)" 其中rtmp地址输入自己搭建的流媒体服务器地址即可,-vn 后面填写CRDevices.exe检测的视频设备名称,-an 填写音频设备名称
- 拉流示例:..\\CRMedia.exe -play_stream "rtmp://localhost/live/demo" -nobuffer
推拉流画面截图如下:
说明:由于服务器为本机搭建测试地址,故延迟较低,公网环境会比此数据增大至大概200ms左右,大家可自行测试
任务管理器性能截图如下:
推流端内存占用会稍高,由于是单路视频的推拉流,性能占用较低
扩展
demo脚本还提供其他低延时扩展应用
- 拉流端工具理论支撑市场主流网络流:rtmp、rtsp、hls、http-flv等,这里需要说明的是如果加载hls类型缓冲流必须关闭-nobuffer选项 否则会一直触发丢帧策略
- 文件流播放:..\\CRMedia.exe -play_stream "D:\\BaiduYunDownload\\视频\\春天景色 4K.mp4",命令如上,文件流支持大部分视频格式,mp4、flv、mkv等,支持h265编码格式
- 相机应用:..\\CRMedia.exe -play_dev -vn "USB2.0 HD UVC WebCam" 如上可在推拉流基础上开发相机应用,对比win系统相机应用优势在于渲染延迟较低,画面无延迟感,有兴趣可以对比测试
- 流转发应用:..\\CRMedia.exe -turn_live "rtmp://192.168.1.21/live/demo" "rtmp://127.0.0.1/live/demo_test" -nobuffer 此功能为将一个流转发至另外一个流地址使用,服务器可做简易负载均衡应用,此工具优势在于流转发延时极低,基本可保障在100ms内延迟
以上是关于rtmp直播如何实现200ms内级别延迟?的主要内容,如果未能解决你的问题,请参考以下文章