2015-04-23 98 views
1

我是非常新的ffmpeg。考慮下面的情況:FFMPEG在線重新分配在IIS服務器流媒體Onvif IP攝像頭

我有幾個onvif網絡攝像機連接到網絡與IIS服務器裏面。我想允許客戶端流式傳輸到網絡內部的任何一臺網絡攝像機,但它必須通過IIS服務器。

因此,基本上每個網絡攝像機都會以單流的形式傳輸到IIS服務器,並且IIS服務器將重新分發給許多請求它的客戶端。我的問題是如何設置iis服務器來處理這種情況?還有一個ffmpeg命令行示例,用於從rtsp ip camera中讀取併發送iis服務器,該服務器將其重新分發給客戶端。

回答

1

您可以在此場景中使用HTTP實時流,HLS或DASH。 HTTP流式傳輸會增加一些延遲,因此您需要對如何調整低延遲編碼參數進行一些研究。

其基本思想是您需要對傳入流進行分段,並通過現有的Web服務器基礎結構使這些分段和播放列表/清單可用。

的FFmpeg的和HLS

例子:

ffmpeg -i rtsp://input_stream.sdp -c:v libx264 -r 25 -g 25 -c:a libfdk_aac -hls_time 1 -hls_list_size 4 -hls_wrap 8 /path/to/webroot/live/playlist.m3u8 

在客戶端,那麼你將使用URL http://domain.com/live/playlist.m3u8。 HLS在所有設備上本機不支持,因此請獲得像JWplayerclappr這樣的網絡播放器。客戶端需要3段來開始播放。

FFmpeg HLS

對於DASH的想法是相似的,但你還需要使用MP4Box

+0

謝謝。我會嘗試。無論如何,對於IIS,應該做什麼設置?客戶端是否可以使用html5來播放直播? –

+0

就像我說的那樣,HLS在所有設備上都不能正常工作。鏈接的玩家在桌面上提供閃回回退,例如。一個是付費的,另一個是免費的。關於IIS,如果您使用基於雲的播放器,則需要添加'crossdomain.xml'併爲跨域/跨域請求設置'CORS'標頭。 – aergistal

+0

反正什麼是「-g」選項?我也試過,但我得到錯誤:未知編碼器'libfdk_aac'。我從http://ffmpeg.zeranoe.com/builds/下載了ffmpeg版本。它說「最新的Zeranoe FFmpeg Build版本:git-cbe2700(2015-04-22)」。所以我認爲這是最新的版本。 –