ルーティングセッションにおけるスケーラブルビデオコーディング(SVC)のVP9サポートについて

VP9の概要

VP9は、グーグルが開発したオープンでロイヤリティフリーのビデオコーディングフォーマットである。VP9は VP8の後継として、より高い圧縮効率を提供する。つまり つまり、VP9はVP8と同じビットレートでより高品質のビデオをエンコードすることができる。 VP9は、VP8と同じビットレートでより高品質な動画をエンコードできる。

詳細は ビデオコーデック デベロッパーガイド

スケーラブルビデオコーディング(SVC)

VP9の主な利点の1つは、以下のサポートである。 スケーラブルビデオコーディング(SVC).SVCは、1つのビデオストリームに複数の空間的・時間的品質を含めることを可能にする。これにより、SFU(選択的転送ユニット)、例えば ビデオ・メディア・ルーターこれは、SVC対応パブリッシャーにサブスクライブしている各クライアントに、異なる解像度とフレームレートを転送するためである。これは サイマルキャストVP8で一般的に行われるように、パブリッシャーが異なる解像度で複数のビデオストリームを送信する場合。

スケーラビリティ・モード

SVCのスケーラビリティ・モードは、SVCストリームにおける空間レイヤーと時間レイヤーの数とタイプ、およびそれらの間の依存関係を定義する。詳細については W3C WebRTC SVC仕様.スケーラビリティ・モードはパブリッシャーに対して定義され、Vonage Video Media Routerは利用可能なストリームの中から適切なストリームを加入者に転送します。

カメラ・ストリームを公開する場合、Vonage Video API は L1T3, L2T3そして L3T3 スケーラビリティ・モード (3つの時間レイヤーと可変数の空間レイヤー)。

空間レイヤーの数は、カメラストリームの解像度とパブリッシャーとVonage Video Media Router間の推定帯域幅に基づいて自動的に調整されます。

  • 十分な帯域幅があれば、FHDの空間レイヤーは1920x1080、960x540、480x270ピクセルである。
  • HDの場合、1280x720、640x360、320x180である。SDの場合は、720x480と360x240の2つの空間レイヤーのみである。
  • 同様に、時間レイヤーは、最高時間レイヤーが30FPS、中間時間レイヤーが15FPS、最低時間レイヤーが7.5FPSとなる。

ウェブクライアントとネイティブクライアントの両方で、画面共有ストリームを公開する場合、スケーラビリティモードは公開時に設定されるオプションによって決定されます(詳細は スケーラブルな動画ページ).これが無効の場合、ストリームはL1T1モードを使用し、単一の空間および時間レイヤーを提供します(スケーラビリティなし)。ただし、有効にすると、パブリッシャーとVonage Video Media Router間の推定帯域幅、および画面共有ストリームの解像度に基づいて、L1T1、L2T1、またはL3T1のいずれかが動的に選択されます。

サイマルキャスト(VP8で使用)とSVC(VP9で使用)の比較

サイマルキャスト(VP8で使用)では、パブリッシャーは、解像度とビットレートが異なる時間レイヤーで構成された、複数の独立したビデオストリームをメディアサーバーに送信する。複数のストリームにエンコードされたこれらのテンポラルレイヤーにより、サーバーはネットワーク状況に基づいて、各加入者に最適なストリームとレイヤーを動的に選択することができる。この方法は、リアルタイムでビデオ品質を調整することで効率性を高めるが、パブリッシャーは、さまざまな条件に対応するために、同じストリームの複数のバージョンをエンコード(CPU負荷が増加)し、送信(ネットワーク負荷が増加)する必要がある。

対照的に、VP9でサポートされているSVC(Scalable Video Coding)は、複数の空間的・時間的クオリティを単一のストリームに埋め込む。メディアサーバーは、パブリッシャーが複数のストリームを送信しなくても、適切なレイヤーを抽出して各加入者に転送できる。これにより、SVCは帯域幅効率が高くなり、サイマルキャストに比べてパブリッシャーの作業効率が向上する。

使用方法

VP9を優先ビデオコーデックとして選択し、Applications settingsの Vonageダッシュボード.

  • 中継セッションの場合、SVCは無効になる。
  • ルーティングされたセッションの場合、SVCは自動的にオンになる。

アーカイブに関する注意事項

私たちのプラットフォームは2つのアーカイブモードを提供しています:コンポーズド・アーカイブとインディビジュアル・アーカイブがあり、VP9を優先コーデックとして選択しても、これらのモードは引き続き使用できます。Composed Archivesでは、録画はH.264ビデオとAACオーディオで構成されたMP4ファイルとして保存され、1つの最終的な出力を提供します。一方、Individual Archivesでは、各参加者のメディアは、VP9 SVC (Scalable Video Coding)ビデオのWebMストリームとして個別に保存されます。

