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

Encoding raw h.264 data to browser via Dash

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

我检查过的主题:

  1. mp4box - 一方面我看到了这个 comment that states " You cannot feed MP4Box with some live content. You need to feed MP4Box -live with pre-segmented chunks." on the other hand there's a lot of people directing to this bitmovin tutorial which does implement a solution using mp4box. In the toturial they are using mp4box (which has a node.js api implementation) and x264(它没有 node.js 模块?或者包含在 ffmpeg/mp4box ?)
  2. ngnix - ngnix 有一个 module that support streaming to DASH using rtmp. for exemple in this toturial。我不想走这条路——正如我在 node.js 中提到的那样,我正在尝试全部完成。

虽然我看了几个有类似问题的帖子,但我找不到合适的解决方案。非常感谢您的帮助!

典型的架构是将您的直播流发送到流媒体服务器,然后服务器将使用 HLS 和 DASH 等流媒体协议进行繁重的工作,使流媒体可供其他设备使用。

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

这允许对视频进行编码和打包,以便通过服务器进行任何必要的转码并可能创建不同比特率版本的流以允许不同的网络条件,如果你想提供这种级别的服务。

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