目标

获取一个直接填写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,然后再依次安装所需要的包