¿Cómo apunto a un tamaño de archivo fijo usando ffmpeg?

¿Cómo apunto a un tamaño de archivo fijo usando ffmpeg?

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.

información relacionada