簡體   English   中英

"在 Gstreamer 管道中重新連接 RTSP 流"

[英]Reconnect RTSP stream in Gstreamer pipeline

我有一個使用 RTSP 輸入流的工作 Gstreamer 管道。 為了處理這些給定的 RTSP 輸入流,使用了 uridecobin 元素。

我的目標是在互聯網連接不穩定時重新連接到 RTSP 輸入流。 當互聯網連接僅關閉幾秒鍾然后又啟動時,管道再次開始接收幀,一切正常。 當互聯網連接中斷 > 20 秒時,我會收到 GST_MESSAGE_EOS。 我試圖在 uridecodebin 生成的每個元素中找到一些超時<\/strong>變量,但我沒有找到。 您是否有任何提示哪個元素具有此超時<\/strong>變量以及如何設置它?

如果無法設置這樣的超時<\/strong>變量,有沒有辦法阻止 GST_MESSAGE_EOS? 因為當我在總線上收到 GST_MESSAGE_EOS 時,我嘗試從管道中刪除 uridecodebin 並創建一個新的。 但是當收到 GST_MESSAGE_EOS 時它對我不起作用(當我嘗試從管道中刪除 uridecodebin 並在正常狀態下創建一個新的時,它可以工作)。

我找到了阻止 GST_MESSAGE_EOS 的方法。

創建以下函數以刪除 GST_EVENT_EOS:

GstPadProbeReturn eos_probe_cb(GstPad *pad, GstPadProbeInfo *info, gpointer u_data)
{
    if (GST_EVENT_TYPE(GST_PAD_PROBE_INFO_DATA(info)) == GST_EVENT_EOS)
    {
        return GST_PAD_PROBE_DROP;
    }
    return GST_PAD_PROBE_OK;
}

暫無
暫無

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

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