2017-08-01 283 views
0

我對通常的視頻流和opencv相當陌生。 我想通過使用h264從樹莓派3 rtsp流我的計算到另一個設備。 我試着寫一個使用popen與ffmpeg到ffserver anf的管道,用vlc創建rtsp服務器來傳輸內容。不幸的是,我有很大的滯後,我能做的最好的時間是3秒。以低延遲在h.264中從opencv流入rtsp視頻

有什麼辦法可以達到這個目的嗎?我願意考慮其他技術。

謝謝

回答

1

RTMP不是實現低延遲的最佳方式(< 5秒)。

我建議你使用FFMPEG和純RTP將視頻流傳輸到RTPS服務器。或者直接使用帶有Gst-RTSP服務器的Gstreamer,都是C中的開放式解決方案。

延遲還會受到編碼器和它用來處理的硬件的影響。

This question有更多信息。

+0

我使用gstreamer管道與opencv VideoWriter一起使用,但它不是標準流,因此我使用gst-rtsp-server。以下是解決方案的鏈接。 https://stackoverflow.com/questions/45544877/write-in-gstreamer-pipeline-from-opencv-in-python和https://stackoverflow.com/questions/47396372/write-opencv-frames-into-gstreamer- RTSP服務器流水線 – WisdomPill

0

我建議您使用RTMP代替。延遲可以低至100毫秒。

需要考慮的另一件事是,由於播放器的內部緩衝,VLC和其他客戶端將引入視頻延遲。尋找不緩衝視頻的選項,您應該能夠從視頻延遲中減少幾秒鐘的時間。

隨着ffplay你可以嘗試以下方法:

ffplay --fflags nobuffer rtmp://your.server.ip/path/to/stream -loglevel verbose

如果你將傳輸複用,以破折號或HLS你也可以期待引進更多的延遲的視頻流。

+0

我已經嘗試過使用popen和rawvideo的ffserver和ffmpeg的組合,但它消耗了大量資源並且延遲很大。 – WisdomPill