目标
获取一个直接填写HTTP-FLV URL,就可以直接播放的网页播放器
环境
CentOS Linux release 7.9.2009 (AltArch)
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
(gcc version 4.8.2 (GCC) 会提示一些编译错误,不纠结,直接升级GCC)
下载编译运行
git clone https://github.com/ossrs/srs.git
./configure --h265=on
make
编译完成后即可启动SRS
# 启动
./objs/srs -c conf/srs.conf
# 查看日志
tail -n 30 -f ./objs/srs.log
开放端口
默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可以通过修改conf/srs.conf文件进行变更
SRS网页管理界面
网址:http://192.168.12.208:8080/
点击进入SRS控制台,可以查看相关详情,包括当前系统的内存CPU,当然最有用的还是查看当前的视频流参数,查看当前推流个数和用户点播个数
SRS网页点播HTTP-FLV页面
网址:http://192.168.12.208:8080/players/?schema=http
推流指令
ffmpeg -rtsp_transport tcp -i rtsp://admin:admin12345@192.168.11.204:554/h265/ch1/main/av_stream -c copy -f flv rtmp://192.168.12.208:1935/live/test
点播URL
http://192.168.12.208:8080/live/test.flv
备注
目前如果推流如上是H265码流,需要在Google浏览器上才能调用flv.js硬件解码,Edge点播失败
当然FFmpeg默认是不支持H265推流到RTMP,因此当前的FFmpeg是打过补丁的
编译错误
"none" is not exported by the List::Util module
解决
automake是一个perl脚本,直接修改automake第76行,将use List::Util 'none'; 改为 use List::Util;即可,需要先执行which automake找到对应的路径
Please install tclsh by: yum install -y tcl
[root@taishan-atlas trunk]# yum install -y tcl
Please install unzip by: apt install -y unzip
Please install tclsh by: apt install -y tclsh
Debian操作系统,先apt-get update,然后再依次安装所需要的包