srs搭建直播服务器
Ⅰ 用SRS快速搭建WebRTC推流和播放
WebRTC目前已经比较成熟了,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也比较多。当然我觉得WebRTC还缺一个高性能简单易用的服务器,之前也分析过现有的服务器,有各种问题,SRS很有机会解决这些问题。
目前SRS对WebRTC的支持进度如下:
相关Wiki:
在线演示,RTMP推流,HTTP-FLV和WebRTC播放:
在线演示,WebRTC推流,WebRTC播放:
自己用SRS搭建WebRTC服务器,也非常容易,下面是操作步骤。
注意:必须要将本机的IP传给Docker,否则会推流和播放失败。
可以直接传本机IP,例如: 192.168.1.3 。如果觉得直接传IP比较麻烦,可以用脚本获取IP。
macOS下执行命令,直接设置IP:
macOS下执行命令,用脚本获取IP:
CentOS下执行命令,用脚本获取IP:
启动后,可以访问 http://localhost:8080/ ,确认是否启动成功。
Docker一定要设置对这个IP,否则会出现推流和播放失败。
演示,WebRTC推流和播放,链接:
演示,RTMP推流,WebRTC播放。首先,用FFMPEG或OBS推送RTMP流到服务器:
可播放的流地址:
Ⅱ 用SRS搭建WebRTC流媒体服务器实战
WebRTC经过这么多年的发展,目前已经比较成熟的协议之一,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也越来越多,但是基于WebRTC协议的部署简单,性能强悍,功能强大流媒体服务器的项目还比较稀少。之前了解到的服务器比如Mediasoup,Janus,Medooze ,要么就是设计复杂,接入成本要,要么就是性能较差,还就是多种语言结合,学习成本较高。 而SRS聚焦视频相关,功能专一,语言使用了高性能的c++,并且支持Rtmp转Webrtc等其他强大的功能的媒体服务器。
使用这个命令开启RTC支持
2.SRS常用命令
3.配置nginx代理
若不需要浏览器推流,可以不用设置nginx代理,使用localhost访问
注意:your 代表需要配置你自己的域名信息,由于使用浏览器推流必须使用https协议,所以我这边配置了证书
4.访问配置的域名
访问nginx配置的网址 https://webrtc.yourhost.com/
出现如下内容,则服务端架设成功
虽然整片文章看起来不复杂,流程很简单。但是官网的文档中的知识点比较分散,所以大家要想快速的搭建的话就参考我这篇文章
Ⅲ 海康摄像头开发SRS+ffmpeg+http-flv+flv.js(二)
接上篇文章。虽然部署好了网络,通过VLC能播放视屏,但是离简单好用的道路还很远,在这期间查了很多资料,对整个系统有了不扫了解。首先引用一下,关于实现web播放的几种方法和优缺点(以下来自网络):
开始的我也使用了网络的介绍,用ffmpeg转成rmtp流,但最后发现如果要播放rmtp流是需要flash支持的,现在的flash的支持度很差,显然不行,网上现在能找到的FFmpeg + nginx-rtmp-mole方案并不是一个好方案。所以还是需要使用方案三。
以下的这个表写的比较清楚,能支持html5播放器的就httpflv和hls,二选一选择httpflv。
在本人实际操作中使用的流媒体服务器并不是nginx-http-flv-mole ,而是用了SRS(simple rmtp server)+FFMPEG方案,感觉更简单。
搭建过程先省略。(详细搭建SRS+ffmpeg单独文档)
遇到的问题:
搭建完成,推流后VLC能播放,但是用flv.js的播放器
http://bilibili.github.io/flv.js/demo/
总是无法播放,后来发现下面还是有提示错误的。
这里主要是要注意转换语句:
原来是这样,参数-vcodec 和 -acodec 都用的,而实际摄像头处理的视频格式是h.264+pcma_u
后来改成这样,将-acodec 改成aac
就能看到视频了
视频里是家中窗外风景。
实际使用中发现,如果视频部分h264不转码,用的模式的话cpu性能不高,可以支持很多路数。
视频和vlc播放的时候延时10s左右,感觉延时有点大。
接下来就是要把flv.js移植到工程中。然后现在的推流什么的都是命令行执行的,这些肯定不行.
Ⅳ srs+obs搭建直播,obs开始推流提示无法访问指定的频道
obs的推流地址和密钥没设置好