codificação de 2 passagens com avconv

5

Eu não entendo porque a qualidade do vídeo com codificação multi-pass é pior do que uma passagem?

Quando faço isso, está correto:

avconv -i video.mpg -s 640x360 -threads auto \
       -vcodec libxvid -b 800k -r 24 -g 300 -bf 2 \
       -acodec libmp3lame -ac 2 -ab 128k -ar 48000 \
       video.avi

Isso é pior:

avconv -i video.mpg -s 640x360 -pass 1 -threads auto \
       -vcodec libxvid -b 800k -r 24 -f avi -an -y /dev/null
avconv -i video.mpg -s 640x360 -pass 2 -threads auto \
      -vcodec libxvid -b 800k -r 24 -g 300 -bf 2 \
      -acodec libmp3lame -ac 2 -ab 128k -ar 48000 \
      video.avi

O que estou fazendo de errado?

    
por Tazeg 20.12.2012 / 23:52

1 resposta

5

Se você está piorando a qualidade, provavelmente é porque você está usando o sinalizador -b incorretamente. Ele usado para se referir apenas à taxa de bits do vídeo, mas com a recente revisão da sintaxe do ffmpeg / avconv, agora se refere à taxa de bits geral. Então o primeiro passo é dizer ao avconv que ele tem 800kbit / s para tocar com o vídeo, mas o segundo passo é dizer que ele tem (800-128) = 672kbit / s para trabalhar.

O que a primeira passagem faz é criar um tipo de roteiro para a segunda passagem para aproveitar - este lugar é uma cena de ação, ele precisa de uma taxa de bits maior; esta é uma conversa lenta, precisa de menos - esse tipo de coisa. Por trabalhar com informações incorretas, o roteiro está incorreto.

Use -b: v no lugar (e -b: a ao invés de -ab), assim:

avconv -y -i video.mpg -s 640x360 -pass 1 -threads auto -c:v libxvid -b:v 672k -r 24 -f avi -an /dev/null
avconv -i video.mpg -s 640x360 -pass 2 -threads auto -c:v libxvid -b:v 672k -r 24 -g 300 -bf 2 -c:a libmp3lame -ac 2 -b:a 128k -ar 48000 video.avi

Além disso, muitas dessas opções são possivelmente desnecessárias, já que o avconv usará as mesmas opções que a entrada. A menos que você redimensione o vídeo, omita o -s 640x360 bit. Da mesma forma, a menos que você precise alterar a taxa de quadros, omita o -r 24 e, a menos que realmente precise alterar a taxa de amostragem, omita o -ar 48000 . Obviamente, se você sabe que precisa deles, deixe-os entrar.

    
por evilsoup 04.01.2013 / 12:27