Есть ли какой-либо командный инструмент для извлечения кадра из видео/потока и записи временной метки каждого кадра?

Есть ли какой-либо командный инструмент для извлечения кадра из видео/потока и записи временной метки каждого кадра?

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

Есть ли какой-либо инструмент, отвечающий такому требованию?

решение1

Это можно сделать в несколько этапов, используя ffmpeg и инструмент пакетного переименования, напримерРасширенный переименование.

Предположим, вы хотите извлечь каждый 40-й кадр

#1Извлечение кадров и списка временных меток презентации.

ffmpeg -i in.mp4 -vsync 0 -vf select=not(mod(n\,40)) frames-%d.jpg
       -vf select=not(mod(n\,40)) -f mkvtimestamp_v2 pts.txt

Помимо изображений вы также получаете pts.txt, который выглядит следующим образом:

# timecode format v2
0
1600
3200
4800
6400
8000
9600
11200
12800
14400
16000

Это временные метки извлеченных кадров, выраженные в миллисекундах.

#2Затем используйте приложение для пакетного переименования, которое поддерживает переименование с использованием списка для изменения имен файлов фреймов. Или скрипт оболочки.

Связанный контент