前言
WebRTC的常见的几个组成部分
- 流媒体服务器
- 信令服务器
- 客户端
SRS4
Srs4已经支持WebRTC的推流和拉流了。
代码语言:javascript复制docker run -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp
--env CANDIDATE=192.168.1.3
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.23 objs/srs -c conf/rtc.conf
用FFMPEG或OBS推送RTMP流到服务器:
代码语言:javascript复制ffmpeg -re -i doc/source.200kbps.768x320.flv -c copy
-f flv -y rtmp://192.168.1.3/live/livestream
建议先用SRS自带的
doc/source.200kbps.768x320.flv
这个文件,先用它跑通了再换其他内容源,避免各种问题不好排查。
可播放的流地址:
- rtmp://192.168.1.3/live/livestream
- webrtc://192.168.1.3/live/livestream
DASH.js
MPEG-DASH 是视频内容自适应流式处理的 ISO 标准,为希望传送高质量自适应视频流式处理输出的开发人员提供了显著的好处。 使用 MPEG-DASH,当网络阻塞时,视频流会自动调整到较低清晰度。 这样可以减少在播放器下载下几秒钟要播放内容时观众看到“暂停”视频的可能性(也就是说,它减少了缓冲的可能性)。 当网络拥塞减少时,视频播放器将转而恢复到较高质量的流。 这种适应所需带宽的能力也会导致视频开始的速度更快。 这意味着可以在快速下载较低质量段播放最初的几秒钟,并在已缓冲足够内容后提升到更高质量。
Dash.js 是用 JavaScript 编写的开源 MPEG-DASH 视频播放器。 其目标是提供可以在需要视频播放的应用程序中自由重用的功能强大的跨平台播放器。 它在支持 W3C 媒体源扩展 (MSE) 的任何浏览器(目前为 Chrome、Microsoft Edge 和 IE11,其他浏览器已指示有意支持 MSE)中提供 MPEG-DASH 播放。 有关 DASH.js、js 的详细信息,请参阅 GitHub dash.js 存储库。
https://docs.microsoft.com/zh-cn/azure/media-services/previous/media-services-embed-mpeg-dash-in-html5