Я пытаюсь написать программу на С++, которая будет считывать ключевые кадры из видеофайла с помощью ffmpeg. Пока мне удалось получить все кадры, используя av_read_frame
, где вы последовательно читаете кадр за кадром.
Но у меня возникли некоторые проблемы с использованием av_seek_frame
, который (если я прав) должен делать трюк для ключевых кадров.
int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags);
У меня есть FormatContext
, но каковы другие правильные аргументы для последовательного получения только всех ключевых кадров?
Есть ли другая функция, которую я могу использовать вместо этого?
Спасибо
РЕДАКТИРОВАТЬ: В av_read_frame
я получаю AVPacket, который я могу использовать для получения данных кадра, но как я могу получить пакет с помощью av_seek_frame?
РЕШЕНИЕ: ОК, в AVFrame->key_frame есть простое логическое значение. Правда, если это ключевой кадр
av_seek_frame()
? - person karlphillip   schedule 11.06.2011