У меня есть несколько входных медиа-файлов, которые я хочу обработать. Входной аудиопоток каждого файла кодируется в ac-3 с 5.1-канальной разметкой (сзади или сбоку) со скоростью 384 кбит / с.
Задача состоит в том, чтобы целевой медиафайл содержал микшированный аудиопоток, преобразованный в формат 2,1 канала (со скоростью 192 кбит / с) в формате aac!
Я использую ffmpeg для всего процесса и могу достичь цели, используя следующие параметры:
ffmpeg -i infile.mp4 -vn -c:a aac -b:a 192k -filter_complex "pan=2.1|FL<c0+c2+c4|FR<c1+c2+c5|LFE=c2" outfile.m4a
Полученный аудиофайл имеет следующие свойства:
Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 2.1, fltp, 192 kb/s (default)
Тем не мение(!) если я вместо этого использую libfdk_aac
, я получаю стереофайл и канал LFE удаляется:
Stream #0:0: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 192 kb/s (default)
Как мне кодировать аудиопоток, используя libfdk_aac, не отбрасывая канал LFE?
Результат одинаков при использовании автоматического сопоставления каналов. Следующая команда создает аудиопоток 2.1 при использовании aac
вместо libfdk_aac
качестве опции аудиокодека:
ffmpeg -y -i infile.mp4 -vn -c:a aac -b:a 192k -af pan=2.1 test.m4a
Ради этих вопросов я пренебрегаю всеми свойствами исходного видеоматериала, поскольку я убежден, что это не важно для ответа на вопрос.