SRT公网点对点传输及搭建SRT流媒体服务器

SRT是一种开源传输技术,它是基于UDP协议的,与RTMP不同的是,它具有高码率低延迟的传输特性,加强了在复杂不稳定网络环境中的传输可靠性,它没有TCP冗余效应,长时间推流延时并不会增加。它不像NDI那样只适用于局域网传输,它更适用于公网环境下的信号传输。

S代表Secure,即安全加密的视频流,R代表Reliable,即具有从数据严重丢包中恢复的可靠性,T代表Transport,即动态适应变化的网络状况。

在音视频数据包传输的过程中,SRT会检测并适应两个传输点之间的实时网络状况,有助于补偿由于网络的拥塞而引起的抖动和带宽波动,它的错误恢复机制最大程度地减少了Internet连接中常见的数据包丢失。 SRT支持AES加密以实现端到端的安全性,从而确保您的视频流不会被盗取。

目前常用的VLC,OBS,vMix,larixbroadcaster都已支持SRT的推拉流,本文主要介绍一下基于SRT的公网点对点传输以及搭建SRT流媒体分发服务器,但是前提是发送端和接收端有一端具有公网固定IP,或者流媒体分发服务器有公网固定IP。

1、SRT的公网点对点传输

测试软件采用vMix 23版本,vMix支持SRT的多路信号推流和拉流,并可以对SRT参数进行简单设置,主要有推拉流延迟,密码,推流编码格式,分辨率,码率等等。为了测试延时,在vMix里打开显示北京时间的网页,与推流端的北京时间做对比测试延时。

SRT公网点对点传输及搭建SRT流媒体服务器
拉流端为DHCP非固定IP,拉流类型选择Caller,填上推流端的IP,端口,延时,点击OK即可。

同时在本机再打开一个实时的北京时间网页,即可与推流端推送过来的北京时间信号做对比,测试延时。

SRT公网点对点传输及搭建SRT流媒体服务器
我是安装在/home/libsrt目录下,该目录下的bin文件夹中srt-live-transmit为SRT直播流转发,srt-file-transmit为SRT文件转发,srt-ffplay为SRT流播放(仅在具有图形界面的操作系统中可用)。SRT分发服务器使用的是srt-live-transmit,开启方法也很简单:

cd /home/libsrt/bin
./srt-live-transmit srt://:4201 srt://:4202 -v

SRT公网点对点传输及搭建SRT流媒体服务器
这里右边是vMix最终输出,推流给自己搭建的SRT分发服务器,1080p分辨率,2M码率,延时设为100ms。左边是从SRT分发服务器拉流回来的画面,延时也设为100ms。可以看到,在公网SRT分发服务器做转发的情况下,一推一拉延时仅为600ms。

在之后的测试里,将码率增加到10M,一推一拉延时也仅为1秒,可见在高画质,低延时的需求下,SRT还是相当优秀的。同时有了云上的SRT分发服务器,发送端和接收端便不再受限于公网固定IP的限制,实际使用场景变得非常灵活。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24738 人正在系统学习中

来源:罗宇。

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月1日
下一篇 2020年5月1日

相关推荐