问题描述
真的很难弄清楚如何生成 2 个 audiotestsrc,然后使用 gst-launch-1.0 将它们映射/复制到多个频道。
即
通道 1,3 上的正弦波
通道 2,4 上的锯齿
或
通道 1,4 上的正弦波
通道 2,3 上的锯齿
这里有 4 个频道(但 5 个也不错):
我生成两种音调的工作示例如下:
gst-launch-1.0 interleave name=i \
audiotestsrc wave=0 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,format=S16BE,channels=1,channel-mask=(bitmask)0x1" ! queue ! i.sink_0 \
audiotestsrc wave=2 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,channel-mask=(bitmask)0x1" ! queue ! i.sink_1 \
i.src ! capssetter caps="audio/x-raw,channels=6,channel-mask=(bitmask)0x3f" \
! audioconvert ! audioresample ! wavenc ! filesink location=test.wav
我虽然为每个源和通道(0xa 和 0x5)设置位掩码将允许 gstreamer 填充正确数量的通道和映射的正确信号,但可惜不行:我尝试的是:
gst-launch-1.0 interleave name=i \
audiotestsrc wave=0 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,channels=2,channel-mask=(bitmask)0xA" ! queue ! i.sink_0 \
audiotestsrc wave=2 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,channel-mask=(bitmask)0x5" ! queue ! i.sink_1 \
i.src ! capssetter caps="audio/x-raw,channels=4,channel-mask=(bitmask)0xf" \
! audioconvert ! audioresample ! wavenc ! filesink location=test.wav
但我明白了 警告:错误的管道:无法将 queue0 链接到 i
我也尝试使用相同的位掩码将音调通道设置为 4
我也尝试过在 i.sink_0 和 i.sink_1 之后进行音频转换也没有成功。
这甚至可能吗?任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)