Я ищу способ делать точные скриншоты из видео. С точностью до миллисекунд. Я пробовал использовать ffmpeg
следующую команду:
ffmepg.exe -ss position-in-hours-minutes-milliseconds -i videoPath -y -f image2 \ -vcodec mjpeg -vframes 1 screenshot-path
но результат неточен. Он не учитывает миллисекунды. Мне нужен способ сделать снимок экрана с видео, учитывая миллисекунды.
Спасибо.
решение1
Я подозреваю, что предыдущий ответ неправильно понял ваш комментарий относительно точности в миллисекундах. Если вам нужен точный метод извлечения текущего отображаемого кадра,Авидемюксможет быть установлена как портативная версия и проста в использовании. Просто перейдите к нужному кадру, затем выберите Файл/Сохранить как изображение.
Если вы хотите использовать ffmpeg, приведенного ниже кода должно быть достаточно.
ffmpeg -i input.mp4 -ss 00:00:00.000 -update 1 -frames:v 1 out.bmp
Вы можете изменить вывод на наиболее распространённые форматы изображений.
решение2
Хотя это как использовать пушку (неКанон) стрелять в блоху, обаВырезкаиOpenShotпоказывать время с разрешением 1/100 секунды, т.е. десять миллисекунд, что недовольното, о чем вы просите... но можно было быинтерполироватьотметив точки, где находится наименьший десятичный знак, и растянув временную шкалу так, чтобы можно было производить измерения по ней в мс.
Предостережение:Это полезно только в видео с достаточныминформация.Записанный на любой скорости менее 100 кадров в секунду не имеет никаких изменений на уровне мс, а если видеоформат используетвременная компрессияиспользуется толькоразницамежду кадрами записывается, что делает очень трудным, если не невозможным, извлечение информации на уровне одного «кадра», т.е.дельтамежду полными кадрами.
Если у вас есть настоящая высокоскоростная камера с автономным видеорегистраторомнетс использованием сжатия, то вы сможете видеть целые кадры с разрешением менее мс... и, скорее всего, у вас есть специализированное программное обеспечение для этого.