特集
ついに高画質AV1のライブ配信に対応したOBSベータを試してみた
2023年3月31日 06:12
配信用フリーソフト「OBS Studio」(以下、OBS)のバージョン29.1 Beta 1が3月29日に公開された。最新の正式版はバージョン29.0.2で、数字的にはマイナーバージョンアップだが、本バージョンでは、Fragmented MP4/MOV、ロスレスオーディオ録画の対応などさまざまな機能追加/強化がなされている。それら目玉機能の1つであるAV1コーデックでの生配信について検証を行なってみた。
なお、ベータ版は検証用に公開されたものであり、さまざまな不具合を抱えている可能性がある。それによって、配信環境が壊れたりする可能性もある。また、ベータ版は基本的に上書きインストールされる。各種新機能を自分で試す場合は、そういったリスクを承知しておく必要がある。
ロイヤリティフリーで、圧縮効率を高めたAV1
そもそもAV1とは何か? Amazon、Cisco、Google、Intel、Microsoft、Mozilla、Netflix、ARM、NVIDIA、Hulu、Facebook、Appleといった、そうそうたる企業が名を連ねるコンソーシアムによって策定された動画圧縮コーデックだ。
現在主な配信プラットフォームで利用されているコーデックはH.264。これと比べて、AV1はロイヤリティフリーで、圧縮効率がH.264など旧来の規格と比べて3割程度高いという特徴がある。
エンドユーザー視点では、ロイヤリティフリーという点については、OBSを使ってYouTubeやTwitchなどに配信するにあたり、ユーザーが料金を払う必要はないので、AV1の直接のメリットはない。エンドユーザーにとってのAV1の直接の効果は、圧縮効率が3割程度高いという点になる。圧縮効率が高いと言うことは、同じビットレートで配信を行なうと、より高画質になることを意味する。
実はYouTubeはすでに何年も前からAV1に対応している。ただそれはアップロード動画についてであって、配信については基本的にはH.264しか対応していない(HLSであればH.265、DASHであればVP9にも対応)。OBSについても、AV1でのローカル録画は最新の29.0.2でできるが、配信には非対応。Twitchの配信も対応するのはH.264のみだ。
しかし、今回のベータ版で、YouTube LiveでAV1が利用可能となった。と言っても、現時点でその恩恵にあずかれるのは一部の人となりそうだ。それは、配信でAV1が完全に利用できるのは1440pか4K解像度になるからだ。
多くの配信者、特にゲーム配信者はフルHDで配信しているだろう。この場合でもOBSでAV1配信自体はできるのだが、YouTube側でH.264に強制変換されるのだ。当然その際に画質が従来レベルに劣化する。
一応、フルHDで配信している人でも、配信と同時に(配信エンコーダを使って)ローカル録画もしている場合、録画した映像はAV1によって同じビットレートならこれまでより高画質になるし、あるいはビットレートを下げつつも同等の画質を維持することで、ファイルサイズを小さくできるメリットはある。
仮想的にフルHDでAV1のメリットを検証
今後、YouTube LiveがフルHDでもAV1に対応するかは分からないが、そうなった場合、どれくらい画質が上がるかは興味があるところ。
ValorantやApex Legendsなどに代表されるFPS系ゲームは、画面の動きが激しいため、フルHD/60fpsで6,000kbps程度という一般的な設定だと、H.264ではブロックノイズが発生して、映像が荒くなることがしばしばだ。と言うことで、YouTube LiveやTwitchがフルHD配信でAV1に対応したら、どれくらい画質が上がるのかを、仮想的に試してみた。
OBSベータでAV1配信を行なうのに必要な設定は基本的には1つで、「ファイル」→「設定」→「出力」→「配信」→「映像エンコーダ」で「AV1」を選ぶだけ。なお、AV1エンコードは重いため、GeForce 40シリーズ、Radeon RX7000シリーズ、Intel ArcシリーズのいずれかのGPUが必要で、それらハードに応じたAV1エンコーダを選ぶ。これでAV1での配信ができる。今回はGeForce RTX 4080を使っている。
「ファイル」→「設定」→「配信のサービス」で「YouTube - RTMPS」を選び、アカウント接続する点は、従来のYouTube配信と変わらない。
ただ現時点では、前述の通り、配信解像度がフルHDだとH.264に強制変換されるので、AV1のまま配信を行ないたいのであれば、「ファイル」→「設定」→「映像」の解像度を1440pか4K解像度にしておく必要がある。エンコーダ設定は基本的にフルHDと同じでいいと思うが、ビットレートは解像度に合わせて10~15Mbpsくらい(フルHDは6~8Mbps程度が推奨)にするといいだろう。
今回の検証においては、まず、背景画像の上にカメラのワイプとオーバーウォッチ2の画面を表示して、ゲームをプレイした映像をフルHD/60fps/AV1/30Mbps/最高画質設定でローカル録画した。この映像をメディアプレイヤーで再生しているところをOBSで画面キャプチャし、エンコーダとビットレートを変更して、ローカル録画していった。これは、全ての設定において同じシーンを再現させるためだ。
ちなみに、このフルHD/60fps/AV1/30Mbps/最高画質設定で動画を録画しているときのハードウェアエンコーダ(NVENC)の負荷は40%程度だった。こんな設定で配信することはないと思うが、まだ性能的には余裕はあるようだ。
利用したエンコーダはAV1とH.264、ビットレートは2,500kbpsと8,000kbpsの2種類で、計4パターンで録画した。AV1での配信ではなく、録画にしているのは、フルHDだとYouTubeがH.264に強制変換するからだ。
まず、2,500kbpsを見てみると、H.264の場合は、多くの場面で昔のゲームのドット絵かと思うくらいにブロックノイズが全体的に発生している。ここまでひどくなくても、自分の配信で画面がこのようになっているのをよく見かける人もいるだろう。
それに対して、2,500kbpsのAV1では、解像感こそ低いモノの、ブロックノイズはほとんど見受けられない。まるで違う映像になっている。
一方、8,000kbpsの場合、H.264でもブロックノイズはかなり減り、AV1とぱっと見は近いレベルの映像となっている。しかし、よく見ると全体的に粗があり、AV1の方が同じビットレードでもワンランク上の画質となっているのが分かる。
動画でも差を確かめられるよう、DaVinci Resolveを使って、これらフルHDの動画を4枚並べて4K解像度にし、AV1最高画質で録画したものをYouTubeにアップしたので、参考にしてほしい。
また、ゲームを3,440×1,440ドットでプレイし、4K解像度AV1/30MbpsにてYouTubeで配信したものも用意した。こちらは録画ではなく、リアルタイムでプレイしたものを生配信している。
なお、ここまで「YouTubeでAV1のまま配信する」といった表現をしてきたが、実はYouTubeは現時点でもAV1での配信はVP9に強制変換する。VP9はGoogleがAV1を採用する前に開発していたコーデックで、画質はAV1よりはやや劣るが、H.264よりはかなり高画質である。前述の4K動画もYouTubeによってVP9に変換されている。将来的にはVP9はAV1に置き換えられるだろう。
余談だが、今回検証用に用意したフルHD AV1 30Mbpsの動画は、ゲームの生画面と見まがうばかりの画質だった。静止画にすると細かいところで圧縮が見て取れるが、動画では細かな文字もシャープさを失っておらず、感動を覚えた。
待たれる本格普及
と言うことで、AV1は現行のH.264よりも画質が優れることが分かった。配信においては、プラットフォーム側でビットレートの上限が決められていることが多い。YouTubeでは上限が51Mbpsで実質制限がないのと同じだが、Twitchだと基本は6,000kbpsが上限。これだと、フルHD 60fpsではブロックノイズが発生しがちとなる。
おそらく、今後もしばらくはビットレート上限は変わらないと思うが、AV1を使うことで同じビットレートでも、ブロックノイズを減らし、画質を上げられる。YouTubeでフルHDでもAV1に対応すること、そしてそのほかTwitchなども早期に対応してくれることが望まれる。ちなみに、大規模な配信向けではないが、DiscordはYouTubeよりも早くAV1配信に対応している。
ただし、注意点もある。それはPremiere ProがAV1の編集に対応していない点だ。配信だけではなく、ローカル録画した動画を編集してアップロードしている人で、Premiere使いも多いと思われるが、AV1に対応していない。DaVinci Resolve Studioなら、編集もエンコードも可能だ。