本片博客将详细介绍如何搭建一个RTMP流媒体服务器,包含源码下载,编译常见问题解决方法以及流媒体测试,最后讲解了如何利用obs软件实现推流。
服务器:SRS 3.0(Simple Realtime Server,支持RTMP、HTTP-FLV、HLS、WebRTC)
推流端:ffmpeg + OBS
拉流端:ffplay +VLC + srs播放器
🎡导航小助手🎡
- 1.安装SRS流媒体服务器
- 2.测试srs流媒体服务器
- 3.使用OBS推流
1.安装SRS流媒体服务器
利用码云来下载源代码,速度块
git clone -b 3.0release https://gitee.com/ossrs/srs.git
编译
cd srs/trunk
./configure
make
编译可能遇到的问题,没有就跳过
第一种:build CherryPy-3.2.4 failed, ret=127
查看3rdparty中有安装包,
需要到objs目录下安装才有效
cp 3rdparty/CherryPy-3.2.4.zip ./objs/
解压好就ok了。
第二种:Build openssl-1.1.0e failed, ret=2
这个是由srs3.0
自带openssl
老版本导致的,可以自己手动去下载一个新的openssl
。
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8
sudo apt-get install libgtk2.0-dev
然后再重新配置:
./configure --full --use-sys-ssl
然后:
make
如果报错:
执行
/configure --without-utest --full --use-sys-ssl
之后再make
成功效果如下:
启动服务器:
./objs/srs -c conf/srs.conf
查看是否已经启动了srs:
ps -ef | grep srs
或者
./etc/init.d/srs status
实时查看SRS日志:
tail -f ./objs/srs.log
停止、开始srs:
./etc/init.d/srs stop
./etc/init.d/srs start
查看版本:
./objs/srs -v
以上完成了RTMP流媒体搭建。
查看RTMP配置
cd conf
vim ttmp.conf
conf/rtmp.conf中的配置默认配置为:
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
}
1935
是rtmp
使用的端口,如果改动需要在推拉流时指定端口号:如rtmp://192.168.100.109:2935/live/yqw
其中vhost __defaultVhost__
就是rtmp://本机ip/live/livestream
后的/live/livestream
,如果不改动则默认是这个。
/live/livestream
可以任意改变比如/x/y
,只要推拉流一致就行,但必须是两个标识。
查看本机ip
ifconfig
2.测试srs流媒体服务器
启动推流编码器
使用 FFmpeg
或 OBS
推流:
ffmpeg -re -i test.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.3.181/live/livestream
其中,test.flv
,需要修改为实际flv
文件名称
rtmp://192.168.3.181/live/livestream
其中,ip需要改成上面ubuntu查询的ip号。
ffplay
接收:
ffplay -x 800 -y 600 rtmp://192.168.3.181/live/livestream
当然也可以使用vlc等进行接收。
srs在线播放不再支持trmp流的播放。
3.使用OBS推流
实测可用破解版下载:链接
文件推流
新添加一个“媒体源”
选择要推流的文件,多种流媒体文件都可以进行推流。
重点:设置“服务器”和“推码流”
之后点击“ 开始直播 ”
此时ubuntu里,
查看日志,发现有流上传,此时可以拉流查看。
当然,obs也可以实现多种输入的推流,可以尝试屏幕,窗口,摄像头等等。