В настоящее время я использую эту команду для извлечения изображений:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Но как я могу улучшить качество изображения JPEG?
video
graphics
ffmpeg
computer-vision
sharpffmpeg
Даниэль Гартманн
источник
источник
Ответы:
Использовать
-qscale:v
Используйте
-qscale:v
(или псевдоним-q:v
) как вариант вывода. Эффективный диапазон для JPEG - 2-31, где 31 - худшее качество. Я рекомендую попробовать значения 2-5.Чтобы вывести серию изображений:
Чтобы вывести одно изображение длительностью ~ 60 секунд:
Это будет работать с любым видеовходом. См. Ниже, если ваш ввод - MJPEG.
MJPEG
Если ваш входной файл - MJPEG (Motion JPEG), изображения можно извлечь без потери качества.
ffmpeg
Илиffprobe
консольный вывод может сказать вам , если ваш вход MJPEG:Затем вы можете извлечь кадры с помощью
mjpeg2jpeg
фильтра битового потока :Также см
источник
-qmin 1 -qmax 1
в дополнение к-q:v 1
удвоили размер файла. И я также вижу очень небольшое улучшение.-qmin 1 -qmax 1
к большему файлу, но дает мне точно такое же изображение. Я проверил это через фотошоп, 2 слоя и фильтр различий. Пиксели такие же.-qmin 1 -q:v 1
.Выведите изображения в формате без потерь, таком как PNG:
Затем используйте другую программу (где вы можете более точно указать качество, субдискретизацию и метод DCT - например, GIMP), чтобы преобразовать нужные PNG в JPEG.
Таким образом можно получить немного более четкие изображения в формате JPEG, чем это возможно при
-qmin 1 -q:v 1
прямом выводе в формате JPEGffmpeg
.источник
ffmpeg
выводитPNG8
файлы, в которых используется только 256 цветов (как в GIF). так что на самом деле это очень с потерями.ffmpeg
] я получу png высокого качества, идентичного качеству исходного видео». Какую версиюffmpeg
вы используете для выводаPNG8
файлов и какой у вас формат ввода?identify image.png
результат был "8-битным", хотя на самом деле это не одноканальный 8-битный, а 8-битный для R, G и B. IDK, какidentify
должен понимать средний пользователь что то.