edo1z blog

プログラミングなどに関するブログです

動画のフレームレートとGOP

aviutl.info

ja.wikipedia.org

m0kichiazuma416.blog.fc2.com

nyanshiba.hatenablog.com

mobilehackerz.jp

フレームレートは、1秒間に何枚の画像を表示するかです。fps(frames per second)です。1秒間に60枚だと結構さくさく動くゲームになります。1秒間に1枚だと1秒間は静止画像です。GOPは、グループオブピクチャーズです。画像のグループです。キーフレームを何枚毎に入れるかというのと同じ意味だそうです。キーフレーム以外は、キーフレームをもとに画像を生成する必要があるので、シークが非効率になります。でもキーフレームが少ないと、部分的情報で済む画像が多くなるので、動画サイズが小さくなります。シークは、キーフレーム単位でしかできないので、キーフレームから離れたPフレームや、Bフレームを表示しようとすると、非効率になります。上の参考サイト達によりますと、fps * 5 〜 fps * 10くらいが適正値になることが多いそうです。fps 30 だったら、300とか。1秒間に30枚表示するときに300枚毎にキーフレームを入れるので、時間的には10秒毎にキーフレームが入ります。参考サイトには、キーフレーム以外の画像を表示させるためには、一度直近のキーフレームに戻り、そこから差分時間を待って表示するということが書いてありましたが、10秒毎にキーフレームで、キーフレームから5秒後から再生したい場合、毎回キーフレームに移動(シーク)後、5秒間物理的に待つ必要があるんであれば、うんこなサービスだと思いますので、これは実際どうなのかは調べてみようと思いました。基本的にHLSとか、10秒毎に細切れにして、送ったりしてるので、物理的に5秒待ったりしないのであれば、確かにfps * 10とかが適正なのかなーと思いました。