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

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

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

ffmpeg -same_quant -i video.mp4 video.avi

Na ffmpegdocumentação está escrito: "Observe que NÃO É A MESMA QUALIDADE. Não use esta opção a menos que saiba que precisa dela."

Recebo com -same_quanta melhor qualidade ou existe uma opção que dá a mesma qualidade da entrada e é mais recomendada?

Responder1

(adaptado dos comentários acima)

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

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

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

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

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

(Como @ Peter.O mencionou, a ordem das opções é importante, então é para onde -codec copydevemos ir. Você ainda pode manter -same_quant, mas isso não terá nenhum efeito, pois você não está recodificando os fluxos.)

Responder2

No FreeBSD 8.2, tentei -codec copy, mas também recebi uma mensagem desconhecida decodificada. Após tentativa e erro, encontrei aquele que funciona no FreeBSD:

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

informação relacionada