comandos - Usando ffmpeg para codificar un video de alta calidad
ffmpeg tutorial (4)
Tengo un conjunto de marcos 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 he probado las banderas minrate y maxrate. Cualquiera de los formatos {mpg, avi, mov, flv} funcionará.
Alguna sugerencia para la configuración? El tamaño del archivo final no es un problema.
A menos que realice algún tipo de trabajo de posprocesamiento, el video nunca será mejor que los fotogramas originales. Además, al igual que un libro de tapa, si tiene un gran "salto" entre los fotogramas, se verá raro. En general, necesita suficientes "interpolaciones" entre los fotogramas clave para dar una animación fluida. HTH
Asegúrate de que los PNG sean completamente opacos antes de crear el video
por ejemplo, con imagemagick, dales un fondo negro:
convert 0.png -background black -flatten +matte 0_opaque.png
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
Necesita especificar la opción -vb para aumentar la velocidad de bits del video, de lo contrario obtendrá el valor predeterminado que produce videos más pequeños pero con más artefactos.
Pruebe algo como esto:
ffmpeg -r 25 -i %4d.png -vb 20M myvideo.mpg
Un par de cosas:
Necesitas configurar la velocidad de bits del video. Nunca he usado minrate y maxrate, así que no sé exactamente cómo funcionan, pero al establecer la velocidad de bits usando el
-b
, puedo obtener video de alta calidad. Debe generar una velocidad de bits que ofrezca una buena compensación entre la compresión y la calidad del video. Puede que tenga que experimentar con esto porque todo depende del tamaño del cuadro, la velocidad de fotogramas y la cantidad de movimiento en el contenido de su video. Tenga en cuenta que el DVD tiende a ser de alrededor de 4-5 Mbit / s en promedio para 720x480, por lo que generalmente empiezo 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 comando para obtener más o menos tasa de bits de video DVD.Debe especificar un códec de video. Si no lo hace, ffmpeg se ajustará por defecto a MPEG-1, que es bastante antiguo y no proporciona una compresión cercana a MPEG-4 o H.264. Si su versión ffmpeg está construida con soporte para libx264, puede especificar
-vcodec libx264
como parte de la línea de comando. De-vcodec mpeg4
contrario,-vcodec mpeg4
también hará un mejor trabajo que MPEG-1, pero no tan bien como x264.Hay muchas otras opciones avanzadas que te ayudarán a exprimir la mejor calidad con las tasas de bits más bajas. Mire here algunos ejemplos.