直播平台自建,大多选择开源的项目,比如SRS,Nginx RTMP,RED5等,如果对直播的质量要求不高,用户量又少,当然可以自建。如果用户量大,质量要求高,还是找个成熟的方案,多花点钱。
目录
1. SRS 简介
2. 搭建准备
3. 直播流程框图
4. SRS Docker搭建步骤
5. obs采集视频流
6. 客户端播放rtmp流
7. 结束语
1
SRS简介
SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群。
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS, 包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、流截图、 转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、 转封装成HDS、转封装成DASH、录制成FLV/MP4。SRS包含大规模集群如CDN业务的关键特性, 譬如RTMP多级集群、源站集群、VHOST虚拟服务器 、 无中断服务Reload、HTTP-FLV集群。此外,SRS还提供丰富的应用接口, 包括HTTP回调、安全策略Security、HTTP API接口、 RTMP测速。SRS在源站和CDN集群中都得到了广泛的应用Applications。
github地址:https://github.com/ossrs/srs
wiki:https://github.com/ossrs/srs/wiki/v3_CN_Home
Docker:https://github.com/ossrs/srs-docker/
2
搭建准备
- 开源推流工具obs 下载地址:https://obsproject.com/
- video.js 网页播放流媒体 下载地址: https://docs.videojs.com/docs/api/video.html
3
直播流程框图
obs端:将采集的视频流以rtmp协议推送至SRS流媒体服务器。
客户端播放器:从SRS流媒体服务器上拉取RTMP流进行播放。
4
SRS Docker搭建步骤
SRS 支持Docker搭建,省略了编译安装,本次为单机安装,本机地址为192.168.229.129。
- 获取SRS 最新镜像
[root@master ~]# docker pull ossrs/srs
Using default tag: latest
latest: Pulling from ossrs/srs
ab5ef0e58194: Pull complete
af73acd32981: Pull complete
692b57ace846: Pull complete
Digest: sha256:752afb44f062cdea5adcb1119cf9c295494772d5705bb3400e3a63d15a7f0ba1
Status: Downloaded newer image for ossrs/srs:latest
- 运行镜像
[root@master ~]# docker run -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:latest
[2020-04-27 14:10:49.313][Trace][1][0] XCORE-SRS/3.0.139(OuXuli)
[2020-04-27 14:10:49.314][Trace][1][0] config parse complete
[2020-04-27 14:10:49.314][Trace][1][0] write log to file ./objs/srs.log
[2020-04-27 14:10:49.314][Trace][1][0] you can: tailf ./objs/srs.log
[2020-04-27 14:10:49.314][Trace][1][0] @see: https://github.com/ossrs/srs/wiki/v1_CN_SrsLog
其中:1935端口为rtmp服务端口,1985 为控制台口,8080 为默认端口。
访问:http://192.168.229.129:8080
点击 http://1192.168.229.129:1985/console
通过控制台,能看到服务器和客户端的使用情况,服务器的负载情况等。
5
obs采集视频流
OBS 是adobe 的一个视频采集软件,可以用来作为推流工具。不使用直播姬,使用obs也可以完成哔哩哔哩 的直播。
- 1.添加视频源
可选择桌面,摄像头,浏览器网址等,为了便于分析直播的延迟时间,这里的来源为浏览器网页上的实时时间
输入一个显示时间的网址:https://baidu.com/s?wd=时间
以上就完成了采集源为浏览器网址的设置。
- 推流设置
点击设置选项,选择推流设置
服务方式选择 为“自定义”,服务器为:rtmp://192.168.229.129/live/live,串流秘钥为:stream
- 开始推流
点击开始推流按钮,进行推流
- 查看SRS的控制台页面会看到,服务器已经接收到RTMP流。
6
客户端拉取播放RTMP流
- 1. 使用SRS 控制台页面的预览,进行播放
会看到以下界面:
- 使用自定义的html页面播放
参考:https://www.cnblogs.com/FHC1994/p/9981440.html
在window下搭建了一个网页服务,播放效果如下:
7
结束语
在采用默认设置的的前提下,单机版局域网延迟 小于10s。要想获得更好的服务还得进行优化,针对用户量大,还要做集群部署。直播咱也会做,但是性能真不能保证。
END