Gstreamer使用/不使用解交织来删除/删除/调整通道数

问题描述

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

例如,如果生成的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,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,channel-mask=(bitmask)0xffff" ! audioconvert ! capssetter caps="audio/x-raw,channels=15,rate=48000" ! audioconvert ! audioresample ! wavenc ! filesink location=test.wav

不幸的是,这没用。

此问题从上一个问题继续进行:

Gstreamer duplicate 2channel audio

更新:

我尝试少产生一个通道,然后将最后一个奇数通道交织在一起,得到奇怪的结果:

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 
interleave name=d i.src ! capssetter caps="audio/x-raw,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,channel-mask=(bitmask)0x10" ! queue ! d.sink_1 
d.src ! capssetter caps="audio/x-raw,channels=5,channel-mask=(bitmask)0x1f" ! audioconvert ! audioresample ! wavenc ! filesink location=talk.wav

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)