簡體   English   中英

Gstreamer通過RTP流式傳輸多個攝像機,同時保存每個流

[英]Gstreamer streaming multiple cameras over RTP while saving each stream

我目前正在從事一個利用Nvidia Jetson的項目。 我們需要通過UDP RTP將3個攝像機流式傳輸到一個源(單播),同時保存所有三個攝像機的內容。

我的管道有問題,這可能是我根本沒有看到的某個簡單錯誤。

gst-launch-1.0 -e v4l2src device=/dev/video0 ! 'video/x-raw, width=(int)640, height=(int)480' ! tee name=c c. ! queue ! omxvp8enc bitrate=1500000 ! rtpvp8pay ! udpsink bind-port=8574 host=129.21.57.204 port=8574 loop=false c. ! queue ! omxh264enc bitrate=1500000 ! mp4mux ! queue ! filesink location=test-RightFacingCamera.mp4 v4l2src device=/dev/video1 ! 'video/x-raw, width=(int)640, height=(int)480' ! tee name=b b. ! queue ! omxvp8enc bitrate=1500000 ! rtpvp8pay ! udpsink bind-port=8564 host=129.21.57.204 port=8564 loop=false b. ! queue ! omxh264enc bitrate=1500000 ! mp4mux ! queue ! filesink location=test-LeftFacingCamera.mp4 v4l2src device=/dev/video2 ! 'video/x-raw, width=(int)640, height=(int)480' ! tee name=a a. ! queue ! omxvp8enc bitrate=1500000 ! rtpvp8pay ! udpsink bind-port=8554 host=129.21.57.204 port=8554 loop=false a. ! queue ! omxh264enc bitrate=1500000 ! mp4mux ! queue ! filesink location=test-FrontFacingCamera.mp4

現在的問題是3個流中的2個將無故停止,根本沒有調試信息,它們將在大約2分鍾的運行時間后停止流並寫入文件。

另外,我已經考慮過將其轉換為帶有Gstreamer的C / C ++,如果有人想指出我的方向,我將不知道從哪里開始。 目前,我編寫了一個javascript代碼,該代碼可通過序列號檢測每個攝像機並為給定攝像機分配端口。 然后運行此命令。

謝謝你的幫助。

此問題是由相機本身引起的。 事實證明,ECON品牌的相機存在一個問題,其中三個相同的相機無法在v4l2中使用。 我和我的團隊已購買了新相機,所有相機均需測試,並且效果很好。

由於假設的科學質量和USB-3速度,我們之所以使用ECONS。 不幸的是,我們沒有USB3速度或帶寬,因此我們只能使用較低的分辨率。

希望對遇到小問題的人有所幫助,目前看來都是通過USB2.0異步運行的攝像機是Logitech c922s

這是Jetson的 USB 帶寬限制 我們可以一次犧牲幀速率來支持3個攝像頭。 比較了Logitech攝像機,該攝像機是H.264攝像機(它提供壓縮幀),因此可以提供60fps的帶寬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM