使用 Raspberry Pi 作為網路攝影機的 I/O

使用 Raspberry Pi 作為網路攝影機的 I/O

我正在開發一個項目,其中將 Raspberry Pi 用作多個伺服系統的 I/O 板,這些伺服系統實際上由另一台電腦控制,透過乙太網路連接到 RPi。

我需要在專案中添加 2 個 USB 網路攝影機,並希望將它們連接到 RPi,以維護 I/O 的單一位置(如果有意義的話)。

我正在尋找最簡單、延遲最低的方法將輸入從網路攝影機轉發到主機。我嘗試使用 Usbip 和 ffmpeg 來傳輸數據,但這兩種方法都遇到了問題。還有其他建議嗎?或者我應該繼續採用我嘗試過的方法之一。

謝謝!

答案1

您的網路攝影機有硬體壓縮嗎?或者你正在對 RPi 進行壓縮?它的 VideoCore 處理器適合這種類型的工作,但是...您必須使用 OpenMAX 將負載卸載到 VideoCore,因為 Linux 運行的 ARM 協處理器甚至無法壓縮低清晰度流。載入VideoCore編解碼器的程式是omxplayer一些gstreamer插件。

即使使用 VideoCore,您也會遇到從 USB 透過內部互連獲取原始視訊資料的頻寬問題。

因此,您的可行選擇是

  1. 將預壓縮(在網路攝影機內部)視訊從 USB 複製到乙太網路。
  2. 使用連接到 Raspberry Pi 上高頻寬視訊連接埠的 RPi 相機模組,直接進入 VideoCore 進行處理和壓縮。

後一種選擇可能會降低相當多的延遲,但您只能獲得一個串流。理論上可以透過單一視訊連接埠交錯兩個串流,但 VideoCore 上的編解碼器需要設計為接受和分離兩個串流,並且這樣做的技術資料只能在 NDA 下向 Broadcom 的最大客戶提供。

您可以在 Rasberry Pi 論壇上找到有關視訊編解碼器開發過程的更多資訊。簡短版本:Broadcom 完成了大部分工作,Raspberry Pi 基金會可以存取技術數據,但沒有足夠的工程師,並且 NDA 禁止他們外包工作。

相關內容