ffmpeg c / c ++ получить количество кадров или временную метку и fps

Я использую ffmpeg для декодирования видеофайла на C. Я изо всех сил пытаюсь получить либо счетчик текущего кадра, который я декодирую, либо временную метку кадра. Я прочитал множество сообщений, в которых показано, как рассчитать приблизительный номер кадра на основе кадров в секунду и временной метки кадра, однако я не могу получить ни одно из них.

Что мне нужно: частота кадров видеофайла, временная метка текущего кадра или номер кадра (не рассчитывается)

Что у меня есть: я могу получить время видео с помощью

pFormatCtx->duration/AV_TIME_BASE

Я считаю кадры в данный момент поскольку я обрабатываю их и получаю текущее количество кадров, это не сработает в долгосрочной перспективе. Я могу получить общее количество кадров для файла, используя

pFormatCtx->streams[currentStream->videoStream]->nb_frames

. Я читал, что это может не работать для всех потоков, хотя это работало для каждого потока, который я пробовал.

Я пробовал использовать значения time_base.num и time_base.den и packet.pts, но я не могу понять значения, которые я получаю от них, поэтому мне просто нужно лучше понять, что это за значения. являются.

Кто-нибудь знает ресурсы, которые показывают примеры того, как получить эти значения?

7
задан broschb 26 January 2012 в 06:02
поделиться