OBSのキーフレームを自動にすると画質が良くなるという説をぶちまける。
youtubeの推奨するキーフレーム間隔は2秒です。
これを自動に変えたらどうなるのかを検証します。
※動画投稿、配信時は非推奨
ということです。ほとんどの動画投稿配信サイトではキーフレーム間隔2秒が推奨されています。自動にすると何か不具合が出るかもしれません。
デレステのMVを録画してみる
設定:CBR 15000Kbps キーフレーム間隔0(自動)Quality high
Look-ahead off 最大Bフレーム230fps
以上の設定で録画、MVの長さが2分22秒900。
この時のキーフレームのタイミングは、
という結果でした。
なんとなく見て分かると思いますが、キーフレームが一定に打たれています。8.333秒間隔、25秒でちょうどになるようになっています。
キーフレーム間隔を自動にすると『250フレーム』ごとにキーフレームが打たれる。
250フレームごとなので、60fpsの場合は先ほど書いた数の倍、キーフレームが打たれます。
1分まで書き出してみましたが、等間隔でキーフレームが挿入されているのが分かるかと思います。
「なにが自動だ。フレーム指定するのと変わらねえじゃねえか」と思うかもしれませんがこれはLook-aheadを使用していないせいです。
Look-aheadをonに変えると劇的に変わる
今のはLook-aheadがオフの状態でした。今度はオンで録画します。
結果(30fpsの場合)↓
とりあえず1分までのキーフレームを書き出してみましたが、Look-aheadオフ時と全く違っているのが分かるかと思います。
等間隔ではなく、0.5秒くらいでキーフレームが打たれているときもあり、オフのときの倍以上挿入されている。
検証していて気付いたことですが、このキーフレームのタイミングには、とある特徴があります。
Look-aheadをオンにすると、シーンチェンジのタイミングでキーフレームが挿入されるようになる
キーフレーム直前フレーム↓
キーフレーム↓
適当にキーフレームを挿入しているわけではなく、その場面がキーフレームを打つのにふさわしいかを自動的に判断しているようです。
キーフレーム直前のコマ↓
キーフレーム↓
↑一時停止してコマ送りにしながら確認しました。
60fpsの場合は更に精度が上がる
Look-aheadをオンにしている場合、30fpsと60fpsとでキーフレーム数が倍に変わるというわけではありません。
違うのはタイミングです。より判定がシビアになります。同じタイミングでキーフレームが入ったとしても、60fpsの方がより早くキーが打たれます。
↓キーフレーム直前フレーム01:04.996
↓キーフレーム、60fpsの場合01:05.017、30fpsの場合01:05:167
↑同じタイミングでのキーフレームですが、60fpsの方が早く、場面が切り替わってすぐにキーフレームを挿入しています。
Look-aheadオフの場合
キーフレーム直前コマ↓
キーフレーム↓
↑機械的にキーフレームが打たれているため、シーンチェンジなどは全く考慮されてません。
静画の場合には差はない
画像を1分間録画した場合(30fps)でのキーフレーム間隔は、
00:08.333 00:16 667 00:25.000 00:33.333 00:41.667 00:58.333
となり、これはLook-aheadオンオフ共に同じ結果でした。
キーフレーム間隔を10秒に設定するとどうなるか?
今まではキーフレーム間隔を自動に設定していました。
今度はこれを10秒に変更し、Look-aheadのオンオフを切り替えます。
録画するのは先ほどと同じMVです。
Look-aheadオフの場合↓
見事なまでの10秒間隔です。
↑シーンチェンジは考慮されていません。
Look-aheadオンの場合↓
↑1分まで書き出してみました。これだけでも結果が全く異なるのが分かるかと思います。
Look-aheadをオンにした場合、1度もキーフレーム間隔が10秒になっていなません。
↑シーンチェンジのタイミングでキーフレームが挿入されています。
どうやらLook-aheadの基準はシーンチェンジ>秒数になるようです。
静画の場合はまた事情が異なる
↑画像を1分間録画。設定は先ほどのMVの時と同じ。Look-ahead切り替えのみ。
結果は同じです。どちらも
00:10.000 00:20.000 00:30.000 00:40.000
になりました。
Look-aheadの実用性
今までの検証から、Look-aheadは設定した秒数よりシーンチェンジを優先するということが分かりました。そして同時に、Look-aheadは設定した秒数を超えることがない、ということも判明しました。
このことにより、動画投稿での有用性も見えてきます。
キーフレーム間隔を2秒にするとどうなるか?
youtubeにおける動画投稿時の推奨キーフレーム間隔2秒、これに設定して検証してみます。
Look-ahead オフの場合↓
見事なまでの2秒間隔です。MV2分20秒間ずっと同じ間隔です。
Look-aheadオンの場合↓
見ての通り、違いがあるのが分かると思いますが、その中でも重要なのは、2秒を超えるものがないということです。
Look-aheadは設定したキーフレームを下回ることがあっても、超えることがない。ということが今回はっきりしました。
Look-aheadは固定キーフレームを改善させる。
Look-aheadをオン↓
キーフレーム間隔2秒の場合、結果は混在します。
↑どちらもキーフレーム間隔が2秒だったときのものです。
↑こちらがキーフレームが2秒を下回ったときのものです。
1分間での総キーフレーム数が40
2秒間隔で打たれたキーフレームが19
Look-aheadの判断で挿入されているキーフレームが21
とほぼ半々となりました。
最高の結果とは言えませんが、シーンチェンジを一切考慮していなかった状況よりは、改善されたと言えるのではないでしょうか。
最後に言いたいことまとめ
・動きの激しい場面では、キーフレーム数が多い方が高画質。
・大きく絵柄が変わるタイミングでたくさんのビットレートが必要になる。
・シーンチェンジのタイミングでキーフレームが来ると映像が乱れにくい。
・固定キーフレームは動きの多い場面では効果的ではない。
・自動キーフレームはLook-aheadと組み合わせることで驚異的な能力を発揮する。
・Look-aheadは自動キーフレーム固定キーフレーム問わず、オンにすると機能する。
・自動キーフレームは、固定キーフレームが推奨されている配信投稿では使用できない。
Look-aheadが非常に優秀
今回の検証から考えて、Look-aheadをオフにした方がいい状況は存在しないと思います。
秒数で制御できるので動画投稿、配信でも使用できます。そしてそれは固定キーフレームよりもよい結果をもたらすはずです。