OBSのキーフレームを自動にすると画質が良くなるという説をぶちまける。

画像1

youtubeの推奨するキーフレーム間隔は2秒です。

これを自動に変えたらどうなるのかを検証します。

画像2


※動画投稿、配信時は非推奨

ということです。ほとんどの動画投稿配信サイトではキーフレーム間隔2秒が推奨されています。自動にすると何か不具合が出るかもしれません。


デレステのMVを録画してみる

画像3

設定:CBR 15000Kbps キーフレーム間隔0(自動)Quality high 

Look-ahead off 最大Bフレーム230fps

以上の設定で録画、MVの長さが2分22秒900。

この時のキーフレームのタイミングは、

画像12

という結果でした。

なんとなく見て分かると思いますが、キーフレームが一定に打たれています。8.333秒間隔、25秒でちょうどになるようになっています。


キーフレーム間隔を自動にすると『250フレーム』ごとにキーフレームが打たれる。

250フレームごとなので、60fpsの場合は先ほど書いた数の倍、キーフレームが打たれます。

画像13

1分まで書き出してみましたが、等間隔でキーフレームが挿入されているのが分かるかと思います。

「なにが自動だ。フレーム指定するのと変わらねえじゃねえか」と思うかもしれませんがこれはLook-aheadを使用していないせいです。


Look-aheadをonに変えると劇的に変わる

今のはLook-aheadがオフの状態でした。今度はオンで録画します。

結果(30fpsの場合)↓

画像14

とりあえず1分までのキーフレームを書き出してみましたが、Look-aheadオフ時と全く違っているのが分かるかと思います。

等間隔ではなく、0.5秒くらいでキーフレームが打たれているときもあり、オフのときの倍以上挿入されている。

検証していて気付いたことですが、このキーフレームのタイミングには、とある特徴があります。


Look-aheadをオンにすると、シーンチェンジのタイミングでキーフレームが挿入されるようになる

キーフレーム直前フレーム↓

画像5

キーフレーム↓

画像4

適当にキーフレームを挿入しているわけではなく、その場面がキーフレームを打つのにふさわしいかを自動的に判断しているようです。

キーフレーム直前のコマ↓

画像7

キーフレーム↓

画像6

↑一時停止してコマ送りにしながら確認しました。

60fpsの場合は更に精度が上がる

画像15

Look-aheadをオンにしている場合、30fpsと60fpsとでキーフレーム数が倍に変わるというわけではありません

違うのはタイミングです。より判定がシビアになります。同じタイミングでキーフレームが入ったとしても、60fpsの方がより早くキーが打たれます。

↓キーフレーム直前フレーム01:04.996

画像16

↓キーフレーム、60fpsの場合01:05.017、30fpsの場合01:05:167

画像11

↑同じタイミングでのキーフレームですが、60fpsの方が早く、場面が切り替わってすぐにキーフレームを挿入しています。

Look-aheadオフの場合

キーフレーム直前コマ↓

画像8

キーフレーム↓

画像9

↑機械的にキーフレームが打たれているため、シーンチェンジなどは全く考慮されてません。


静画の場合には差はない

画像10

画像を1分間録画した場合(30fps)でのキーフレーム間隔は、

00:08.333 00:16 667 00:25.000 00:33.333 00:41.667 00:58.333

となり、これはLook-aheadオンオフ共に同じ結果でした。


キーフレーム間隔を10秒に設定するとどうなるか?

画像17

今まではキーフレーム間隔を自動に設定していました。

今度はこれを10秒に変更し、Look-aheadのオンオフを切り替えます。

録画するのは先ほどと同じMVです。

Look-aheadオフの場合↓

画像18

見事なまでの10秒間隔です。

画像19

画像20

↑シーンチェンジは考慮されていません。


Look-aheadオンの場合↓

画像21

↑1分まで書き出してみました。これだけでも結果が全く異なるのが分かるかと思います。

Look-aheadをオンにした場合、1度もキーフレーム間隔が10秒になっていなません。

画像22

画像23

↑シーンチェンジのタイミングでキーフレームが挿入されています。

どうやらLook-aheadの基準はシーンチェンジ>秒数になるようです。


静画の場合はまた事情が異なる

画像24

↑画像を1分間録画。設定は先ほどのMVの時と同じ。Look-ahead切り替えのみ。

結果は同じです。どちらも

00:10.000 00:20.000 00:30.000 00:40.000 

になりました。


Look-aheadの実用性

今までの検証から、Look-aheadは設定した秒数よりシーンチェンジを優先するということが分かりました。そして同時に、Look-aheadは設定した秒数を超えることがない、ということも判明しました。

このことにより、動画投稿での有用性も見えてきます。


キーフレーム間隔を2秒にするとどうなるか?

画像25


youtubeにおける動画投稿時の推奨キーフレーム間隔2秒、これに設定して検証してみます。

画像26

Look-ahead オフの場合↓

画像32

見事なまでの2秒間隔です。MV2分20秒間ずっと同じ間隔です。

Look-aheadオンの場合↓

画像32

見ての通り、違いがあるのが分かると思いますが、その中でも重要なのは、2秒を超えるものがないということです。

Look-aheadは設定したキーフレームを下回ることがあっても、超えることがない。ということが今回はっきりしました。


Look-aheadは固定キーフレームを改善させる

Look-aheadをオン↓

キーフレーム間隔2秒の場合、結果は混在します。

画像30


画像30

↑どちらもキーフレーム間隔が2秒だったときのものです。

画像31

画像32

↑こちらがキーフレームが2秒を下回ったときのものです。

1分間での総キーフレーム数が40

2秒間隔で打たれたキーフレームが19

Look-aheadの判断で挿入されているキーフレームが21

とほぼ半々となりました。

最高の結果とは言えませんが、シーンチェンジを一切考慮していなかった状況よりは、改善されたと言えるのではないでしょうか。


最後に言いたいことまとめ

・動きの激しい場面では、キーフレーム数が多い方が高画質。

・大きく絵柄が変わるタイミングでたくさんのビットレートが必要になる。

・シーンチェンジのタイミングでキーフレームが来ると映像が乱れにくい。

・固定キーフレームは動きの多い場面では効果的ではない。

・自動キーフレームはLook-aheadと組み合わせることで驚異的な能力を発揮する。

・Look-aheadは自動キーフレーム固定キーフレーム問わず、オンにすると機能する。

・自動キーフレームは、固定キーフレームが推奨されている配信投稿では使用できない。


Look-aheadが非常に優秀

今回の検証から考えて、Look-aheadをオフにした方がいい状況は存在しないと思います。

秒数で制御できるので動画投稿、配信でも使用できます。そしてそれは固定キーフレームよりもよい結果をもたらすはずです。