Я пытаюсь написать программу на c ++, которая бы считывала ключевые кадры из видеофайла с помощью 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 есть простое логическое значение. True, если это ключевой кадр