通过Dash将原始h.264数据编码到浏览器

时间:2017-04-03 08:37:18

标签: javascript node.js ffmpeg video-streaming mpeg-dash

我有来自远程网络摄像头的原始h264(无容器)直播。我想使用DASH在浏览器中直播。 DASH需要创建mpd文件(和分段)。我找到了在静态文件中实现的工具(例如mp4box),但我很难找到实时流的解决方案。任何建议 - 最好使用node.js模块

我检查过的主题:

  1. mp4box - 从一方面我看到这个comment表示“你不能用一些实时内容提供MP4Box。你需要用预先分段的块来提供MP4Box -live 。“另一方面,有很多人指导这个bitmovin tutorial使用mp4box实现解决方案。他们正在使用mp4box(有一个node.js api implementation)和x264(没有node.js模块?或者包含在ffmpeg / mp4box中?)
  2. ngnix - ngnix有module支持使用rtmp流式传输到DASH。例如toturial。我不想走这条路 - 正如我提到的那样,我试图在node.js中做到这一切。
  3. 虽然我读了几个有类似问题的帖子,但我找不到合适的解决方案。非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

典型的体系结构是将您的实时流发送到流媒体服务器,然后使用HLS和DASH等流媒体协议,将流量提升到其他设备。

因此客户端设备连接到服务器而不是浏览器。

这允许对视频进行编码和打包,以便尽可能多地访问设备,服务器可以进行必要的转码,并且可能还会创建流的不同比特率版本以允许不同的网络条件,如果您想提供此功能服务水平。

典型结构是编码流(例如h.264视频),打包到容器(例如mp4碎片)中,并通过流协议(如HLS或DASH)传送。