sacar - ¿Cómo puedo extraer una imagen JPEG de buena calidad de un archivo de video H264 con ffmpeg?
como sacar imagenes de un video sin programas (1)
Actualmente estoy usando este comando para extraer las imágenes:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Pero, ¿cómo puedo mejorar la calidad de imagen JPEG?
Usar -qscale:v
Use -qscale:v
(o el alias -q:v
) como una opción de salida. El rango efectivo para JPEG es de 2 a 31, siendo 31 la peor calidad. Recomiendo probar valores de 2-5.
Puede agregar -huffman optimal
para una disminución pequeña pero mensurable en el tamaño del archivo de salida.
Para generar una serie de imágenes:
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
Para emitir una sola imagen a ~ 60 segundos de duración:
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 -huffman optimal output.jpg
Esto funcionará con cualquier entrada de video. Vea a continuación si su entrada es MJPEG.
MJPEG
Si ingresa 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
A continuación, puede extraer los marcos utilizando el filtro de flujo de bits mjpeg2jpeg
:
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg