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

239
secondplace

Есть ли способ использовать 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] 
0

1 ответ на вопрос

1
slhck

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

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

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