测试RTMP媒体流延迟时间

来源:互联网 发布:mysql for python 2.7 编辑:程序博客网 时间:2024/06/05 03:43


目的: 为了在有限环境下对rtmp协议延迟有个直观的认识,进行以下测试

步骤:1.通过使用网络上开源项目bigbluebutton的测试服务器提供的red5(bbb)服务器作为服务端,进行测试,该服务器IP地址为:198.27.69.80(2017-10-16),部署的red5应用为bigbluebutton(ip的获取方法见下文)

            2.然后使用Adobe  Flash Media Live Encoder向该bbb服务器发布一个视频流,并用rtmp播放器播放该视频流,观察其延时。

            3.创建本地red5 服务器,采集海康摄像头视频发布到本地服务器(进行这步测试主要目的是1.海康摄像头画面有时间显示2.测试媒体转发会不会造成明显的延时) 采集方式有两种,一种是使用我们当前公司的采集程序进行采集,一种是使用ffmpeg,利用海康的rtsp媒体协议进行采集并以rtmp发布到red5(方法命令见下文).

             4.将发布到本地的媒体流循环转发到本地,观察延时时间。

结果:通过测试,发现该服务器位于加拿大魁北克,我当前位于中国北京,延时最好情况下为23s(秒),随着时间推移,每次播放端进入缓冲状态,会增加一次延时.数分钟后 ,延迟竟达到60s(秒)以上。而通过本地测试,我自己实现的媒体转发功能并未产生明显的延时。





备注:1.如何获取网络上的red5服务器的

             答:通过浏览器进入bigbluebutton提供的会议demo中,打开视频共享,使用wireshark进行抓包,抓到的rtmp包目的地址即为198.27.69.80。因为做过bbb二次开发,知道其red5存在应用名有bigbluebutton,sip,video等。

             2.如何获得ip所在地区的

               答:通过淘宝提供的接口:http://ip.taobao.com/service/getIpInfo.php?ip=198.27.69.80获取

                 参见:http://blog.csdn.net/he20101020/article/details/21519417

            3.如何将海康摄像头发布到red5服务器的

               使用ffmpeg的话,先下载了个ffmpeg windows版,在命令行运行:

                ffmpeg -re -i rtsp://admin:test12345@192.168.2.45:554/h264/ch1/sub -f flv   rtmp://192.168.2.66/bigbluebutton/1234

                命令解析为:ffmpeg -re -i rtsp://海康用户名:密码@IP:PORT/获取编码/通道号/码流类型(子码流)  -f flv rtmp://IP/APP/StreamName

           

原创粉丝点击