我正在使用的命令如下所示,使用该命令我将获得8通道output.wav。
ffmpeg.exe -i one.wav -i two.wav -i three.wav -i four.wav \
-i five.wav -i six.wav -i seven.wav -i eight.wav \
-filter_complex '[0:0][1:0][2:0][3:0][4:0][5:0][6:0] \
[7:0]join=8:channel_layout=octagonal' output.wav所有的输入文件one.wav,two.wav等eight.wav都是32 one,s32le和一个通道。但是,产生的输出是s16le,32 but的output.wav。
我可以用下面的命令输出s32le,
ffmpeg.exe -i one.wav -i two.wav -i three.wav -i four.wav \
-i five.wav -i six.wav -i seven.wav -i eight.wav \
-filter_complex '[0:0][1:0][2:0][3:0][4:0][5:0][6:0] \
[7:0]join=8:channel_layout=octagonal' -acodec pcm_s32le output.wav但是,上面的命令似乎完成了从s16_le到s32_le的转换(即one.wav与output.wav first通道不完全匹配)。然而,我想要的是直接从输入通道复制数据,因为所有输入文件的音频格式都与输出文件通道的预期音频格式(output.wav)相同
有没有办法在pcm_s32le上指示filter_graph待办事项的处理?
下面是日志链接,日志级别设置为debug,https://pastebin.com/ms4x1fLz
MediaInfo.exe one.wav
General
Complete name : one.wav
Format : Wave
File size : 6.50 MiB
Duration : 53 s 280 ms
Overall bit rate mode : Constant
Overall bit rate : 1 024 kb/s
Audio
Format : PCM
Format settings : Little / Signed
Codec ID : 1
Duration : 53 s 280 ms
Bit rate mode : Constant
Bit rate : 1 024 kb/s
Channel(s) : 1 channel
Sampling rate : 32.0 kHz
Bit depth : 32 bits
Stream size : 6.50 MiB (100%)发布于 2020-04-29 03:04:58
我认为您使用Audacity进行比较得出了错误的结论。您的命令不应该使用-acodec pcm_s32le进行s16转换。您可以通过将-loglevel debug添加到命令并参考日志中的auto_resampler行来进行检查。
输入和输出应该匹配。使用hash muxer验证:
ffmpeg -loglevel error -i one.wav -c:a copy -f hash -
SHA256=e56af84aea634ba4686348a90b657e1536610bf977b3604a9eb5b2901ccdeea3
ffmpeg -loglevel error -i output.wav -af "channelsplit=channel_layout=octagonal:channels=FL" -c:a pcm_s32le -f hash -
SHA256=e56af84aea634ba4686348a90b657e1536610bf977b3604a9eb5b2901ccdeea3https://stackoverflow.com/questions/61448475
复制相似问题