Как использовать ffmpeg для микширования 5.1 DTS HD MA или Dolby TrueHD для стерео AAC с Dolby Pro Logic II?

Я создаю звуковые дорожки из фильмов, которые можно воспроизводить на устройствах Apple TV и iOS. Ручной тормоз мог понижать звук 5.1 до стерео с матричным кодированием Pro Logic II. Как я могу сделать это с ffmpeg?

Я нашел эту ссылку на ffmpeg Trac, упомянув, что я могу делать матричное кодирование с libswresample, но дальнейший поиск не показывает, как на самом деле использовать это в командной строке.

Я старался

ffmpeg -i test.mkv -map 0:1 -c libfdk_aac -ac 2 -af aresample  -matrix_encoding dplii  out.aac

где единственная звуковая дорожка в исходном файле test.mkv является 5.1-канальной DTS HD MA, но сгенерированный звук AAC, по-видимому, не имеет матричного кодирования.

3 ответа

Решение

Согласно ручной записи наaresampleВы должны предоставить опции ресэмплера в другом формате:

Фильтр принимает синтаксис [sample_rate:]resampler_options, где sample_rate выражает частоту дискретизации и resampler_options это список key=value пары, разделенные ":".

Это означает, что вам нужно назвать это так:

-af "aresample=matrix_encoding=dplii"

Мой предпочтительный метод состоит в том, чтобы использовать ffmpeg для понижающего микширования DTS в стерео, а затем передать этот вывод на кодировщик командной строки Quicktime AAC (Quicktime - лучший кодировщик AAC в тестах прослушивания).

ffmpeg.exe -report -loglevel verbose -i "videofile.mkv" -map 0:a:0 -f wav -acodec pcm_f32le -ac 2 - | qaac.exe --tvbr 127 --quality 2 --rate keep --ignorelength --no-delay - -o "audioonly.m4a"

Требуется ffmpeg.exe и qaac.exe

Приведем пару ответов здесь, похоже, это лучший ответ:

ffmpeg -i SourceVideoWithFivePointOne.mkv -map 0:1  \
-c libfdk_aac -ac 2 -af "aresample=matrix_encoding=dplii"  \
DestinationAudioWithDolbyPLII.aac

А для бонусных баллов, понижающих существующий канал 5.1 до 2-го канала и продвигающих стерео как канал 1, это будет:

ffmpeg -i SourceWithFivePointOne.mkv -c:v copy -map 0:0 -map 0:1 -map 0:1  \
-c:a:0 libfdk_aac -ac 2 -af "aresample=matrix_encoding=dplii"  \
-c:a:1 copy  \
DestinationVideoWithSurroundAndStereo.mkv
Другие вопросы по тегам