前回の記事では、GPAC 2.0でVVCエンコードファイルをMP4に変換するまでの方法をご紹介いたしましたが、この記事では、いよいよ そのMP4(VVC)を再生する方法について 書いていきます。

使用するもの

VVCデコーダー

実はVVCは、エンコーダーと共にデコーダーも配布されています。こちらのリンクで公開されています。しかし、このデコーダーはVVCエンコードファイルをデコードして別ファイルに出力するだけのものであるため、別途プレイヤーが必要となります。

WebAssembly

オープンソースプレイヤーで定番のVLCは まだVVCに対応しておらず、探せばo266playerなどが見つかりますが、MP4に対応していないなど簡単にはいきません。そのため、VVCデコーダーのREADME.mdにあるように、VVCデコーダーをWebAssembly化しWebブラウザ上で再生するしかないようです。VVCデコーダーのWebAssemblyを入手する方法については後述します。

JavaScriptプレイヤー

VVCデコーダーのWebAssemblyを呼び出すJavaScriptプレイヤーが必要となります。こちらについても、GPACがGitHub上に公開しています。

VVCデコーダーのWebAssembly化

まずはVVCデコーダーのWebAssemblyを入手します。WebAssemblyについては、VVCEasyに含まれておりますので そちらから取得することも可能ですが、一からビルドしたい場合の方法について ここでは説明していきます。WebAssembly化する場合は、以下2つを用意する必要があります。

  • Emscripten SDK
    こちらはビルドが必要となります。WindowsであればPythonがインストールされてあればビルド可能となります。
  • CMake
    こちらはインストーラーが公開されているため、環境に合わせたものをダウンロード後にインストールすればよいだけです。

Emscripten SDKとCMakeが揃いましたらVVCデコーダーのソースをこちらからダウンロードして下記コマンドを実行してください。

emcmake cmake -B build/wasm
cmake --build build/wasm

無事ビルドが通れば、下記3つのファイルが出来上がります。

  • vvdecapp.wasm
  • vvdecapp.worker.js
  • vvdecapp.js

プレイヤーの準備と再生

次にプレイヤーを準備していきましょう。

  1. プレイヤーの取得
    先ほどのリンクよりWebプレイヤーをダウンロードします。
  2. WebAssemblyファイルの配置
    プレイヤーの取得後、「bin」ディレクトリに、WebAssembly化されたVVCデコーダー(前述の3つのファイル)を配置します。
  3. bitstreams.jsonの書き換え
    このファイルは、Webページ上で再生する動画ファイルの情報が記載されたファイルです。ここに記載した動画がWebページ上で選択できるようになるため、前回の記事で準備したMP4(VVC)のファイル名を記述します。
"bitstreams.json"
[
  "hogevvc.mp4",
  ["dummy_file_w_title.mp4", "Title to be displayed"]
]

これで再生する準備ができましたので、実際に再生してみましょう。Pythonを使用してローカルホスト上にサーバーを立ち上げます。コマンドは以下となります。

python wasm_test-server.py

デフォルトではポート番号8000となっているかと思いますので、Webブラウザでlocalhost:8000にアクセスすると下記ページが表示されるはずです。後は右上のドロップダウンメニューから対象の動画を選択して再生するのみです。

VVC動画再生ページ

さいごに

これで前回分を含めて、VVCエンコード-MP4パッケージング-VVC MP4の再生の流れを一通り試すことが出来ました。皆さんもお手持ちのリファレンス動画をVVCエンコードしてみて、VVCの能力を体験してみて下さい。

また、記事ではMP4を例にVVCを試していきましたが、MP4ではなくても構わないという方は、VVCEasyにVLCのプラグインが含まれていますので、それをVLCのplugins/codecsとplugins/demuxに配置すれば、MP4化前のVVCファイルをVLCで再生することが出来ます。