【Unity】VideoPlayerでの動画再生

今日は動画ファイルの形式と、動画再生についてのメモです。

 

動画ファイルについて

参考:ビデオファイルについて - Unity マニュアル

コンテナ

動画ファイルにはいろいろな形式がありますが、一般に.mp4, .mov, .webm, .aviなどの拡張子は、だいたいデータがどのコンテナ形式で格納されているかを示しています。

コーデック

動画ファイルの場合、拡張子だけではデータがどの様に圧縮されているかは分かりません。圧縮・展開を行うソフトウェアがコーデックです。

(Compression/DECompressionの略です)

ビデオコーデック

H.264/AVCは現在よく用いられている、圧縮率や画質に優れたコーデックです。

参考:Q&Aで学ぶH.264/AVC(1):H.264とは? AVCとは? | 情報通信(ICT) | スマートグリッドフォーラム

後継規格としてH.265がありますが、特許関連で問題があり、普及には至っていないようです。

他にもWebMに用いられるロイヤリティフリーのVP8,VP9や、次世代のコーデックとして期待されているAV1があります。

オーディオコーデック

音楽プレイヤーではmp3、aacなどのコーデックが主に利用されています。

これらの形式は特許で守られているため、それに代わる形式としてVorbisが開発され、ゲーム開発ではよく利用されていました。(よくOgg Vorbisと呼びますが、OggがコンテナでVorbisがコーデックです)

なおMP3のライセンスは2017年4月23日に終了しているため、現在では自由に利用することが出来ます。

Unityでは、標準の音声フォーマットとしてOgg Vorbisが採用されています。

 

ライセンスについて

基本的に圧縮アルゴリズムは特許で守られていることが多いため、利用には注意する必要があります。

例えばH.264の場合

参考1:MPEG LA、H.264の共同ライセンス体系を発表

参考2:H.264のライセンス料、無料ネット動画は恒久的に不要に - ITmedia エンタープライズ

参考3:楓 software: OS機能を利用してH.264を再生する場合のライセンスを確認する

合計12分以上のH.264動画をパッケージに含めるにはライセンスが必要そうです。また12分以下の場合にもOSの機能を呼び出して再生する分には大丈夫のようにも思えますが、確証が持てません。

MPEG LAにライセンスについて問い合わせるか、問題を避けたければコンテナはWebMでビデオにはVP8、オーディオにはMP3またはVorbisを使うのが無難だと思います。

 

Unityでの利用

Video Player コンポーネント - Unity マニュアル

描画先と音声の出力先を指定すれば、簡単に動画を再生できるコンポーネントがUnity5.6で追加されています。

具体的には次回説明いたします。