问题描述
是否可以在不进行解交织的情况下调整音频流的通道数大小?或者至少不必解交织每个单独的频道。
例如,如果生成的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 (将#修改为@)