Devidamente downmix 5.1 para estéreo usando ffmpeg

14

Eu tenho uma faixa de áudio 5.1 de um filme em que a parte frontal esquerda e a parte frontal direita contém música e o centro contém diálogos. Tocar a faixa 5.1 no VLC combina tudo bem.

Estou tentando converter a faixa 5.1 para estéreo usando ffmpeg -ac 2 , mas a mixagem estéreo resultante tem um volume muito mais fraco do que reproduzir nativamente a trilha 5.1.

Adicionar -af "pan=stereo|c0=FL|c1=FR" fornece o volume correto, mas não há diálogo porque o canal central não está incluído.

Então a solução talvez seja misturar esquerda / centro / direita em estéreo e descartar os canais de subwoofer de back-end? (Eu estou supondo aqui ...)

Então a questão é: Como eu faço o ffmpeg downmix 5.1 para estéreo da mesma maneira que o VLC faz, com o mesmo volume strong no resultado final?

    
por forthrin 14.12.2014 / 13:23

4 respostas

15

Eu encontrei a resposta que Shane forneceu para fornecer muito pouco dos outros canais e demais do centro. Filmes com fones de ouvido soaram desequilibrados, com todos os diálogos e música / efeitos de fundo insuficientes.

De acordo com os padrões ATSC (seção 7.8, página 91) A fórmula a seguir é usada para fazer downmix de 5.1 para estéreo convencional (em oposição a matriz):

Lo = 1.0 * L + clev * C + slev * Ls ;
Ro = 1.0 * R + clev * C + slev * Rs ;

clev e slev devem ser 0,707, de acordo com as tabelas 5.9 e 5.10 do documento supracitado, assumindo um nível de mix center / surround de 0. Outros valores são fornecidos nessas tabelas, o que reduz a quantidade de mix center, que eu encontre útil.

Com isto em mente, a seguinte opção ffmpeg produz um bom som balanceado com diálogo audível. Observe que especificar os canais de áudio não é necessário.

-af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR"

Uma observação sobre o uso do símbolo de menor que, da documentação do filtro de panorâmica :

If the ‘=’ in a channel specification is replaced by ‘<’, then the gains for that specification will be renormalized so that the total is 1, thus avoiding clipping noise.

    
por 14.06.2017 / 04:32
9

Experimente este downmix:

-ac 2 -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" 

como sugerido em: Diódromo noturno downmix predefinido para 5.1 DTS para 2.0 AAC estéreo usando ffmpeg e qaac

    
por 04.03.2016 / 18:32
4

Então, combinando @Shane Harrelson's com @Jordan Harris's responder a outra pergunta - com o modo lento ligado - aqui o que é necessário para converter input_51.mkv (5.1) em output_stereo.mkv (estéreo):

ffmpeg -i input_51.mkv -c:v copy \
    -ac 2 -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" \
    output_stereo.mkv

A parte -c:v copy significa que o fluxo de vídeo não está sendo tocado (imagino que as configurações do odec v ideo c estejam sendo cop ied). Sem isso, vai demorar muito mais tempo. Apenas repetindo a resposta acima para conclusão, -ac 2 significa dois canais de áudio e -af especifica um filtro de áudio.

Depois de examinar o comando um pouco, descobri que ele está configurando como os dois canais estéreo são compostos; o FL (canal frontal esquerdo) é retirado do original FC (centro da frente) mais 0.30*FL (30% da frente esquerda) mais 0.30*BL (30% da parte traseira esquerda) e assim por diante. / p>     

por 19.11.2016 / 05:09
0

Se a opção -ac 2 oferece um downmix balanceado, em que nem a música nem a fala soam muito mais que os outros componentes, você só precisa aumentar o volume com

-vol 512

Eu usei 512 no exemplo, o que aumenta o som tornando-o duas vezes mais alto. A regra é que 256 é equivalente a 100%

Não vá muito alto com o valor e certifique-se de verificar os resultados nessas partes do filme com explosões ou ruído alto. É muito fácil introduzir a distorção usando um valor muito alto.

    
por 15.01.2018 / 00:23