商用およびオープンソースのプレーヤーにおけるVP9 SVCのサポートは、バージョンや特定の実装によって異なる場合があります。例えば、個別アーカイブを再生する場合、すべてのプレーヤーがSVCエンコードされたストリームを正しく扱えるわけではありません。FFMPEGの場合、これらのストリームを正しくデコードできるのはlibvpx-vp9コーデックだけです。正しく再生するには、次のコマンドを使用します:

ffplay -vcodec libvpx-vp9 vp9_with_svc.webm

さらに、SVCエンコードされたWebMファイルをSVCなしの標準VP8ストリームに変換する必要がある場合(より広い互換性のために)、次のFFMPEGコマンドを使用してビデオをトランスコードすることができます:

ffmpeg -c:v libvpx-vp9 -i vp9_with_svc.webm -c:v libvpx vp8.webm

このトランスコーディングによってSVCレイヤーが取り除かれ、VP9やSVCを完全にサポートしていないプレーヤーでもビデオを再生できるようになる。

さらに、VP9コーデックを維持したままSVCレイヤーを取り除きたい場合は、次のようにすることができる:

ffmpeg -c:v libvpx-vp9 -i vp9_with_svc.webm vp9_without_svc.webm

よくある質問

VP9ブラウザの互換性はどうなっていますか?

2024年現在、VP9はすべての主要ブラウザで完全にサポートされている。これにはGoogle Chrome、Firefox、Microsoft Edge、Samsung Internet、Opera、WebView Androidが含まれ、これらは2016年頃からVP9との完全な互換性を提供している。アップルのSafari 15+とiOS 15+のWebViewはVP9をサポートしている。

VP9をサポートしているデバイスは?

2025年現在、最新のデバイスのほとんどが、WebRTCサービスのVP9を完全にサポートしています。これには、Google Chrome、Firefox、Microsoft Edge、Opera、Samsung Internet、WebView Android、iOSのSafariとWebView(バージョン15以降)といった主要ブラウザの最新バージョンを実行しているデスクトップ、ラップトップ、モバイルデバイスが含まれる。これらのブラウザーはハードウェアを通じてビデオ・コーディングを行うことができるが、エンコードとデコードのハードウェア・サポートはそれほどユビキタスではない。例えば、ハードウェアがVP9のエンコードとデコードが可能であっても、私たちのネイティブSDKはVP9のソフトウェアビデオコーディングを使用します。

一方、ハードウェアとソフトウェアによるSVCのサポートは、それほどユビキタスではない。

注: VP9はFirefoxでサポートされているが、SVCはサポートされていない。

どの機器が推奨されていますか?

VP9はVP8よりも動画圧縮が向上しているが、その代償としてCPU負荷が高くなっている。一流ブランド(例:アップルiPhone、グーグルPixel、サムングGalaxyなど)の最新デバイスモデルは、良好なパフォーマンスが期待できる。

同様のCPU制約を持つもう一つの機能は、Vonage Media Processor APIである。これらの要件を満たすデバイスは、VP9をうまく処理することが期待できる。

プラットフォーム別推奨デバイス

クライアントSDKのバージョンを教えてください。

で示されていること。 コーデックのページ が適用されます。ただし、Early Accessフェーズで開発された改良を含む完全なVP9およびSVCサポートは、リリースバージョン2.29から利用可能です。アップグレードできない場合、基本的なVP9およびSVCのサポートは、WebおよびNative Client SDKバージョン2.27から開始されます。

ブラウザ/SDK/デバイスがVP9をサポートしていない場合はどうなるのか?

パブリッシャーであれば、VP8にフォールバックする。サブスクライバーであれば、ビデオをサブスクライブすることはできず、オーディオのみを受信する。

ブラウザ/SDK/デバイスがVP9をサポートしているが、SVCをサポートしていない場合はどうなるのか?

パブリッシャーとサブスクライバーの両方に対して、VP9がネゴシエートされるが、スケーラビリティサポートはない。エンドポイントは透過的に、SVCなしのVP9を使用する。

セッションのコーデックをモニターするにはどうすればよいですか?

他のコーデックと同様に、ビデオ・インスペクタ・ツールでは、コーデック、解像度、フレームレートが品質評価モジュールに表示されます。プロットされた線上の任意のポイントにマウスオーバーするだけで、使用されているコーデックが表示されます。

エンドポイントが使用しているコーデックを知るには?

SDKは、以下を取得するためのメソッドを提供する。 RTCStatsReport このオブジェクトには、使用されているオーディオ・コーデックとビデオ・コーデックが含まれます。コードサンプルは 加入者リファレンス・マニュアル または 出版社リファレンス・マニュアル JSのために。

Linuxについては、以下の追加情報をご覧ください。 これ.