Получить второй, на котором был создан эскиз - PullRequest
0 голосов
/ 24 июня 2018

Я использую следующую команду для создания миниатюр из видео каждые 5 секунд:

ffmpeg -ss 3 -i input.mp4 -vf "select=gt(scene\,0.4),scale=640:360" 
   -vsync vfr -vf fps=fps=1/5 out%02d.jpg

Созданные миниатюры отформатированы с использованием 2 цифр. Таким образом, изображения генерируются начиная с out01.jpg, out02.jpg и продолжаются до out99.jpg. Есть ли способ, которым я мог бы получить секунды в имени файла? Например, я хочу узнать, сколько секунд прошло в исходном видео, когда был создан какой-либо конкретный эскиз.

Например, он может быть в формате, похожем на:

out01_23.jpg
out02_28.jpg
out03_33.jpg

.  
.

Таким образом, здесь 23,28 и 33 представляют количество секунд, прошедших в видео. out01_33.jpg - это миниатюра, представляющая 33-ю секунду видео.

Есть ли способ получить это?

1 Ответ

0 голосов
/ 24 июня 2018

Вы можете использовать

ffmpeg -i input.mp4 -vsync 0 -vf select='gte(t,3)*not(mod(t-3,5))' -frame_pts 1 fr\out%02d.jpg

Выходные имена файлов для видео 30 кадров в секунду будут

out90.jpg
out240.jpg
out390.jpg
...

, где 90 представляет 90/30 == 3.00 секунд ввода; 240/30 == 8.00 секунд и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...