1

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

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

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

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

4

1 回答 1

2

我认为不可能改变 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

于 2013-10-07T13:45:20.300 回答