用SRS快速搭建WebRTC推流和播放
WebRTC目前已经比较成熟了,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也比较多。当然我觉得WebRTC还缺一个高性能简单易用的服务器,之前也分析过现有的服务器,有各种问题,SRS很有机会解决这些问题。
目前SRS对WebRTC的支持进度如下:
相关Wiki:
在线演示,RTMP推流,HTTP-FLV和WebRTC播放:
在线演示,WebRTC推流,WebRTC播放:
自己用SRS搭建WebRTC服务器,也非常容易,下面是操作步骤。
注意:必须要将本机的IP传给Docker,否则会推流和播放失败。
可以直接传本机IP,例如: 19216813 。如果觉得直接传IP比较麻烦,可以用脚本获取IP。
macOS下执行命令,直接设置IP:
macOS下执行命令,用脚本获取IP:
CentOS下执行命令,用脚本获取IP:
启动后,可以访问 http://localhost:8080/ ,确认是否启动成功。
Docker一定要设置对这个IP,否则会出现推流和播放失败。
演示,WebRTC推流和播放,链接:
演示,RTMP推流,WebRTC播放。首先,用FFMPEG或OBS推送RTMP流到服务器:
可播放的流地址:
视频直播软件系统开发,流媒体技术主要有以下几种:
1、智能流技术
自动检测网络状况,并将音视频的属性调整到最佳,使用用户收到与其网络速度相符的媒体流,从而获取最佳的用户体验。
2、分流(splitting)技术
一般只在视频直播系统开发中使用。发送服务器将媒体流发送到分布在各地的多个接收服务器,客户端可以就近访问服务器获得较高质量的媒体流,同时减少带宽使用。推流为将直播内容推送至服务器的过程;拉流为服务器已有直播内容,用指定地址进行拉取的过程。
3、缓存(caching)技术
解决由于异步网络、网络延迟和抖动导致的数据包错序的问题,数据包先缓存在本地,而缓存系统使用环形链表结构丢弃掉已经播放的内容,防止缓存溢出。
4、内容分发网络(CDN)技术
架构在IP网络之上的一个内容叠加网,通过引入主动内容管理、全局负载均衡和内容缓存等技术,将用户请求的流媒体内容发布到距离用户最近的网络边缘,从而提供响应速度,减轻骨干网络的压力。
0条评论