猿创征文|见过的最傲娇的开源管理者,真的气人,SRS视频流方案
Posted 香菜+
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猿创征文|见过的最傲娇的开源管理者,真的气人,SRS视频流方案相关的知识,希望对你有一定的参考价值。
公司需要做视频流的监控,在调研了几家的监控方案,最终选择了开源的方案,一方面因为省钱,一方面也确实简单。调研的过程就不多说了,直接开始吧
1、需求
先说下公司的基本需求
- 在线视频的观看,路侧视频流可以直接点击观看
- 路侧视频需要存储,回放
这个我调研了几种视频方案,最终选择了SRS.
2、SRS介绍
SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。
说简单点,SRS就是直播开源软件,你可以自己做个抖音直播,自己卖货,发大财,想想都开心。哈哈哈,扯远了。
官方文档地址:Docker | SRS
3、环境部署
3.1 启动服务
中了docker 的毒,所以我还是喜欢docker部署环境,一键配置,真的是爽,废话不多说,直接走起。
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \\
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/docker.conf
这个看起来没啥难度,这样就启动了一个SRS的服务,下面就可以开心的玩耍了,我们推个流试试。
3.2 验证服务
服务启动之后,直接搞个推流软件,现在常用的是OBS studio,这里放个动图
1、显示点击设置,然后填入推流的数据地址:rtmp://192.168.116.128:1935/live
2、串流秘钥是你的身份id,这里填写的是123,别人可以通过这个访问,然后点击开始推流。
3、打开后台管理平台,http://192.168.116.128:8080/,注意这里换成你自己的ip和端口
4、点击SRS播放器,在输入流的地址,http://192.168.116.128:8080/live/123.flv,应该看到你的直播桌面了,是不是很简单。
3.3 配置的映射
我们开发一般不会使用缺省配置,必须要把配置映射到本地,如果你不确定配置的具体地址,可以将容器启动之后,进入容器查看,找到配置所在地址
因为我有保存的需求,所以我还将视频文件的保存地址做了映射,可以作为回放
-v /home/chongxin/srs2/conf:/usr/local/srs/conf
-v /home/chongxin/srs2/live:/usr/local/srs/objs/nginx/html/live
/usr/local/srs/conf 是所有的配置地址
/usr/local/srs/objs/nginx/html/live\\ 是所有的录像地址
4、方案选择
4.1 SRS 注意点
- Http回调,通过hook的方式回调,可以建立一个服务进行控制。
- 人对于延迟的感知是400ms
- SRS支持HLS/RTMP两种成熟而且广泛应用的流媒体分发方式。
- HTTP本质上还是文件分发,网页是HLS还是HTTP
- 稳定的较小延迟:RTMP延迟在0.8-3秒,能应用于交互式直播,视频会议,互动式直播等等。如果对延时有一定要求,就不要选择HLS,RTMP会是最佳选择。
- rtmp 测试有2秒的延迟,有没有更低延迟呢。有,就是webRTC。正常延迟为1秒之内。
- HLS流,作为直播正常延迟10秒起步,所以也不推荐使用。如果要配置
- 录制,在服务器开启DVR即可
- 服务器端定制的实现方式,就是HTTP回调。如需要api回调的方式获取dvr,在配置文件加入以下即可。
- DVR | SRS
- SRS对rtsp 不友好,可以使用其他的方式
- SRS 的端口和资源 端口和资源 | SRS
- HLS流地址为: http://192.168.1.170:8080/live/livestream.m3u8,可以通过这个观看回放视频
4.2 方案
-
DVR实现
dvr 也就是录制视频,可以控制视频的存储时间
2.视频录制
视频录制在srs的方案只能通过forward的方式
这里贴一下我的配置,因为在同一台机器上,我有两个配置。
看一下启动的脚本master 的启动脚本
CANDIDATE="192.168.116.128"
docker run --restart=always -it \\
-p 1935:1935 -p 1985:1985 -p 8080:8080 \\
--name ccp-srs \\
-v /home/chongxin/srs/conf:/usr/local/srs/conf\\
-v /home/chongxin/srs/live:/usr/local/srs/objs/nginx/html/live\\
--env CANDIDATE=$CANDIDATE \\
-p 8000:8000/udp \\
-d registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/sc/forward.master.conf
看下forward.master.conf配置:
# the config for srs to forward
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-forward
# @see full.conf for detail config.
listen 1935;
max_connections 1000;
pid ./objs/srs.master.pid;
daemon off;
srs_log_tank console;
http_server
enabled on;
listen 8080;
dir ./objs/nginx/html;
vhost __defaultVhost__
tcp_nodelay on
min_latency on;
play
gop_cache off;
queue_length 10;
mw_latency 100;
publish
mr off;
forward
enabled on;
destination 192.168.116.128:19350; # 这里配置slave的地址
http_remux
enabled on;
mount [vhost]/[app]/[stream].flv;
看下slave的启动脚本
CANDIDATE="192.168.116.128"
docker run --restart=always -it \\
-p 19350:19350 -p 2985:1985 -p 9080:8080 \\
--name ccp-follower \\
-v /home/chongxin/srs2/conf:/usr/local/srs/conf\\
-v /home/chongxin/srs2/live:/usr/local/srs/objs/nginx/html/live\\
--env CANDIDATE=$CANDIDATE \\
-p 9000:8000/udp \\
-d registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/sc/forward.slave.conf
看下forward.slave.conf配置:
# the config for srs to forward
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-forward
# @see full.conf for detail config.
listen 19350;
max_connections 1000;
pid ./objs/srs.slave.pid;
daemon off;
srs_log_tank console;
http_server
enabled on;
listen 8080;
dir ./objs/nginx/html;
vhost __defaultVhost__
hls
enabled on;
hls_path ./objs/nginx/html;
hls_fragment 10;
hls_window 60;
http_remux
enabled on;
mount [vhost]/[app]/[stream].flv;
5、总结
SRS的使用过程中还是有许多的问题,官方公布了微信公众号,这个是TM最难加的微信群,直到现在还没进去,真TM不尊重人,要不是公司内部有人用,还真他妈不选这个方案。已经在打算放弃了。
在加管理者的个人微信之后,经过差不多1天的时间才通过,然后说想进群,说要看搭建的环境,我晚上下班了,就说第二天发他,第二天(10月28号)我准时发了,然后丢过来文档发给我看,我也按他的要求去看了,10月31号微信他说想加群,但是再也没有下文了,真他妈的傲娇,生涯见过的最傲娇的开源管理者,这是害怕使用者交流吗?
今天是11月10号,已经过去10天了,还没回复我,真的气人。
对于这种事,你怎么看? 欢迎留言!!!
以上是关于猿创征文|见过的最傲娇的开源管理者,真的气人,SRS视频流方案的主要内容,如果未能解决你的问题,请参考以下文章