2017-05-24 208 views
0

我是Gstreamer的新手。GStreamer管道顯示RTSP流

我需要編寫一個能夠使用GStreamer從RTSP源流式傳輸數據的視頻客戶端。我將VLC配置爲使用RTSP在我的筆記本電腦上流式傳輸視頻,並且我想創建一個管道來獲取該流並顯示它。我嘗試使用playbin和一切工作正常。關鍵是我需要微調用於流式傳輸視頻的延遲,但似乎我不能用playbin來實現。

我試過rtspsrc,因爲它允許處理延遲,但我不知道如何在任何窗口上顯示視頻。這是我創建的管道:

gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test latency=300 ! decodebin ! autovideosink 

我得到錯誤「流任務暫停,原因未協商(-4)」。

我在互聯網上深深地看過之後嘗試了不同的管道,但我絕對錯過了一些東西。我如何編寫一個gstreamer管道來顯示RTSP的視頻?

的最終目標是有一個管道可以在延遲方面至少是可調的,所以我有兩個選擇:

  • 設置playbin元素的潛伏期,如果可能的話。 (此元素正確顯示視頻)
  • 使用正確的管道顯示視頻,因爲rtspsrc允許我設置延遲。

我使用Xubuntu 16.04,gstreamer-tools-1.0(也使用0.10),並且用VLC流的視頻具有mp4擴展。

回答

1

你可以通過設置合適的物業,並使用playbin成分調整延遲:

gst-launch-1.0 -v playbin uri=rtsp://localhost:8554/test uridecodebin0::source::latency=300 

希望對您有所幫助:)

0

playbin確實有我已經查了latency選擇最後一次。請注意,其規模不同於rtspsrcrtspsrc以毫秒爲單位,而playbin以納秒爲單位。它可能仍然不會低於某個閾值 - 這取決於輸入視頻要求(vbv緩衝區限制)。

對於您的rtspsrc管線,您可能會在autovideosink之前錯過videoconvertautovideosonvert元素。

+0

感謝您的幫助!我想我得到了上述答案的解決方案。但我仍然對使用'rtsp'的第二個解決方案感興趣。我試過'videoconvert'和'autovideoconvert',但我什麼也沒看到。這條管道似乎是正確的。我沒有收到任何錯誤消息。我的管道中是否需要其他元素?謝謝! –

+0

導出GST_DEBUG = 3並查看日誌發生了什麼。 –