キーフレーム
Iフレーム (Intra-coded frame, 他のフレームに依存せずにデコード可能な、完全な画像情報を持つフレーム) のことを指しているっぽい
これ以外のフレームは他のフレームに依存する
キーフレーム間隔2秒=GOPサイズ(Group of Pictures size)が2秒分
キーフレーム間隔が小さいと
動画の分割が楽になる
特にライブ配信だと、 (一般的な HLS の場合は) 動画を2秒毎とか5秒毎とかにリアルタイムで分けてサーバーに保存して、それをクライアントが読み取るため、キーフレーム間隔をそれに合わせるよう求められる場合が多い
キーフレーム間隔に合わせて分割する場合、再エンコードが不要 (多分)
シークにかかる時間やI/Oが減る
キーフレーム間隔が2秒なら周辺の2秒だけ読み込めばよい (その中にIフレームがある) が、10秒なら周辺の10秒を読み込む必要がある
画質は (ほぼ) そのままでビットレートが増える
一般的に他のフレームからの差分データのみ格納することでファイルサイズが減るが、Iフレームについてはそれができない
Iフレームが増えるほど画質に対して必要なファイルサイズ/ビットレートが増える
-g 300 なら、300フレームごとにIフレームを挿入 (x264系の場合)
より汎用的な指定方法