Derzeit verwende ich diesen Befehl, um die Bilder zu extrahieren:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Aber wie kann ich die JPEG-Bildqualität verbessern?
video
graphics
ffmpeg
computer-vision
sharpffmpeg
Daniel Gartmann
quelle
quelle
Antworten:
Verwenden
-qscale:v
Verwenden Sie
-qscale:v
(oder den Alias-q:v
) als Ausgabeoption. Der effektive Bereich für JPEG beträgt 2-31, wobei 31 die schlechteste Qualität ist. Ich empfehle Werte von 2-5 zu versuchen.So geben Sie eine Reihe von Bildern aus:
So geben Sie ein einzelnes Bild mit einer Dauer von ~ 60 Sekunden aus:
Dies funktioniert mit jedem Videoeingang. Siehe unten, wenn Ihre Eingabe MJPEG ist.
MJPEG
Wenn Sie MJPEG (Motion JPEG) eingeben, können die Bilder ohne Qualitätsverlust extrahiert werden.
Die Ausgabe
ffmpeg
oderffprobe
Konsole kann Ihnen sagen, ob Ihre Eingabe MJPEG ist:Anschließend können Sie die Frames mit dem
mjpeg2jpeg
Bitstream-Filter extrahieren :Siehe auch
quelle
-qmin 1 -qmax 1
zusätzlich-q:v 1
die Dateigröße verdoppelt. Und ich kann auch eine sehr leichte Verbesserung feststellen.-qmin 1 -qmax 1
führte zu einer größeren Datei, gibt mir aber genau das gleiche Bild. Ich habe dies über Photoshop, 2 Ebenen und Differenzfilter validiert. Die Pixel sind gleich.-qmin 1 -q:v 1
.Geben Sie die Bilder in einem verlustfreien Format wie PNG aus:
Verwenden Sie dann ein anderes Programm (in dem Sie Qualität, Unterabtastung und DCT-Methode genauer angeben können - z. B. GIMP), um die gewünschten PNGs in JPEG zu konvertieren.
Auf diese Weise können etwas schärfere Bilder im JPEG-Format erhalten werden, als dies mit
-qmin 1 -q:v 1
JPEG direkt von und bei der Ausgabe als JPEG möglich istffmpeg
.quelle
ffmpeg
gibtPNG8
Dateien aus, die nur 256 Farben verwenden (wie GIF). es ist also eigentlich sehr verlustbehaftet.ffmpeg
] Befehl, ich hohe Qualität png erhalten , die von gleicher Qualität auf dem Original - Video sind.“ Welche Version von verwendenffmpeg
Sie, diePNG8
Dateien ausgibt , und welches Eingabeformat haben Sie?identify image.png
das Ergebnis "8-Bit" ist, wenn es eigentlich nicht wirklich einkanaliges 8-Bit ist, sondern 8-Bit für R, G und B. IDK, wie der durchschnittlicheidentify
Benutzer verstehen soll das tho.