Skip to content

fishgege/srt_live_server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

srt_live_server

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缓存

1. 编译简介

1.1 编译libsrt库

编译方法在srt源代码的readme.md中有详细介绍:srt_code_in_github

1.2 编译log4plus

工程项目的日志,使用的是跨平台的log4plus,所以需要编译。
下载地址:log4cplus

1.3 C++11环境

工程项目使用C++11开发,所以需要安装C++11以上的版本来进行编译。

2. srt_live_server

2.1 启动方式

./srt_live_server

启动后,开始监听srt推流端口号,和拉流端口号:

  • 推流端口号: 9090
  • 拉流端口号: 9091

固定规则:拉流端口号=推流端口号+1

3. 使用简介

3.1 客户端请使用ffmpeg/ffplay

  • ffmpeg编译时,请加入选项--enable-libsrt
  • ffplay编译前需要有libsdl2.0,请下载,并编译SDL2.0
  • ffplay编译时,请加入--enable-sdl

3.2 推流

输入命令行:

ffmpeg -re -i 100.flv -c copy -f mpegts srt://127.0.0.1:9090?streamid=100

说明:将本地100.flv的视频文件,不编码,按照时间戳,发送到srt服务器9090端口,streamid为100.

3.3 拉流

输入命令行:

ffplay -probesize 20000 srt://127.0.0.1:9091?streamid=100

可以观看对应的streamid=100的视频
注意:端口号是9091,拉流端口号=推流端口号+1

4. Roadmap

4.1 gop缓存: 2019.02.19 commited.

4.2 支持兼容rtmp:计划2019年完成

  • 支持srt转推到rtmp服务器
  • 支持srt向rtmp服务器回源

5. 相关连接

srt协议文档翻译:srt_protocal

About

live server based on srt protocal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.3%
  • C 1.5%
  • Makefile 0.2%