Why is the re-encoded video several times larger than the input file?
Você está impondo o codificador para usar uma configuração de qualidade de vídeo sem perdas com -crf 0
. Isso faz com que o vídeo de saída seja muito maior que a entrada (supondo que seu vídeo de entrada esteja codificado com uma configuração com perdas).
A configuração sem perda limita muito a capacidade de compactação do codificador. Em termos simples: o alto desempenho de compactação obtido pela maioria dos codecs de vídeo, como o x264, ocorre por meio da codificação de vídeo com perdas, que tenta preservar a qualidade "perceptual" ao se livrar de dados perceptivelmente insignificantes.
How to encode mp4 video without losing quality and increasing the file size?
Como funciona a codificação com perdas, é literalmente impossível codificar novamente um vídeo anteriormente codificado com perdas, sem perda de qualidade, a menos que você esteja usando uma configuração sem perdas, que, conforme você encontrou, aumenta o tamanho do arquivo.
Em vez disso, você pode experimentar diferentes valores de -crf
para ver que tipo de qualidade / tamanho de arquivo você obtém em seu vídeo de saída. Com a codificação com perdas, sempre será um compromisso entre qualidade e tamanho do arquivo. Você pode ler sobre o controle de taxa de bits de codificação aqui .