【问题标题】:How to get Pipeline created by playbin in Gstreamer?如何在 Gstreamer 中获取 playbin 创建的管道?
【发布时间】:2013-10-07 10:01:09
【问题描述】:

我正在创建一个使用 playbin2 创建管道的播放器。 在我的代码中,我使用以下行来创建管道。

pipeline = gst_parse_launch("playbin2", &error);

因此管道将被创建并且播放器正在工作。现在我想改变创建的管道。 Gstreamer 中是否有任何 api 可以帮助查看和编辑使用 playbin2 创建的管道?

我还希望打印使用gst_parse_launch 创建的管道。如何使用从gst_parse_launch 返回的GstElement 打印管道?

【问题讨论】:

    标签: gstreamer pipeline gst-launch


    【解决方案1】:

    我认为不可能改变 playbin 创建的管道,它有内部代码来自动管理这个管道,手动修改它会导致意想不到的结果。不过,您可以使用给定的属性和信号对其进行更新。

    您可以使用gst_bin_iterate_elementsgst_bin_iterate_recurse 遍历管道元素以打印它们。也可以使用http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS 创建一个.dot 文件。点文件是管道的图形表示,可以使用点应用程序将其转换为图像。这样,您就可以将完整的管道绘制成易于理解的图像。

    很难给你进一步的建议,因为我不知道你想通过改变 playbin2 的管道来做什么,你可以尝试查看较低级别的元素,如 uridecodebin 或 decodebin2,并查看要控制的自动插入信号这些元素自动添加的内容。 IIRC 这也可以从 playbin2 的级别完成。

    看来你还在用gstreamer 0.10,已经不开发了。如果您没有理由坚持使用 0.10,请继续使用 1.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多