Ich verwende ffmpeg, um einen mjpeg-Feed von einer IP-Kamera aufzunehmen und in eine Reihe von Standbildern zu konvertieren. Hier ist der Befehl, den ich benutze:
ffmpeg -i http://xxx:[email protected]/vid.mjpg -f image2 -vcodec mjpeg %05d.jpg
Kennt jemand eine Möglichkeit, den Grad der JPG-Komprimierung festzulegen, wenn ffmpeg zum Erstellen von Standbildern verwendet wird?
-c:v copy -bsf:v mjpeg2jpeg
stattq:v 1
.q
. Hier ist es zum Beispiel 24.8frame= 64 fps=5.0 q=24.8 Lsize=N/A time=00:00:16.00 bitrate=N/A dup=10 drop=299 speed=1.25x
$ ffmpeg -r 1/4 -i %03d.jpg -b 5000 -vcodec mjpeg -qscale 1 5000.avi
ODER
$ ffmpeg -r 1/4 -i %03d.jpg -vcodec copy -qscale 1 copy.avi
Referenz:
quelle
Sie können versuchen, in PPM zu exportieren und mit einem anderen Tool in JPEG zu konvertieren.
Ich habe in ffmpeg / libavcodec / mjpeg.c nachgesehen. Ich glaube, die Qualität ist auf einen festen Wert festgelegt.
Außerdem scheinen Sie ein MJPEG-Video in JPEG-Standbilder umzuwandeln. Ich denke in diesem Fall läuft der Code in ffmpeg / libavcodec / mjpeg2jpeg_bsf.c und die Daten werden nicht neu codiert. Die Bildqualität würde sich also sowieso nicht verbessern.
Dies ist die Quantisierungstabellendefinition. Ich habe keinen Verweis auf * val_? C gesehen, bei dem die Werte vor der Verwendung skaliert wurden.
quelle
-vcodec ppm
wird benötigt um ppm zu exportieren