2022年2月、動画配信業界に携わられている方だと一度は使ったことがあるであろうGPAC(MP4Box)のv2.0がリリースされました。リリース内容を確認してみますと、新しく『H.266/VVC(Versatile Video Coding)』(以下、単にVVC)エンコードファイルに対応したということが分かりましたので、本記事では簡単にVVCとは何かについて説明し、GPAC 2.0を使用しVVCエンコードファイルをMP4に変換してみます。

VVCとは

VVCとは、映像コーデックの一つで、2020年7月にJoint Video Experts Team (JVET)により発表されたものです。様々な権利問題を孕み、なかなか普及しないH.265/HEVCの後継として策定され、HEVCと比較し30%~40%ほどの容量削減が可能とされています。AV1やVP9とともに次世代の映像符号化として挙げられています。

VVCエンコードファイルを準備する

GPACでのMP4変換の前にVVCエンコードファイルが必要となりますが、インターネット上では試すのに適した素材が見つからないため、自前で用意します。

VVCエンコーダーを取得

こちらのリンクより、VVenCというVVCのエンコーダーを手に入れます。こちらのページではバイナリが配布されておりませんので、Wikiに記載されたビルド手順に従って自前でビルドするか、または、別の方が配布しているバイナリを手に入れてください。

エンコード元素材の準備

VVCにエンコードするための元素材は何でもよいですが、いくつか注意点がございます。

【注意事項】
  • VVenCの入力ファイルとして、YUVファイル、または、Y4Mファイルが必要となりますので、ffmpegを使用し作成してください。ただ、YUVファイルですと、バグのためか、MP4BoxでMP4化した際に映像コーデックがH.263と認識され変換できないため、今回はY4Mファイルを使用します。
  • VVCエンコードは非常に時間がかかるため、元素材の尺はなるべく短いもので試されるのが良いかと思います。

注意事項は以上となります。では、さっそくYUVファイルの作成方法から順に説明していきます。

YUVファイルを作成

以下コマンドでYUVファイルを作成します。

ffmpeg -i hoge.mp4 -strict 1 hoge.yuv

VVCにエンコード

以下コマンドで、出来上がったYUVファイルをVVCにエンコードします。

vvencapp -i hoge.y4m -o hogevvc.266

以上でVVCエンコードファイルが用意できました。次にGPACでのMP4変換についてみていきましょう。

VVCエンコードファイルをMP4に変換

VVCエンコードファイルの準備ができましたら、あとはGPACを使用してMP4に変換するだけとなります。GPAC 2.0自体は、こちらのリンクから取得ください。

以下はVVCエンコードファイルをMP4に変換するためのコマンドとなります。

MP4Box -add hogevv.266 -new hogevvc.mp4

成功すれば以下のように表示されます。

VVCエンコードファイルのMP4変換が完了

では、MP4BoxでMP4の中身を確認していきましょう。以下コマンドで中身を確認します。

mp4box -info hogevvc.mp4
コマンドを実行して表示された情報

上述の結果を確認しますと、映像コーデックがVVCとなっていることが確認できました。

さいごに

以上が、VVCエンコードファイルをGPAC 2.0でMP4に変換するまでの方法でしたが、いかがでしたでしょうか。今のところ、そこまで使用する機会はないかもしれませんが、ご参考になりましたら幸いです。次回は作成したMP4(VVC)を再生する方法について記事を書く予定です。