У меня есть FLV видео и хотим сбросить скажем 3s
длину видео после первого ключевого кадра PICT_TYPE_I
встречается после 00:39
. Я готов к document из ffmpeg seeking
и цитаты здесьFFmpeg свалка определенной длиной видео после того, как ищет PICT_TYPE_I ключевой кадр
ffmpeg -ss 00:23:00 -i Mononoke.Hime.mkv -frames:v 1 out1.jpg
Этот пример будет производить один кадр изображения (out1.jpg) на двадцать третьей минуте от начала фильма. Вход будет проанализирован с использованием ключевых кадров, что очень быстро. Начиная с FFmpeg 2.1, когда транскодирование с помощью ffmpeg (т. Е. Не только копирование потока), то -ss теперь также «с точностью до кадра» даже при использовании в качестве опции ввода. Предыдущее поведение (поиск только ближайшего предшествующего ключевого кадра, даже если не точно точно) можно восстановить с помощью опции -noaccurate_seek.
Так что я думаю, что если я использую эту команду (поместить -ss
до того -i
)
ffmpeg -noaccurate_seek -ss 00:39 -i input.flv -r 10 -s 720x400 -t 3.12 dump.flv
И это должно вывести видео, которое длиться 3.12s
и начать с первого keyframe
после 00:39
правильно? в конце концов, это то, что мне нужно.
Но результат dump.flv
не начинается с keyframe
, то есть PICT_TYPE_I
.
Я знаю, что я могу найти все keyframe
время начала с ffprobe
и пересчитать -ss
, ищут время, чтобы достигнуть этого. Но есть ли лучший способ?
У вас есть аудио? – Mulvya
нет, аудио не касается – armnotstrong