ffmpeg CCTV 方案對比
ffmpeg CCTV一共介紹了4種方案,目的都是為了在網頁實現cctv。如果可以接受winform的,建議直接呼叫NVR的sdk或使用vlc外掛實現,這裡有個很好的實現(實測rtsp很穩定,如果不是rtsp使用ffmpeg轉碼即可):
https://github.com/higankanshi/Meta.Vlc
本文做一個對比,介紹一下每種方案的利弊:
1. 使用streamedian。
好處:websocket中介軟體實現轉碼,並且video on demand。
缺陷:實測5路攝像頭以上不夠穩定。播放一段時間就會有延遲。
2. 使用ffserver
好處:開源免費。
缺陷:
1. 配置比較麻煩
2. 5路以上不穩定
3. 使用jsmpeg
好處:開源,配置簡單。延遲低。
缺陷:
1. cpu佔用過多,ubuntu4u 3.0gb 只能開到12路
2. 一個相機需要開2個埠
3. 客戶端(外星人pc)cpu12路cpu佔用到40%
4. shinobi video
好處:
穩定,16路cpu只佔了10%
缺陷:商用收費,1個例項安裝需要2000美元
總結:根據具體場景對不同方案進行選擇。建議直接做winform,如果一定要在瀏覽器實現:
如果只需要支援10路以下相機24小時監控,選擇jspmeg+websocket;
如果只是定時開啟相機,並且只需要同時支援5路以下,選擇streamedian。
如果支援路數較多,比如同時32路,取決於硬體價格,如果pc總價格高於2000美元則直接買shinobi video;否則還是選擇jsmpeg。
另外,如果考慮購買,土豪還可以選擇wowza。其他選擇還有red5流媒體伺服器,但是pro仍然是收費的;webrtc方案(kurento)筆者不推薦,應用是雙向音視訊,只是cctv就太over kill了。