5

Я прочитал несколько ответов и статей об использовании таких программ, как VLC , MPlayer , ffmpeg и т.д., Но ни один из методов, которые я видел, не является «без потерь». Они не захватывают каждый кадр. Я хочу извлечь каждый кадр из видео как изображение (100% качества, я не хочу терять детализацию), чтобы теоретически можно было взять эти изображения и воссоздать видеофайл, не различая разницу от оригинал (исключая отсутствие звука, конечно).

Бонусные баллы, если я могу указать время начала и окончания для захвата кадров, поэтому мне не нужно заранее обрезать видеофайл.

2 ответа2

8

Вы можете извлечь кадры как PNG, формат сжатия изображения без потерь. Например, чтобы извлечь кадры из отметки 5 и 10 минут:

ffmpeg -ss 05:00 -i <input> -t 05:00 filename%05d.png
3

Есть несколько инструментов, которые должны быть в состоянии извлечь все кадры из файла фильма:

avconv
avconv -i file.avi -f image2 Out%00d.jpg

FFmpeg
ffmpeg -i input.file thumb%04d.png -hide_banner

Это также может экспортировать BMP, который занимает гораздо меньше времени обработки, чем PNG или JPG.

Существует также bash-скрипт с именем mov2frame.sh, который пытается автоматизировать процесс извлечения FFMPEG.

Mplayer
mplayer -ao null -vo png input.file

или другой вариант:

mplayer -nosound -vo png:z=9 my_file.mp4

VLC Этот медиаплеер, очевидно, может экспортировать наборы изображений, используя его фильтры, но кажется проблематичным, если только вы не используете его только или у вас есть портативная версия.

  1. Создайте папку для хранения ваших кадров и скопируйте путь к ней. Для пользователей Mac OSX/Linux это должен быть полный путь (без ~).

  2. Нажмите Инструменты / Настройки в VLC.

  3. Под «показать настройки», нажмите «все».

  4. Под «Видео» выберите «Фильтры». Отметьте «Сцена видеофильтра».

  5. Разверните «Фильтры» и выберите «Фильтр сцены»,

  6. Вставьте путь из ранее в «префикс пути каталога».

  7. Выберите часть кадров для кодирования в поле «коэффициент записи». 1/12 с выходом каждые 12, 1/1 экспортирует их все

  8. Нажмите «Сохранить».

  9. Нажмите Медиа / Открыть видео и найдите свое видео. Терпеливо позвольте всему этому играть.

  10. Нажмите Инструменты / Настройки. Под «показать настройки», нажмите «все». Под «видео» выберите «фильтры». Снимите флажок «Сцена видеофильтра». Нажмите «Сохранить». Это сделано для того, чтобы VLC не генерировал миниатюры при следующем воспроизведении видео. ссылка на сайт

Также может возникнуть некоторая потенциальная проблема с правами администратора при первом запуске программы:

sudo vlc [sudo] password for mint16: VLC is not supposed to be run as root. Sorry. If you need to use real-time priorities and/or privileged TCP ports you can use vlc-wrapper (make sure it is Set-UID root and cannot be run by non-trusted users first).

VLC также работает намного лучше при извлечении в BMP вместо PNG

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .