2017-04-03 106 views
1

我有一个来自远程摄像头的原始h264(无容器)流。我想用DASH在浏览器中进行流式处理。 DASH需要创建mpd文件(和分段)。我发现了一些可以在静态文件中实现这些功能的工具(如mp4box),但我正在努力寻找直播流的解决方案。任何建议 - 最好使用node.js模块通过Dash将原始h.264数据编码到浏览器

线程我检查:

  1. mp4box - 从一方面我看到这个comment指出“你不能用一些直播内容饲料MP4Box你需要预先分割养活MP4Box -live大块“另一方面有很多人指导这个bitmovin tutorial,它实现了一个使用mp4box的解决方案。在toturial他们使用mp4box(其中有一个node.js api implementation)和x264(不具有Node.js的模块或者包含在的ffmpeg/mp4box?)
  2. ngnix - ngnix有module支持分流到使用rtmp进行DASH。例如toturial。我更喜欢不走这条路 - 就像我正在尝试在node.js中完成这一切一样。

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

+0

我也希望解释 - 从我的基本理解h264编码视频需要一个容器(如mp4)才能传输。 DASH是否在没有容器的情况下将原始h264流包装起来? – idosh

回答

0

典型的体系结构是将您的实时流发送到流式服务器,然后使用HLS和DASH等流式协议来完成繁重的工作以使流可用于其他设备。

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

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

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

+0

我有一个节点服务器接受来自网络摄像头的流媒体。当你说“流媒体服务器”时,你指的是什么?一个rtsp服务器..?我无法将我编码的h264封装在mp4中,因为它是一个实时流(请参阅我以前的问题 - http://stackoverflow.com/questions/43113805/wrap-h-264-stream-in-mp-4-container-和流 - 它与 - 的NodeJS)。我真的很感谢阐述,非常感谢你的时间! – idosh

+0

流媒体服务器我的意思是像https://gstreamer.freedesktop.org或https://www.wowza.com这样的专用流媒体服务器。 mp4和DASH的封装可以在流媒体服务器上进行。 – Mick