Audio Gstreamer删除/删除/调整通道计数(带/不带解交错)

Audio Gstreamer删除/删除/调整通道计数(带/不带解交错),audio,gstreamer,audio-streaming,gstreamer-1.0,Audio,Gstreamer,Audio Streaming,Gstreamer 1.0,是否可以在不进行解交织的情况下调整音频流的频道计数?或者至少不必离开每个单独的通道 例如,如果按如下方式生成16声道音频样本: 其中生成单音并创建16个通道 gst-launch-1.0 audiotestsrc wave=0 freq=100 volume=0.4 ! audio/x-raw,rate=48000,format=S16BE ! queue ! capssetter caps="audio/x-raw,channels=16,rate=48000,channel-mas

是否可以在不进行解交织的情况下调整音频流的频道计数?或者至少不必离开每个单独的通道

例如,如果按如下方式生成16声道音频样本: 其中生成单音并创建16个通道

gst-launch-1.0 audiotestsrc wave=0 freq=100 volume=0.4 ! audio/x-raw,rate=48000,format=S16BE ! queue ! capssetter caps="audio/x-raw,channels=16,rate=48000,channel-mask=(bitmask)0xffff" ! audioconvert ! audioresample ! wavenc ! filesink location=test.wav

是否可以在文件链接之前将通道大小调整为15?基本上只是完全删除最后一个频道

我试过:

gst-launch-1.0 audiotestsrc wave=0 freq=100 volume=0.4 ! audio/x-raw,rate=48000,format=S16BE ! queue ! capssetter caps="audio/x-raw,channels=16,rate=48000,channel-mask=(bitmask)0xffff" ! audioconvert ! capssetter caps="audio/x-raw,channels=15,rate=48000" ! audioconvert ! audioresample ! wavenc ! filesink location=test.wav

不幸的是,这不起作用

本问题是上一个问题的后续问题:

更新:

我试图少生成一个通道,然后在最后交错最后一个奇数通道,结果很奇怪:

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,format=S16BE,channels=1,channel-mask=(bitmask)0x1" ! queue ! i.sink_1 
interleave name=d i.src ! capssetter caps="audio/x-raw,format=S16BE,channels=4,channel-mask=(bitmask)0xf" ! decodebin ! audioconvert ! queue ! d.sink_0 
audiotestsrc wave=2 freq=100 volume=0.4 ! decodebin ! audioconvert ! "audio/x-raw,format=S16BE,channels=1,channel-mask=(bitmask)0x10" ! queue ! d.sink_1 
d.src ! capssetter caps="audio/x-raw,format=S16BE,channels=5,channel-mask=(bitmask)0x1f" ! audioconvert ! audioresample ! wavenc ! filesink location=talk.wav