Поскольку 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Затем используйте приложение для пакетного переименования, которое поддерживает переименование с использованием списка для изменения имен файлов фреймов. Или скрипт оболочки.