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

パケットは画像のグループではありません。コンテナに応じて、パケットは 1 つのフレームのみ、またはフレームの一部のみを含むこともあります。

代わりに、キーフレームを含むパケットがあるかどうかを確認する必要があります。flags属性を確認します。 が含まれている場合K、これが GOP の開始です。 パケット DTS を覚えておき、次のキーフレームに到達するまで属性を合計しsize、その合計をタイムスタンプのデルタで割るか、 の合計で割りますduration_time

これにより、パケット化のオーバーヘッドを含む GOP あたりのビットレートがわかります。

関連情報