Проверка командной строки для битрейта видео на GOP

Проверка командной строки для битрейта видео на GOP

Есть ли способ использовать ffprobe или аналогичные инструменты командной строки для проверки битрейта видео на GOP?

ffprobe, похоже, выводит только общий битрейт для всего видео, но не пакетов.

ffprobe -i video.mp4 -show_entries packets

Я полагаю, это группа фотографий.

[PACKET]
codec_type=video
stream_index=0
pts=126976
pts_time=9.920000
dts=126464
dts_time=9.880000
duration=512
duration_time=0.040000
convergence_duration=N/A
convergence_duration_time=N/A
size=6229
pos=5648590
flags=__
[/PACKET]

решение1

Пакет не является группой изображений — в зависимости от контейнера пакет представляет собой всего один кадр или может содержать только часть кадра.

Вместо этого вам следует проверить, есть ли у вас пакет, содержащий ключевой кадр. Проверьте атрибут flags. Если вы получаете Kв нем , это начало GOP. Запомните DTS пакета и суммируйте атрибут, sizeпока не достигнете следующего ключевого кадра, разделив эту сумму на дельту во временных метках или, в качестве альтернативы, на сумму duration_time.

Это даст вам битрейт на GOP, включая накладные расходы на пакетирование.

Связанный контент