Como obter a melhor qualidade ao converter de mp4 para avi com ffmpeg?

11

Quando uso isso, a qualidade não parece ruim.

ffmpeg -same_quant -i video.mp4 video.avi

Na documentação de ffmpeg está escrito: "Note que isso NÃO É DA MESMA QUALIDADE. Não use esta opção a menos que você saiba que precisa dela."

Eu obtenho com -same_quant a melhor qualidade ou existe uma opção que ofereça a mesma qualidade que a entrada e seja mais recomendada?

    
por sid_com 08.06.2012 / 16:55

2 respostas

14

(adaptado dos comentários acima)

Dependendo dos codecs usados (alguns codecs são incompatíveis com alguns contêineres), você pode simplesmente copiar os fluxos ( -codec copy ). Essa é a melhor maneira de evitar alterações de qualidade, já que você não está reencodificando os fluxos, apenas reempacotando os que estão em um contêiner diferente.

Ao lidar com arquivos de áudio / vídeo, é importante ter em mente que contêineres são na maioria independente dos codecs usados. É comum ver pessoas referindo-se a arquivos como "vídeo AVI" ou "vídeo MP4", mas esses são contêineres e nos dizem pouco sobre se um player poderá reproduzir os streams, como, além das limitações técnicas (por exemplo, AVI pode ter problemas com h264 e Ogg Vorbis ), você pode usar qualquer codec.

-same_quant parece ser uma maneira de dizer ao ffmpeg para tentar obter uma qualidade semelhante, mas assim que você reencode o vídeo (pelo menos com codecs com perdas), não há como obter a mesma qualidade. Se você está preocupado com a qualidade, uma boa regra é evitar a reencodificação dos fluxos quando possível.

Então, para copiar os fluxos com o ffmpeg, você faria:

ffmpeg -i video.mp4 -codec copy video.avi

( Como @ Peter.O mencionou , a ordem de opção é importante, então é para onde -codec copy deve ir. Você ainda pode manter -same_quant , mas não terá efeito algum, já que você não está reencodificando os fluxos. )

    
por 08.06.2012 / 21:06
3

No FreeBSD 8. 2, eu tentei copiar o cd, mas também recebi uma mensagem desconhecida decodificada. Após tentativa e erro, encontrei o que está trabalhando no FreeBSD:

ffmpeg -i video.mp4 -vcodec copy video.avi
    
por 05.05.2013 / 02:31