Używam ffmpeg, aby pobrać kanał mjpeg z kamery IP i przekonwertować go na serię nieruchomych obrazów JPEG. Oto polecenie, którego używam:
ffmpeg -i http://xxx:[email protected]/vid.mjpg -f image2 -vcodec mjpeg %05d.jpg
Czy ktoś zna sposób na określenie poziomu kompresji jpg podczas używania ffmpeg do tworzenia zdjęć?
-c:v copy -bsf:v mjpeg2jpeg
zamiastq:v 1
.q
. Tutaj jest to 24,8 na przykładframe= 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
LUB
$ ffmpeg -r 1/4 -i %03d.jpg -vcodec copy -qscale 1 copy.avi
Odniesienie:
źródło
Możesz spróbować wyeksportować do PPM i użyć innego narzędzia do konwersji na JPEG.
Zajrzałem do ffmpeg / libavcodec / mjpeg.c. Uważam, że jakość jest ustawiona na stałą wartość.
Wydaje się również, że konwertujesz wideo MJPEG w nieruchome ramki JPEG. Myślę, że w tym przypadku kod w ffmpeg / libavcodec / mjpeg2jpeg_bsf.c działa i dane nie są ponownie kodowane. Tak więc jakość obrazu i tak by się nie poprawiła.
To jest definicja tabeli kwantyzacji, nie widziałem żadnego odniesienia do * val_? C, gdzie wartości były skalowane przed użyciem.
źródło
-vcodec ppm
jest potrzebny do eksportowania ppm