如何在Gstreamer中获取playbin创建的Pipeline?

时间:2013-10-07 10:01:09

标签: gstreamer pipeline gst-launch

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

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

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

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

1 个答案:

答案 0 :(得分: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