Atualmente estou usando este comando para extrair as imagens:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Mas como posso melhorar a qualidade da imagem JPEG?
video
graphics
ffmpeg
computer-vision
sharpffmpeg
Daniel Gartmann
fonte
fonte
Respostas:
Usar
-qscale:v
Use
-qscale:v
(ou o alias-q:v
) como uma opção de saída. O intervalo efetivo para JPEG é de 2 a 31, com 31 sendo a pior qualidade. Eu recomendo tentar valores de 2-5.Para produzir uma série de imagens:
Para gerar uma única imagem com duração de aproximadamente 60 segundos:
Isso funcionará com qualquer entrada de vídeo. Veja abaixo se sua entrada é MJPEG.
MJPEG
Se a sua entrada for MJPEG (Motion JPEG), as imagens podem ser extraídas sem qualquer perda de qualidade.
A saída do console
ffmpeg
ouffprobe
pode dizer se sua entrada é MJPEG:Em seguida, você pode extrair os quadros usando o
mjpeg2jpeg
filtro de fluxo de bits :Veja também
fonte
-qmin 1 -qmax 1
além do-q:v 1
dobro do tamanho do arquivo. E também posso ver uma ligeira melhora.-qmin 1 -qmax 1
resultou em um arquivo maior, mas me dá exatamente a mesma imagem. Eu validei isso via photoshop, 2 camadas e filtro de diferença. Os pixels são iguais.-qmin 1 -q:v 1
.Envie as imagens em um formato sem perdas, como PNG:
Em seguida, use outro programa (onde você pode especificar com mais precisão a qualidade, subamostragem e método DCT - por exemplo, GIMP) para converter os PNGs que deseja em JPEG.
É possível obter imagens um pouco mais nítidas no formato JPEG desta forma do que com
-qmin 1 -q:v 1
e saída como JPEG diretamente doffmpeg
.fonte
ffmpeg
produzPNG8
arquivos que usam apenas 256 cores (igual ao GIF). portanto, é realmente muito prejudicial.ffmpeg
comando [ ], obtenho png de alta qualidade que são de qualidade idêntica ao vídeo original." Qual versão doffmpeg
você está usando que está gerandoPNG8
arquivos e qual é o seu formato de entrada?identify image.png
dá o resultado "8 bits" quando na verdade não é realmente um único canal de 8 bits, mas de 8 bits para R, G e B. IDK como oidentify
usuário comum deve entender aquele tho.