2016-07-25 48 views
-2

我必須存儲來自許多網絡攝像機的連續視頻流, 視頻採用H.264編碼,音頻採用AAC或MP3格式。 錄製的視頻將主要在移動設備上播放,但也會在瀏覽器上播放。構建RTSP/RTP流錄像機的經驗?

  • 構建可擴展錄像機服務的最佳策略是什麼?

  • 什麼是最好的存儲格式? mp4?

  • 我應該直接將視頻轉換爲MP4嗎?或者更好地存儲RAW RTP?

  • 什麼是確保最佳可靠性和減少幀丟失並避免音頻和視頻之間同步丟失的最佳方法?

  • 我也想聽到類似的經歷

謝謝!

+1

它太寬泛,偏離主題和主要意見爲基礎。 – mpromonet

回答

0
  • 什麼是構建可擴展錄像機服務的最佳策略?

全球範圍內,一臺物理設備(PC機)運行主控制器dameon,通過攝像頭產生一個專用記錄器。 對於性能,在單一設備的情況下,我覺得這很常見。

  • 什麼是最好的存儲格式? mp4?

分辨率,壓縮,質量是複雜的問題,可以部分地還原後,以簡單的數學:

書寫容量=數目或硬盤驅動器HDD *寫入帶寬 - 相機*編碼的視頻帶寬的數量。的服用

的另一種方式是存儲限制:

存儲限制=數目或硬盤驅動器HDD *容量 - 相機的數目*編碼的視頻帶寬*時間。

您還應該檢查設備和攝像機之間的連接: 以太網限制= 100Mbps - 攝像機數* rawvideo帶寬。

考慮到mp4,你需要比較它的視覺質量與其他格式在相同的bandwich,但它似乎是一個不錯的選擇。

  • 我應該直接將視頻轉換爲MP4嗎?或者更好地存儲RAW RTP?

我認爲沒有必要在大多數情況下存儲RAW數據。 但是,這一點可能取決於硬件的CPU/GPU部分。

您將達到的第一個限制:硬盤大小和寫入速度,或編碼速度限制?

如果編碼速度不夠快,除寫入RAW之外別無選擇。 如果你不能寫入Raw,除編碼外沒有別的選擇。 有時候你將無法做任何事情:降低分辨率,升級硬件,使用更少的攝像機:)

請注意,相機可以提供不同的格式,或多或少的準備使用。原始YUV和MJPEG之間有一個世界!最後一點:如果您的應用程序依賴於多個物理設備,則「較小」的應用程序可以專門用於獲取,而較大的可以收集,轉換和存儲數據。

  • 請告訴我,以確保最佳的可靠性和更少的框架最好的辦法失去 ,避免丟失的音頻和視頻之間的同步?

買好的相機。如果有電線,請勿使用太長的電線。照顧他們兩個。不要使用比您的系統可以管理的更多的照相機。

  • 我也想聽到類似的經歷

我目前正在對嵌入式設備運行Linux管理多達4個USB攝像頭。 因爲我需要一個交互式覆蓋界面在我的視頻,我從ffmpeg切換到我自己的python腳本。這款產品即將上市,所有原型已經售出。 爲了提高性能(FPS太低而不能完美,主要是由於顯示和覆蓋),我目前正在開發C版本的程序。

我們在項目中有一些差異:我不需要保存流,只有圖片。當我在屏幕上顯示一個攝像頭時,也不需要爲每個攝像頭使用子過程,因爲您需要。所以我不能在這些方面更精確。 從經驗:你不想爲你的項目做任何有關視頻轉換和捕獲的具體開發。你的問題被標記爲ffmpeg,只要它能夠滿足你的需求就堅持。

您的問題已被低估爲寬泛,但在構思新服務時,許多問題都是合法要求的,因爲它們比純代碼少。