2016-02-08 87 views
0

我試圖總結在此工作的發送方管道GST-RTSP的服務端口管道GST-RTSP服務器

gst-launch-1.0 --gst-plugin-path=/usr/lib/x86_64-linux-gnu/gstreamer-1.0/ filesrc location=sample.mp4 ! decodebin name=mux mux. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 mux. ! queue ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=127.0.0.1 port=5001 

在接收端使用互補管道的所有東西的工作,我能夠發送一個opencv處理的流,在客戶端獲得。 當我嘗試在與gst-rtsp-server一起提供的工作示例中包裝此管道的一部分時,有些錯誤。 逸岸,編輯測試mp4.c和改變filesrc輸入pipelin

"filesrc location=%s ! qtdemux name=d " 
    "d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 " 
    "d. ! queue ! rtpmp4apay pt=97 name=pay1 " ")" 

發件人不工作了。在接收端,我得到了一個503錯誤,因爲接收端無法獲得sdp。 可能這是一個與缺少錯誤插件目錄相關的問題嗎? 我將它設置在主Makefile中,但問題仍然存在。 我想這樣sinche rtsp服務器工程完美,如果我不編輯該行,我的管道工程很好。

感謝,

弗朗西斯

回答

0

這看起來是與你所創建的管道的問題。嘗試運行您的管道究竟如何是在命令行上,但在結尾處添加fakesink元素,看看是否能工程:

gst-launch-1.0 filesrc location=%s ! qtdemux name=d d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 ! fakesink d. ! queue ! rtpmp4apay pt=97 name=pay1 ! fakesink

一目瞭然,它看起來像你多路分解媒體,但不會將視頻解碼爲edgedetect元素的原始格式。

+0

你說得對。解壓後,我需要解碼視頻流! 因此,我用decodebin元素替換了qtdemux,並在音頻管道部分添加了audioconvert!它的工作。 現在我試圖緩解在客戶端的AV同步延遲:) 非常感謝:) – FrankBr