FFmpeg / avidemux: corrigir quadros B compactados

9

Estou transcodificando alguns dos meus vídeos mpeg4 antigos (em contêineres avi) para h.264 com o FFmpeg. Basicamente

ffmpeg -i input.avi -c:v libx264 [x264 settings] -c:a libfdk_aac [aac settings] output.mp4

Ao fazer isso, mpeg4 emite o seguinte aviso

Video uses a non-standard and wasteful way to store B-frames ('packed B-frames'). Consider using a tool like VirtualDub or avidemux to fix it.

Eu sei que ainda posso transcodificar com sucesso, mas a partir do aviso não está claro se a qualidade do vídeo h.264 resultante será afetada .

Então,

  • Considerando que eu só me preocupo com a qualidade (e tamanho, eu quero minimizar o tamanho dos meus dispositivos móveis, por isso também estou usando o veryslow preset) do vídeo de saída h.264 , devo me preocupar com os quadros B compactados?

  • Se eu deveria, como corrigi-los com o avidemux? (Eu já tentei navegar pelo manual).

por 4ae1e1 13.07.2014 / 18:53

1 resposta

11

Os quadros B são um tipo de quadro usado na compactação de vídeo para representar quadros de um vídeo. Os quadros B podem usar informações de quadros anteriores e futuros para representar cada quadro de vídeo.

Vídeos com codificação DivX mais antigos geralmente usam um método feio chamado fluxo de bits compactado que coloca vários quadros de vídeo em um único bloco AVI. O bitstream empacotado não é MPEG-4 padrão, usa mais espaço, requer mais poder de CPU para codificar / decodificar e (o mais importante) pode causar problemas se copiado para outro tipo de contêiner. Este é o principal motivo do aviso.

Como você está recodificando o vídeo em vez de apenas copiá-lo, tudo bem. Se você quisesse manter o vídeo original, mas copiá-lo para outro tipo de contêiner (digamos, MP4 ou MKV), seria melhor descompactar os quadros B primeiro usando o filtro FFmpeg mpeg4_unpack_bframes .

Você pode descompactar os quadros B com algo simples como

ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
    
por 11.07.2016 / 19:30