音视频流媒体开发【四十五】RTMP流媒体1-RTMP流媒体服务器
音视频流媒体开发-目录
iOS知识点-目录
Android-目录
Flutter-目录
数据结构与算法-目录
uni-pp-目录
服务器:SRS(Simple RTMP Server,⽀持RTMP、HTTP-FLV,HLS)
推流端:ffmpeg + OBS
拉流端:ffplay +VLC + srs播放器
1 安装和测试srs流媒体服务器
1.1 安装srs流媒体服务器
srs官⽹:https://github.com/ossrs/srs
码云的源速度快:https://gitee.com/winlinvip/srs.oschina.git
github的源速度慢:https://github.com/ossrs/srs.git
选择当前最新的release版本3.0
第⼀步,获取SRS。详细参考GIT获取代码
git clone https://gitee.com/winlinvip/srs.oschina.git
cd srs.oschina
#使⽤当前最新的3.0版本
git checkout -b 3.0 remotes/origin/3.0release
cd trunk
第⼆步,编译SRS。详细参考Build
./configure && make
第三步,编写SRS配置⽂件。详细参考RTMP分发
将以下内容保存为⽂件,譬如 conf/rtmp.conf ,服务器启动时指定该配置⽂件(srs的conf⽂件夹有该⽂件)。
vim conf/rtmp.conf
# conf/rtmp.conf
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
}
第四步,启动SRS。详细参考RTMP分发
./objs/srs -c conf/rtmp.conf
1.2 测试srs流媒体服务器
第五步,启动推流编码器。详细参考RTMP分发
使⽤FFMPEG命令推流:
ffmpeg -re -i rtmp_test_hd.flv -vcodec copy -acodec copy -f flv -y
rtmp://192.168.1.11/live/livestream
注: 上述命令中的flv完整路径,以及srs server ip,⼤家根据情况⾃⾏替换为实际值。 另外:默认情况下srs的rtmp采⽤1935端⼝,如果该端⼝被占⽤或修改了srs.conf中的端⼝,注意根据情况调整;防⽕墙如果开了,也要检测下1935是否允许访问。
第六步,观看RTMP流。详细参考RTMP分发
RTMP流地址为: rtmp://192.168.1.11/live/livestream
可以使⽤VLC观看。
或者使⽤在线SRS播放器播放:srs-player
备注:请将所有实例的IP地址192.168.1.11都换成部署的服务器IP地址。
2 使⽤OBS推流
ffmpeg的命令⾏⽅式不太友好,推荐使⽤主流的OBS开源推流软件,可从官⽹https://obsproject.com/下载最新版本,⽬前很多⽹络主播都是⽤它做直播。该软件⽀持本地视频⽂件以及摄像头推流。或者使⽤:https://pc.qq.com/detail/4/detail_23604.html 去下载。
2.1 ⽂件推流
- 先添加⼀个:“媒体源”
- 然后新建⼀个名称(随便输⼊)
- 选择本机视频⽂件
- 接下来是关键的部分,进⼊设置:
- 在串流->服务器这⾥,输⼊srs的地址:rtmp://192.168.1.11:1935/live (注意这⾥不要带livestream), 然后在串流密钥这⾥,才是输⼊livestream
- 设置好以后,就可以点击“开始推流”了。如果顺利,下⾯的状态栏,会显示⼀些实时数据:
注意:OBS进⾏推流占⽤率⽐较⾼,原因在于osb在推流时对源⽂件进⾏了解码再编码的操作。
2.2 摄像头推流
跟上⾯的其实差不多,区别只是添加“视频捕捉设备”
然后选择本机检测到的摄像头设备(⽐如:下图为Dell笔记本⾃带的Integrated Webcam)
接下来的操作就⼀样了:
2.3 更多设置
参⻅:OBS 推流 https://cloud.tencent.com/document/product/267/32726
3 使⽤VLC拉流
拉流:即从流媒体服务器读取视频流(说⽩了:就是播放)
推荐使⽤开源的VLC播放器 (当然其它任何⽀持⽹络媒体源播放的player其实都⾏),File -> Open Network,输⼊地址 rtmp://192.168.1.11:1935/live/livestream。
4 使⽤srs播放器拉流
http://ossrs.net/srs.release/trunk/research/players/srs_player.html