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?
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?
Respuestas:
-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.
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
Esto funcionará con cualquier entrada de video. Vea a continuación si su entrada es 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
o ffprobe
puede decirle si su entrada es MJPEG:
$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg
Luego, puede extraer los marcos usando el mjpeg2jpeg
filtro de flujo de bits :
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg
-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:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.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 desde ffmpeg
.
ffmpeg
genera PNG8
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 de ffmpeg
está usando para generar PNG8
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ómo identify
se supone que el usuario promedio debe entender eso aunque.