Tengo un conjunto de fotogramas de video guardados como imágenes en un directorio y estoy tratando de codificarlos en un video de buena calidad, sin embargo, cada configuración y cada formato que intento produce artefactos muy notables.
El comando básico es este:
ffmpeg -r 25 -i %4d.png myvideo.mpg
y probé las banderas minrate y maxrate. Cualquiera de los formatos {mpg, avi, mov, flv} servirá.
¿Alguna sugerencia de configuración? El tamaño del archivo final no es un problema.
video
ffmpeg
video-encoding
CakeMaster
fuente
fuente
ffmpeg -r 20 -f image2 -i myImage%04d.png -f mp4 -q:v 0 -vcodec mpeg4 -r 20 myVideo.mp4
. Descubrí que para forzar la velocidad de fotogramas, tenía que especificarlo tanto para los archivos de entrada como para los de salida. Este códec parece funcionar para mí; es posible que no necesite especificarlo. Solo quería incluir lo que hice porque he pasado mucho tiempo trabajando en ello. El único inconveniente es que mis imágenes de entrada son de alto contraste (bolas azules y rojas sobre un fondo blanco) y más adelante en la película, las bolas comienzan a volverse todas del mismo color oscuro, un efecto de contraste no deseado.Respuestas:
Un par de cosas:
Debe configurar la tasa de bits del video. Nunca he usado minrate y maxrate, así que no sé exactamente cómo funcionan, pero al configurar la tasa de bits con el
-b
interruptor, puedo obtener videos de alta calidad. Necesita crear una tasa de bits que ofrezca una buena compensación entre compresión y calidad de video. Es posible que tenga que experimentar con esto porque todo depende del tamaño del cuadro, la velocidad de cuadro y la cantidad de movimiento en el contenido de su video. Tenga en cuenta que el DVD tiende a rondar los 4-5 Mbit / s en promedio para 720x480, por lo que generalmente comienzo desde allí y decido si necesito más o menos y luego simplemente experimento. Por ejemplo, puede agregar-b 5000k
a la línea de comandos para obtener más o menos tasa de bits de video de DVD.Necesita especificar un códec de video. Si no lo hace, ffmpeg utilizará por defecto MPEG-1, que es bastante antiguo y no proporciona ni la cantidad de compresión que MPEG-4 o H.264. Si su versión de ffmpeg está construida con soporte libx264, puede especificarlo
-vcodec libx264
como parte de la línea de comando. De-vcodec mpeg4
lo contrario , también funcionará mejor que MPEG-1, pero no tan bien como x264.Hay muchas otras opciones avanzadas que lo ayudarán a obtener la mejor calidad con las tasas de bits más bajas. Eche un vistazo aquí para ver algunos ejemplos.
fuente
ffmpeg -i … -c:a copy -c:v libx264 -crf 18 -preset veryslow …
. 18 es el CRF con una pérdida de calidad muy marginal, pero la tasa de bits probablemente será baja. Y puede probar valores CRF más grandes si necesita un tamaño de archivo más pequeño. Y como ve, esto es bastante simple.Debe especificar la opción -vb para aumentar la tasa de bits del video; de lo contrario, obtiene el valor predeterminado que produce videos más pequeños pero con más artefactos.
Intente algo como esto:
ffmpeg -r 25 -i %4d.png -vb 20M myvideo.mpg
fuente
Asegúrese de que los PNG sean completamente opacos antes de crear el video
por ejemplo, con imagemagick, dales un fondo negro:
Según mis pruebas, ninguna tasa de bits o códec es suficiente para que el video se vea bien si alimenta ffmpeg PNG con transparencia
fuente
A menos que realice algún tipo de trabajo de posprocesamiento, el video nunca será mejor que los fotogramas originales. También al igual que un libro animado, si tienes un gran "salto" entre fotogramas clave, se verá divertido. Por lo general, necesita suficientes "interpolaciones" entre los fotogramas clave para proporcionar una animación fluida. HTH
fuente