gstreamer:交错两个音频 - 链接错误
我正在尝试按照GStreamer的文档将两个音频文件交错在一起:
gst-launch interleave name=i ! audioconvert ! wavenc ! filesink location=file.wav filesrc location=file1.wav ! \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.sink0 filesrc location=file2.wav ! \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.sink1
但是执行这个命令时出现了以下错误:
0:00:00.125000000 2264 00332BC0 错误 GST_PIPELINE grammar.tab.c:656:gst_parse_perform_link: 无法将queue0连接到i
如果我去掉第二个filesrc
相关的命令,也就是在"filesrc location=file2.wav"之后的所有命令,命令就能正常运行。上面的命令到底哪里出问题了?
谢谢
1 个回答
0
尝试一下
gst-launch interleave name=i ! audioconvert ! wavenc ! filesink location=file.wav filesrc location=file1.wav ! \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i. filesrc location=file2.wav ! \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.
这个“中间元素”的接收端(sink pads)是需要请求的,所以我猜在gst-launch尝试连接这些元素的时候,i.sink0这个接收端是不存在的。留下一个单独的点(i.)是告诉gst-launch去尝试所有的接收端,直到找到一个合适的为止。
对于除了最基本的例子之外,手动在像Python这样简单的高级语言中创建管道会更好。
另见
man gst-launch