Skip to content

alongL/srs_ingest_helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

srs_ingest_helper

作用

此程序用于控制ffmpeg进程拉流并转推srs,实现自定义拉流。

原理

SRS实现了拉流功能,但是此功能需要修改配置文件,且不提供API,如果需要动态添加或删除拉流任务,自己修改配置文件是比较麻烦的。
SRS内部是通过ffmpeg实现拉流的,就是启动一个ffmpeg进程,把流拉过来,再推给SRS,其实这个工作我们自己也可以做,而且做的更加自动化。
这就是此程序所做的工作了。

编译和使用

执行下列命令进行编译,没有其他依赖
(注意:centos7 用的gcc 4.8的regex有bug,httplib.hpp用到了regex,所以在centos7上要用gcc 4.8以上的版本编译,gcc5.x 6.x 等等,否则运行时报错 std::regex error)
参见: https://github.com/yhirose/cpp-httplib#g

cd src
make -j4

ffmpeg和SRS程序要放到bin目录下,程序启动后会自动启动SRS,并读取tasks.csv中保存的任务,启动ffmpeg进程进行拉流。

SRS的编译参见SRS项目主页 https://github.com/ossrs/srs

ffmpeg的编译参见https://github.com/markus-perl/ffmpeg-build-script

API

程序对外提供http json api,用于添加和删除媒体源。

GET http://localhost:8086/addstream?src=rtmp://abc.com/live/my&dest=/live/my
GET http://localhost:8086/delstream?dest=/live/my
GET http://localhost:8086/listmedia

json API 详情参见 api.txt

release

如果不想编译只要程序,可以点击 release 下载编译后的程序 (包含ffmpeg和srs,可直接运行于centos 7.6 ubuntu 18.04)

About

a json controlled web server to help srs doing ingest.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages