Como usar o ffmpeg para downmix 5.1 DTS HD MA ou Dolby TrueHD para AAC estéreo com Dolby Pro Logic II?

4

Estou criando faixas de áudio de filmes que podem ser reproduzidos em dispositivos Apple TV e iOS. Handbrake poderia downmix de áudio 5.1 para estéreo com codificação de matriz Pro Logic II. Como posso fazer isso com o ffmpeg?

Eu encontrei este link no ffmpeg Trac mencionando que eu poderia fazer a codificação da matriz com libswresample , mas mais pesquisar não mostra como realmente usar isso na linha de comando.

Eu tentei

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

em que a única faixa de áudio no arquivo de origem test.mkv é um HD DTS de 5.1 canais, mas o áudio AAC gerado não parece ser codificado por matriz.

    
por Riobard 12.05.2013 / 22:59

3 respostas

7

De acordo com a entrada manual em aresample , você precisa fornecer as opções de reamostrador em um formato diferente:

The filter accepts the syntax [sample_rate:]resampler_options, where sample_rate expresses a sample rate and resampler_options is a list of key=value pairs, separated by ":".

Isso significa que você precisa chamá-lo assim:

-af "aresample=matrix_encoding=dplii"
    
por 12.05.2013 / 23:16
1

Meu método preferido é usar o ffmpeg para fazer downmix do DTS para estéreo e canalizar essa saída para o codificador de linha de comando Quicktime AAC (o Quicktime é o melhor codificador AAC em testes de audição ).

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"

Requer ffmpeg.exe e qaac.exe

    
por 18.07.2013 / 13:08
0

Reunindo algumas das respostas aqui, parece que esta é a melhor resposta:

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

E para pontos de bônus, rebaixando o canal 5.1 existente para o canal 2 e promovendo o estéreo como canal 1, seria:

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
    
por 22.08.2018 / 06:03