it-swarm-es.com

¿Cómo convertir rápidamente mp4 a webm usando ffmpeg?

Lamento molestarlo, pero estoy en una especie de problema. Tengo que convertir 76 archivos mp4 a webm con el propósito de un sitio web que use videos HTML5. Estoy hablando de 10 Gb de archivos mp4 ... Sé que simplemente puedo pedirle a ffmpeg que lo haga usando:

ffmpeg -i input_file.mp4 output_file.webm

Por supuesto que lo haré recursivamente:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

Incluso probé algo que encontré en algún lugar de Internet:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

¡Pero la cosa es que no me llevará menos de una semana! ¿Qué estoy haciendo mal? ¿Hay alguna forma posible de acelerar eso? Si me convierto a ogg, ¿ganaré velocidad? ¡¡¡Por favor ayuda!!!

19
pr.nizar

La transcodificación de video lleva tiempo. También requiere mucho más conocimiento sobre los parámetros de codificación; Es poco probable que los valores predeterminados de ffmpeg sean adecuados para usted y es posible que ni siquiera creen un archivo de salida utilizable.

Aquí hay un comienzo:

http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/

Esas configuraciones codificarán a una tasa de bits promedio promedio (tasa de bits de video de 3900kbit), por lo que habrá picos en la tasa de bits.

MP4 y WebM utilizan diferentes códecs de video, por lo que no hay atajos; El video debe ser transcodificado.

La velocidad de codificación, por supuesto, variará enormemente según el tamaño de cuadro, la velocidad de cuadro y la configuración de calidad. Para una codificación de 720p, es posible que pueda codificar aproximadamente 1: 1 (es decir, 10 horas de video en 10 horas) en una CPU de los últimos años. Si realiza una codificación ABR de dos pasos como en el ejemplo que se proporciona en el enlace, casi duplicará eso.

11
thomasrutter

¿Doblar eso o medio cortar eso? Así que es un callejón sin salida ... No jugaré con bitrates, nunca sé qué esperar de la calidad o el tamaño ... Creo que me quedaré con este y haré que el cliente espere hasta que termine la conversión ...

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

Lo estoy publicando para futuros usuarios, en realidad gané velocidad, pero mi CPU funciona como el infierno: ¡60 a 80% en cada núcleo! Ahora creo que tomará menos tiempo: 3 días en lugar de 6 o 7 ... Espero que no se descomponga ... ^ _ ^

Gracias de todos modos hombre!

Editar: Se eliminó el modificador -sameq después de los comentarios de LordNeckbeard y neon_overload - sameq no significa la misma "calidad"

8
pr.nizar