我正在尝试在C中编写一个复制管道的程序:
gst-launch -v filesrc location="bbb.mp4" ! decodebin2 ! ffmpegcolorspace ! autovideosink
DecodeBin2有一个动态打击垫,我附加了一个回调来处理它的创建。我无法将其链接到ffmpegcolorspace但是因为pad功能始终是video / quicktime。我希望它是video / x-raw-yuv或其他与ffmpegcolorspace兼容的东西。
是否可以强制/选择decodebin2的输出类型?
感谢。
编辑:请不要推荐playbin。我正在努力学习如何制作管道。
答案 0 :(得分:2)
Is this possible to force/select the output type of decodebin2?
不,你不能强迫或选择其源垫的类型。
decoderbin2选择适当的解复用器元素,并且解复用器元素解析该媒体文件,并根据该媒体文件中的元素流的编解码器,创建输出/源码的大写/类型。所以解码器类型可以与之链接和管道工程。
这一切都发生在gstremer-plugin代码
中所以,如果你想要这样,那么你需要自己编写插件.. !!
答案 1 :(得分:-1)
您可以尝试使用playbin插件,而不是手动生成管道。
从我的gstmultimedialib项目中查看https://code.google.com/p/gstmultimedialib/source/browse/trunk/gstmultimedialib/Multimedia/Multimedia/FilterGraph/PlaybinFilterGraph.h。
祝你好运!!!