使用WebM的实时webbrtc流(getUserMedia)到DASH



我正在尝试理解直播解决方案的可行性。我想抓住WebRTC流(音频和视频),将它们发送到服务器并将它们转换成块,以发送到html5视频标签或使用WebM容器(VP8和Opus编解码器)的DASH播放器。

我还研究了ffmpeg, ffserver和gstreamer,但是…

我的问题是如何馈送的WebRTC流(直播)和转换它们在HTTP块(直播DASH兼容)?

有人做过这样的事吗?

这可以在Node.js中按照以下方式实现:

  1. 创建与服务器的WebRTC连接。这基本上是一个握手,在服务器和客户端上创建RTCPeerConnection引用

  2. 将getUserMedia MediaStream管道到WebRTC连接。(这需要使用addTrack作为RTCPeerConnection逐个跟踪完成。addStream已弃用)

  3. 服务器上的监听器将数据推送到流接口,该流接口通过管道传输到fluent-ffmpeg

  4. fluent-ffmpeg将原始音频流转码为MPEG-DASH(参见ffmpeg选项中的dash转码)文件。

  5. Files (chunks &清单)存在于客户端可用的单个文件夹下

  6. 客户端使用ShakaPlayer或其他一些横线流,并为它提供块和清单的基本路径。

关于如何使用WebRTC的有用示例(包括转码到mp4):https://github.com/node-webrtc/node-webrtc-examples

相关内容

  • 没有找到相关文章

最新更新