Команда, которую я использую, приведена ниже, с этой командой я получаю 8-канальный выходной файл. 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, так что на восьмом.wav, 32 кГц, s32le и один канал. но, сгенерированный вывод является output.wav, который является s16le, 32 кГц.
Я могу сделать вывод 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 полностью). Однако я хочу напрямую скопировать данные из входных каналов, так как аудиоформат всех входных файлов такой же, как и ожидаемый аудиоформат каналов выходного файла (output.wav)
есть способ проинструктировать обработку задачи filter_graph в pcm_s32le ?
Вот ссылка на журнал с уровнем логирования, установленным на отладку, 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%)