
Tengo un archivo de video que tiene 15 segundos de duración y 465,195 KB. Me gustaría reducirlo a alrededor de 46.000 KB. Hay una forma fácil de hacer esto. He probado la mayor tasa de bits permitida.
ffmpeg -i input -q:v 0 -b:v 900000k output
y todavía recibo un archivo de sólo 3500 KB
gracias de antemano
Respuesta1
¿Cómo apunto a un tamaño de archivo fijo usando ffmpeg
?
Si está dispuesto a transcodificar usando x264
, puede seguir las instruccionesguía de codificaciónque ofrece ejemplos de cómo apuntar a un tamaño de archivo particular.
target bitrate = target filesize / duration
ie bitrate = 46000 / 15
ie bitrate = 3067 (kbit / s)
Probablemente necesitarás algo de eso para el audio; la guía utiliza 128k como valor predeterminado aproximado, por lo que su tasa de bits objetivo es2939 kbit/s. Luego puedes usar eldos pasesespecificación de codificación:
ffmpeg -y -i input -c:v libx264 -preset medium -b:v 2939k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 2939k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
Este método se utiliza generalmente si su objetivo es un tamaño de archivo de salida específico y la calidad de salida de cuadro a cuadro es de menos importancia.
Por supuesto, puede ajustar esto a sus necesidades en términos de audio codificado, etc., pero debería terminar con un archivo de 46000 kB.