Obecnie używam tego polecenia, aby wyodrębnić obrazy:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Ale jak mogę poprawić jakość obrazu JPEG?
video
graphics
ffmpeg
computer-vision
sharpffmpeg
Daniel Gartmann
źródło
źródło
Odpowiedzi:
Posługiwać się
-qscale:v
Użyj
-qscale:v
(lub aliasu-q:v
) jako opcji wyjściowej. Efektywny zakres dla JPEG to 2-31, przy czym 31 to najgorsza jakość. Zalecam wypróbowanie wartości 2-5.Aby wydrukować serię obrazów:
Aby wyświetlić pojedynczy obraz o czasie trwania ~ 60 sekund:
Działa to z każdym wejściem wideo. Zobacz poniżej, czy dane wejściowe to MJPEG.
MJPEG
Jeśli wejście to MJPEG (Motion JPEG), obrazy można wyodrębnić bez utraty jakości.
Wynik konsoli
ffmpeg
lubffprobe
może powiedzieć, czy dane wejściowe to MJPEG:Następnie możesz wyodrębnić ramki za pomocą
mjpeg2jpeg
filtru strumienia bitów :Zobacz także
źródło
-qmin 1 -qmax 1
oprócz-q:v 1
podwoił rozmiar pliku. Wydaje się, że widzę również niewielką poprawę.-qmin 1 -qmax 1
zaowocowało większym plikiem, ale daje mi dokładnie ten sam obraz. Sprawdziłem to za pomocą Photoshopa, 2 warstw i filtra różnicowego. Piksele są takie same.-qmin 1 -q:v 1
.Wysyłaj obrazy w bezstratnym formacie, takim jak PNG:
Następnie użyj innego programu (w którym możesz dokładniej określić jakość, podpróbkowanie i metodę DCT - np. GIMP), aby przekonwertować pliki PNG, które chcesz, na JPEG.
W ten sposób można uzyskać nieco ostrzejsze obrazy w formacie JPEG, niż jest to możliwe w przypadku
-qmin 1 -q:v 1
bezpośredniego przesyłania w formacie JPEGffmpeg
.źródło
ffmpeg
wyświetlaPNG8
pliki, które używają tylko 256 kolorów (tak samo jak GIF). więc w rzeczywistości jest bardzo stratna.ffmpeg
polecenia [ ] otrzymam pliki PNG o wysokiej jakości, które są identycznej jakości z oryginalnym wideo”. Jakiej wersjiffmpeg
używasz, która generujePNG8
pliki i jaki jest twój format wejściowy?identify image.png
wynik był „8-bitowy”, podczas gdy w rzeczywistości nie jest to tak naprawdę pojedynczy kanał 8-bitowy, ale 8-bitowy dla R, G i B. IDK, jak przeciętnyidentify
użytkownik powinien zrozumieć że mimo.