SRT简介:
Secure Reliable Transport (SRT) 是一个开源的传输协议架构,基于UDT(可靠UDP协议)实现,主要是优化在不可靠网络上的传输性能。SRT是时下最热门的互联网传输协议,相比较RTMP互联网传输,SRT具备"低延时、抗网络丢包"的优异特性,已被越来越多的互联网直播平台/云平台应用,比如腾讯云、阿里云、哔哩哔哩、微赞直播等。SRT可为广大用户带来更快速、更流畅的视频推拉流直播体验。使用RTMP,HTTP+FLV或者HLS,直播延时一般大于3秒,使用SRT直播可以将延时控制在1s以内,同时连接数一般小于10个,主要应用在视频通话、秀场连麦等应用场景。还有一种视频直播的场景,就是同时要求低延时和大并发的场景,比如赛事直播、股票信息同步、大班教育等。SRT可以很好地满足上述场景的要求。
目标:
为了做ffmpeg的二次开发使用srt进行直播推流,同时使用srt的多种弱网对抗的能力,提升直播的稳定性和低延迟。
环境:
vmware + centos 7
搭建步骤:
使用https://github.com/Edward-Wu/srt-live-server进行搭建,由于sls依赖于srt的库,所以需要一起下载srt库进行编译。
1:获取srt源码进行编译
cd ~/ && wget https://github.com/Haivision/srt/archive/refs/tags/v1.5.1.tar.gz && tar -xzvf v1.5.1.tar.gz && cd srt-1.5.1/ && yum install tcl pkgconfig openssl-devel cmake gcc gcc-c++ make automake -y && ./configure && make && make install
2:下载sls(srt-live-server)进行编译
cd ~/ && git clone https://github.com/Edward-Wu/srt-live-server.git && cd srt-live-server/ && make
3:进入srt-live-server的bin目录开启sls服务
./sls -c ../sls.conf ./sls: error while loading shared libraries: libsrt.so.1.4: cannot open shared object file: No such file or directory
如果提示错误:则需要修改配置文件:/etc/ld.so.conf
vim /etc/ld.so.conf
在文件末尾添加libsrt.so.1.4的文件所在路径
执行ldconfig使其生效
4:进入sls的bin目录,启动sls服务,显示如下表明服务启动成功
./sls -c ../sls.conf
5:启动ffmpeg推流测试
win10下执行命令:
ffmpeg -f gdigrab -framerate 30 -i desktop -vcodec libx264 -preset ultrafast -tune zerolatency -flags2 local_header -acodec libmp3lame -g 30 -pkt_size 1316 -flush_packets 0 -f mpegts srt://192.168.239.135:8080?streamid=uplive.sls.com/live/test1
6:拉流测试
ffplay -x 800 -y 600 -fflags nobuffer -i srt://192.168.239.135:8080?streamid=live.sls.com/live/test1
结束:srt当前的生态不如rtmp,但是对于直播的延时是显著的降低,后续可以使用ffmpeg的库进行srt直播推流。