我正在创建一个使用playbin2创建管道的播放器。在我的代码中,我使用下面的行来创建管道。
pipeline = gst_parse_launch("playbin2", &error);
因此,管道将被创建,播放器正在工作。现在我想改变所创建的管道。Gstreamer中是否有帮助查看和编辑使用playbin2创建的管道的api?
另外,我希望打印使用gst_parse_launch创建的管道。如何使用从GstElement返回的gst_parse_launch打印管道?
发布于 2013-10-07 13:45:20
我不认为修改由playbin创建的管道是不可能的,它有内部代码来自动管理这个管道,手动修改它会导致意想不到的结果。不过,您可以使用给定的属性和信号来更新它。
您可以使用gst_bin_iterate_elements或gst_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 2的管道来做什么,您可以尝试查看较低级别的元素,如uridecodebin或decodebin2,并查看自动插入信号来控制这些元素自动添加的内容。IIRC也可以从Playbin2的级别来完成。
看来您仍然在使用GStreamer0.10,它已不再开发。如果你没有理由坚持0.10,请转到1.0
https://stackoverflow.com/questions/19221868
复制相似问题