В даний час я використовую цю команду для витягування зображень:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Але як я можу покращити якість зображення JPEG?
В даний час я використовую цю команду для витягування зображень:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Але як я можу покращити якість зображення JPEG?
Відповіді:
-qscale:vВикористовуйте -qscale:v(або псевдонім -q:v) як вихідний варіант. Ефективний діапазон JPEG становить 2-31, причому 31 є найгіршою якістю. Я рекомендую спробувати значення 2-5.
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
Це працюватиме з будь-яким відеовходом. Дивіться нижче, якщо ваш вхід MJPEG.
Якщо ваш вхід MJPEG (Motion JPEG), зображення можна витягувати без втрати якості.
Вихід ffmpegабо ffprobeконсоль може повідомити, чи є ваш вхід MJPEG:
$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg
Потім ви можете витягти кадри за допомогою mjpeg2jpegфільтра бітового потоку :
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg
-qmin 1 -qmax 1крім того, щоб -q:v 1подвоїти розмір файлу. І я, здається, також бачу дуже незначне поліпшення.
-qmin 1 -qmax 1призвів до більшого файлу, але дає мені точно таке ж зображення. Я підтвердив це через Photoshop, 2 шари та фільтр різниці. Пікселі однакові.
-qmin 1 -q:v 1.
Виведіть зображення у форматі без втрат, наприклад PNG:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.png
Потім скористайтеся іншою програмою (де ви можете більш точно вказати якість, підсистемування та метод DCT - наприклад, GIMP) для перетворення PNG, які ви хочете, в JPEG.
Таким чином можна отримати трохи чіткіші зображення у форматі JPEG, ніж це можливо, -qmin 1 -q:v 1та виводити безпосередньо у форматі JPEG ffmpeg.
ffmpegвиводить PNG8файли, які використовують лише 256 кольорів (те саме, що і GIF). тож насправді це дуже втрачає.
ffmpegкоманда], я отримую високу якість PNG - х , які мають однакову якість з оригінальним відео.» Яку версію ffmpegви використовуєте, що виводить PNG8файли, і який ваш формат введення?
identify image.pngдає результат "8-бітний", коли насправді це не один одноканальний 8-розрядний, але 8-розрядний для R, G і B. IDK, як identifyповинен розуміти середній користувач що тхо.