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文件夹下脚本用法
    1. 推流示例:..\\CRMedia.exe -live "rtmp://localhost/live/demo" -vn "USB2.0 HD UVC WebCam" -an "麦克风 (Realtek High Definition Audio)"  其中rtmp地址输入自己搭建的流媒体服务器地址即可,-vn 后面填写CRDevices.exe检测的视频设备名称,-an 填写音频设备名称
    2. 拉流示例:..\\CRMedia.exe -play_stream "rtmp://localhost/live/demo" -nobuffer

推拉流画面截图如下:

说明:由于服务器为本机搭建测试地址,故延迟较低,公网环境会比此数据增大至大概200ms左右,大家可自行测试

任务管理器性能截图如下:

推流端内存占用会稍高,由于是单路视频的推拉流,性能占用较低

扩展

demo脚本还提供其他低延时扩展应用

  1. 拉流端工具理论支撑市场主流网络流:rtmp、rtsp、hls、http-flv等,这里需要说明的是如果加载hls类型缓冲流必须关闭-nobuffer选项 否则会一直触发丢帧策略
  2. 文件流播放:..\\CRMedia.exe -play_stream "D:\\BaiduYunDownload\\视频\\春天景色 4K.mp4",命令如上,文件流支持大部分视频格式,mp4、flv、mkv等,支持h265编码格式
  3. 相机应用:..\\CRMedia.exe -play_dev -vn "USB2.0 HD UVC WebCam" 如上可在推拉流基础上开发相机应用,对比win系统相机应用优势在于渲染延迟较低,画面无延迟感,有兴趣可以对比测试
  4. 流转发应用:..\\CRMedia.exe -turn_live "rtmp://192.168.1.21/live/demo" "rtmp://127.0.0.1/live/demo_test" -nobuffer 此功能为将一个流转发至另外一个流地址使用,服务器可做简易负载均衡应用,此工具优势在于流转发延时极低,基本可保障在100ms内延迟

以上是关于rtmp直播如何实现200ms内级别延迟?的主要内容,如果未能解决你的问题,请参考以下文章

rtmp直播如何实现200ms内级别延迟?

rtmp直播如何实现200ms内级别延迟?

rtmp直播如何实现200ms内级别延迟?

rtmp直播如何实现200ms内级别延迟?

rtmp直播如何实现200ms内级别延迟?

rtmp直播如何实现200ms内级别延迟?