Можете ли вы найти ключевой кадр (I-frame) в видео h264 без декодирования? то есть это в пакете? - PullRequest
3 голосов
/ 18 января 2012

Мне нужно знать, смогу ли я найти I-кадр без необходимости его предварительного декодирования. Я бы хотел, чтобы в AVPacket был какой-то флаг, но я не вижу, чтобы он был.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Вы, конечно, можете найти местоположение I кадра, посмотрев соответствующий код заголовка.Если вы анализируете последовательность, вы можете найти ее по начальному коду.

Поток битов H.264 разбит на секции, называемые блоками NAL.Эти устройства имеют 24-битный код 0x000001, предшествующий им для синхронизации.После этого будет уникальный стартовый код, который соответствует началу изображения и типу изображения, на основе которого вы можете решить, какой это кадр.

0 голосов
/ 16 ноября 2015

Да, вы можете получить ключевой кадр из AVPacket, в этой структуре есть члены 'flags'.Вы можете получить значение с помощью pkt.flags, для Key-frame это значение будет равно 1, 0 в противном случае.

...