Я пытаюсь снять видео с двумя аудиопотоками и сжать первый в стереофоническом режиме со скоростью 48 кбит / с с кодированием AAC HEv2, а второй - в монофоническом режиме со скоростью 40 кбит / с с использованием HEv1. Мой код, по сути, выглядит следующим образом:

set STREAM_01=-map 0:a:0 -b:a:0 48000 -ac 2 -c:a:0 libfdk_aac -profile:a aac_he_v2 
set STREAM_02=-map 0:a:1 -b:a:1 40000 -ac 1 -c:a:1 libfdk_aac -profile:a aac_he 
set SPECS=-ar 48000 -sample_fmt s16 -cutoff 20000
ffmpeg.exe -i input.mkv -map 0:v:0 -c:v copy %SPECS% %STREAM_01% %STREAM_02% output.mkv

Но кажется, что программа выполняется только в зависимости от того, какой из двух профилей был указан последним - оба потока либо выходят из HEv1, либо оба выходят из HEv2. Это несомненно потому, что в инструкции профиля пропущен спецификатор потока, но когда я пытаюсь записать параметры профиля в форме "-profile:a:1 aac_he_v2" или "-profile:a:2 aac_he" я получаю сообщение об ошибке " Ошибка при открытии энкодера для выходного потока # 0:1. " Что мне здесь не хватает?

1 ответ1

0

aac_he_v2 кодирует стереопотоки, а ваш вариант компоновки канала не подходит для потока.

set STREAM_01=-map 0:a:0 -b:a:0 48000 -ac:a:0 2 -c:a:0 libfdk_aac -profile:a:0 aac_he_v2 
set STREAM_02=-map 0:a:1 -b:a:1 40000 -ac:a:1 1 -c:a:1 libfdk_aac -profile:a:1 aac_he 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .