live server based on srt protocal
srt_live_server是基于SRT传输协议的直播服务,支持mpegts格式的推流,拉流。
当前ffmpeg4.1版本以上已经支持srt协议,可以用ffmpeg/ffplay进行测试验证。
当前支持功能:
- srt live push: srt直播推流
- srt live pull: srt直播拉流
- srt live mpegts gop: srt直播gop cache缓存
编译方法在srt源代码的readme.md中有详细介绍:srt_code_in_github
工程项目的日志,使用的是跨平台的log4plus,所以需要编译。
下载地址:log4cplus
工程项目使用C++11开发,所以需要安装C++11以上的版本来进行编译。
./srt_live_server
启动后,开始监听srt推流端口号,和拉流端口号:
- 推流端口号: 9090
- 拉流端口号: 9091
固定规则:拉流端口号=推流端口号+1
- ffmpeg编译时,请加入选项--enable-libsrt
- ffplay编译前需要有libsdl2.0,请下载,并编译SDL2.0
- ffplay编译时,请加入--enable-sdl
输入命令行:
ffmpeg -re -i 100.flv -c copy -f mpegts srt://127.0.0.1:9090?streamid=100
说明:将本地100.flv的视频文件,不编码,按照时间戳,发送到srt服务器9090端口,streamid为100.
输入命令行:
ffplay -probesize 20000 srt://127.0.0.1:9091?streamid=100
可以观看对应的streamid=100的视频
注意:端口号是9091,拉流端口号=推流端口号+1
- 支持srt转推到rtmp服务器
- 支持srt向rtmp服务器回源
srt协议文档翻译:srt_protocal