(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. )