我想在 python 中编写一个 gstramer 管道,将 webm 视频转换为 avi 视频。
我制作了管道来显示有效的 webmvideo。如何执行我想要的?我虽然只是在视频队列中添加一个“x264”元素并在音频队列中添加一个“la脚”就足够了。我注意到多路复用器是必要的,我补充说。我得到的是:
gst.element_link_many(self.queuev, self.video_decoder,colorspace,x264enc)
gst.element_link_many(self.queuea, self.audio_decoder, audioconv,lame)
gst.element_link_many(avimux,filesink)
使用音频解码器和视频解码器的特定功能是:
def demuxer_callback(self, demuxer, pad):
if pad.get_property("template").name_template == "video_%02d":
qv_pad = self.queuev.get_pad("sink")
pad.link(qv_pad)
elif pad.get_property("template").name_template == "audio_%02d":
qa_pad = self.queuea.get_pad("sink")
pad.link(qa_pad)
我想我必须为avimux 编写类似的代码。我已经这样做了:
def avimux_callback(self, avimux, pad1):
if pad1.get_property("template").name_template == "video_%02d":
qv_pad1 = self.queuev.get_pad("sink")
pad1.link(qv_pad1)
elif pad1.get_property("template").name_template == "audio_%02d":
qa_pad1 = self.queuea.get_pad("sink")
pad1.link(qa_pad1)
但我收到有关文件源的错误,并且脚本不起作用。建议??谢谢弗兰克Br