Actualmente estoy usando este comando para extraer las imágenes:
ffmpeg.exe -i 10fps.h264 -r 10 -f imagen2 10fps.h264_% 03d.jpeg
Pero, ¿cómo puedo mejorar la calidad de la imagen JPEG?
video
graphics
ffmpeg
computer-vision
sharpffmpeg
Daniel Gartmann
fuente
fuente
Respuestas:
Utilizar
-qscale:v
Utilice
-qscale:v
(o el alias-q:v
) como una opción de salida. El rango efectivo para JPEG es 2-31, siendo 31 la peor calidad. Recomiendo probar valores de 2-5.Para generar una serie de imágenes:
Para generar una sola imagen con una duración de ~ 60 segundos:
Esto funcionará con cualquier entrada de video. Vea a continuación si su entrada es MJPEG.
MJPEG
Si su entrada es MJPEG (Motion JPEG), las imágenes se pueden extraer sin pérdida de calidad.
La salida de la consola
ffmpeg
offprobe
puede decirle si su entrada es MJPEG:Luego, puede extraer los marcos usando el
mjpeg2jpeg
filtro de flujo de bits :Ver también
fuente
-qmin 1 -qmax 1
además de-q:v 1
duplicar el tamaño del archivo. Y puedo parecer ver una mejora muy leve también.-qmin 1 -qmax 1
resultó en un archivo más grande, pero me da exactamente la misma imagen. Validé esto a través de photoshop, 2 capas y filtro de diferencia. Los píxeles son los mismos.-qmin 1 -q:v 1
.Imprima las imágenes en un formato sin pérdidas como PNG:
Luego use otro programa (donde puede especificar con mayor precisión la calidad, el submuestreo y el método DCT, por ejemplo, GIMP) para convertir los PNG que desea a JPEG.
Es posible obtener imágenes ligeramente más nítidas en formato JPEG de esta manera de lo que es posible con una
-qmin 1 -q:v 1
salida como JPEG directamente desdeffmpeg
.fuente
ffmpeg
generaPNG8
archivos que usan solo 256 colores (igual que GIF). por lo que en realidad tiene mucha pérdida.ffmpeg
comando [ ], obtengo png de alta calidad que son de la misma calidad que el video original". ¿Qué versión deffmpeg
está usando para generarPNG8
archivos y cuál es su formato de entrada?identify image.png
da un resultado de "8 bits" cuando en realidad no es un canal único de 8 bits, sino de 8 bits para R, G y B. IDK cómoidentify
se supone que el usuario promedio debe entender eso aunque.