Более быстрый способ получения количества ключевых кадров, чем "show_frames" в ffprobe?
Я делаю небольшую внутреннюю утилиту, используя ffmpg
а также ffprobe
, Работает нормально и делает то, что нужно: подсчитайте количество ключевых кадров в видеофайле плюс некоторые другие детали.
Увы, с большими видеофайлами это может быть использовано на это может занять много секунд для show_frames
чтобы вернуться - и тогда мне нужно проанализировать дамп JSON данных фреймов и сохранить текущий счетчик всех ключевых фреймов.
Есть ли более быстрый способ? Возможно, он указан в дампе данных "поток" или "формат", и я не узнаю, как он называется? Я прошел через ffmpg
а также ffprobe
документы и больше ничего не нашел.
1 ответ
Для файлов MP4 и MOV вы можете получить эту информацию, прочитав содержимое поля STSS
Вы можете использовать такой инструмент, как MP4parser, который сгенерирует файл журнала с такой записью:
/moov/trak/mdia/minf/stbl/stss @ 0x1d7218e
Box size: 0x74 version: 0x0 flags: 0x0
entry_count: 0x19
sample_number:
0x1 0x86 0x180 0x27a ....
Количество записей (в шестнадцатеричном формате) - это число, которое вы хотите.
Кроме того, atomicparsley также сообщит вам о местонахождении STSS в файле, и вы сможете затем прочитать его напрямую.