1. Камеры
  2. Автоаудио и электроника
  3. Домашнее аудио
  4. Персональное аудио
  5. Телевизоры
  6. Умный дом
  >> Электронные технологии >  >> Камеры >> Экшн-камеры

Как я могу использовать FFMPEG для захвата скриншота из видеофайла?

FFMPEG предлагает несколько способов запечатлеть скриншоты из видеофайла. Вот наиболее распространенные и универсальные методы:

Метод 1:Использование `-vf` (видеофильтр)` scale` и `select`

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

`` `bash

ffmpeg -i input.mp4 -vf "select ='eq (n, 10)', scale =640:-1" -frames:v 1 output.png

`` `

* `-i input.mp4`:указывает входной видеофайл. Замените `input.mp4` на имя вашего видеофайла.

* `-vf" select ='eq (n, 10)', scale =640:-1 "`:это цепочка видеофильтров.

* `select ='eq (n, 10)'`:выбирает 11 -й кадр (n начинается с 0). Измените `10 ', чтобы выбрать другой кадр. Вы можете использовать более сложные выражения здесь, например, `select ='gte (t, 10)'` Выбирает кадры с 10 секунд.

* `Scale =640:-1`:сбрасывание рамки шириной до 640 пикселей при сохранении соотношения сторон. `-1` автоматически рассчитывает высоту. Вы можете указать как ширину, так и высоту при необходимости (например, `Scale =640:480`).

* `-Frames:V 1`:сообщает FFMPEG вывести только один кадр.

* `output.png`:указывает выходной файл png. Вы можете использовать другие форматы изображений, такие как JPEG (`output.jpg`).

Метод 2:Использование `-vf` (видеофильтр)` thumbnail`

Этот метод проще для захвата одной миниатюры в определенное время или процент продолжительности видео.

`` `bash

ffmpeg -i input.mp4 -vf thumbnail -frames:v 1 output.png

`` `

Это захватит миниатюру от примерно середины видео. Чтобы указать точное время:

`` `bash

ffmpeg -i input.mp4 -vf "Thumbnail, setpts =pts -startpts" -ss 10 -frames:v 1 output.png

`` `

* `-SS 10`:стремится к 10 секундам в видео * перед * захватом миниатюры. Как правило, это более эффективно, чем использование `select` в течение определенного времени.

Метод 3:Использование `-vf` (видеофильтр) и` fps` для нескольких скриншотов

Чтобы запечатлеть несколько скриншотов через регулярные промежутки времени:

`` `bash

ffmpeg -i input.mp4 -vf fps =1/5 выход%03d.png

`` `

Это создаст скриншоты каждые 5 секунд (1 кадр в секунду или 1/5 кадров в секунду), пронумерованный `output001.png`,` output002.png` и так далее.

Важные соображения:

* `-ss` placement: Размещение `-SS` * до *` -I` будет выполнять более быструю поиск (он ищет во входном файле). Размещение его после `-i` будет расшифровать все видео до точки поиска и будет медленнее, но может быть более точным для некоторых видео форматов.

* частота кадров: Фактическое число кадров может не совсем соответствовать временному коду из -за изменений в частоте видео кадров.

* Форматы файлов: Вы можете изменить расширение выходного файла на `.jpg`,` .jpeg`, `.bmp` и т. Д., Чтобы использовать разные форматы изображения.

Не забудьте заменить `input.mp4` и` output.png` на ваши фактические имена файлов. Выберите метод, который наилучшим образом соответствует вашим потребностям, и соответственно отрегулируйте параметры. Первый метод предлагает наибольшее количество управления, в то время как остальные быстрее для более простых задач.

  1. Как настроить видео цвет в Adobe Premiere Elements
  2. Как восстановить 8мм ленты
  3. Как импортировать видео в флип
  4. Digital Betacam очистки
  5. Можно ли брать видеокамеру в самолет?