Estoy convirtiendo archivos .mp4 a .flv usando ffmpeg en centos. ¡Pero el tiempo de conversión es demasiado lento! Se tarda aproximadamente 1,5 horas en convertir un archivo .mp4 de 500 MB en .flv. Estoy usando un linux vps con 2 GB de RAM dedicada.
Estoy usando el siguiente código:
ffmpeg -i source.mp4 -c:v libx264 -ar 22050 -crf 28 destination.flv
¿Hay alguna forma de acortar el tiempo de conversión? Cualquier ayuda/sugerencia será apreciada.
Dado que está utilizando un VPS, esto no es una sorpresa (suponiendo que solo tiene un único núcleo con 1-3 GHz) y no podrá reducir la conversión a unos pocos minutos. Puede intentar usar -c:v libx264 -presets ultrafast
, pero supongo que aún le llevará entre 45 y 60 minutos codificar.
Quita también la -crf
opción cuando uses un preset (ellos eligen un valor por defecto que produce un muy buen balance entre velocidad y calidad, solo recomiendo modificar ese valor cuando sepas lo que realmente hace)
Tenga en cuenta que la calidad que obtiene de ese ajuste preestablecido no es exactamente excelente. Si NECESITA una velocidad de codificación rápida sobre todo, hágalo, si no es TAN importante, le sugiero que use fast
oder faster
en lugar del ultrafast
preestablecido.
Un archivo MP4 normalmente contiene video H.264 y audio AAC, ambos compatibles con el contenedor FLV. Simplemente puede copiar sobre las secuencias:
ffmpeg -i input.mp4 -c copy output.flv
Dado que está copiando las secuencias, esto será lo más instantáneo posible y no provocará ninguna pérdida de calidad.
La RAM no es la parte crítica de una transcodificación, la CPU sí lo es. Dado que funciona de flujo a flujo, en realidad se requiere una cantidad mínima de memoria si el codificador funciona de manera eficiente. La velocidad de la memoria es importante para el espacio libre del procesador, pero no tanto la cantidad.
La CPU (o GPU si usa codificación optimizada para GPU) es lo que hace todo el trabajo y lo más probable es que su VPS no tenga suficiente potencia de procesamiento. La codificación de video es extremadamente intensiva. Es una de las principales razones por las que las estaciones de trabajo de edición de video tienden a ser computadoras grandes y potentes, a menudo con múltiples tarjetas gráficas para distribuir la carga al procesamiento de GPU o periféricos de codificación de hardware dedicados.
Dependiendo de la duración del video representado por ese archivo de 500 mb, esto no es nada sorprendente. Incluso en mi i7 de cuatro núcleos a 2,9 ghz, todavía se necesita aproximadamente de 2 a 3 veces la duración del video original para completar una codificación VBR de 2 pasos de alta calidad (y los 8 núcleos virtuales están al 99 % sin parar todo el tiempo). Es posible que no esté haciendo dos pases, pero también es probable que no tenga tanta potencia de procesamiento.
usuario3583903
timonsku
llogan
-crf
cuando se usa un-preset
? Si se elimina, se utilizará el valor predeterminado de-crf 23
.timonsku
timonsku