前回の記事では、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
プレイヤーの準備と再生
次にプレイヤーを準備していきましょう。
- プレイヤーの取得
先ほどのリンクよりWebプレイヤーをダウンロードします。 - WebAssemblyファイルの配置
プレイヤーの取得後、「bin」ディレクトリに、WebAssembly化されたVVCデコーダー(前述の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エンコード-MP4パッケージング-VVC MP4の再生の流れを一通り試すことが出来ました。皆さんもお手持ちのリファレンス動画をVVCエンコードしてみて、VVCの能力を体験してみて下さい。
また、記事ではMP4を例にVVCを試していきましたが、MP4ではなくても構わないという方は、VVCEasyにVLCのプラグインが含まれていますので、それをVLCのplugins/codecsとplugins/demuxに配置すれば、MP4化前のVVCファイルをVLCで再生することが出来ます。