我有一個GStreamer管道從RTSP源播放實時視頻。我希望用戶能夠增加/減少延遲。我的做法是有一個queue
元素並操縱其min-threshold-time
參數。Gstreamer:動態增加和減少延遲
這似乎開始工作。例如延遲10秒,管道開始凍結,並在10秒後繼續。但如果我操縱時間,沒有任何反應。我也嘗試了其他參數,例如max-size-time
,但沒有運氣。 leaky
參數會導致視頻不穩定且質量不佳。
目前我正在停止並重新啓動管道,這看起來很糟糕。
管道我使用:
gst-launch-1.0 rtspsrc location=<...> ! rtph264depay ! h264parse ! capsfilter caps=video/x-h264 ! avdec_h264 ! videoconvert ! queue min-threshold-delay=<delay> ! autovideosink
是否有一個命令來強制隊列沖洗框架,其他的一些元素更適合,或者一些其他技巧來做到這一點?
暫停更改參數和播放怎麼樣?我不確定是否動態更改元素參數只需設置參數即可使用 - 也許您將不得不做一些填充塊阻塞等,就像您[動態改變管道]時一樣(http://gstreamer.freedesktop.org /data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html) – nayana
@otopolsky:您的建議是一項改進。暫停和重新播放的確能起作用,但是當延遲時間減少時,什麼都不會發生。 –
很高興能有所幫助,你的解決方案是相當先進的使用延遲事件..很好地完成 – nayana