2017-04-03 107 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