【问题标题】:Dynamically change udpsrc on gstreamer pipeline在 gstreamer 管道上动态更改 udpsrc
【发布时间】:2015-10-03 22:22:06
【问题描述】:

参考http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html,我尝试在 gstreamer 管道上更改 udpsrc。 但是出了点问题,更改 udp 源后,管道的状态无法更改为 PLAYING。

以下是更改 udpsrc 的顺序。 原始管道箱由...

udpsrc - 队列 - tsdemux - 队列 - 解析器 - 视频解码器 - 队列视频接收器

  1. 首先,屏蔽udpsrc的src pad
  2. 将 eos 事件发送到队列(在 udpsrc 旁边)
  3. 等到从总线收到 eos 消息。
  4. 将 udpsrc 的状态设置为 NULL,并从管道 bin 中删除 udpsrc。(取消链接)
  5. 使用新的源 uri 创建新的 udpsrc。
  6. 队列链接
  7. 将状态更改为 PLAYING。

这个顺序有什么错误吗? 提前致谢。

【问题讨论】:

    标签: gstreamer


    【解决方案1】:

    在这种情况下,您不需要通过管道发送 EOS。这具有发出流结束信号的效果,虽然在大多数情况下可以恢复,但在这种情况下不需要。

    在动态更改管道时通过元素发送 EOS 的场景适用于同时具有 sink 和 src pads 的元素,以便排出可能卡在其中的任何数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多