Version: 2021.3
言語: 日本語
ビデオソース
ビデオファイルについて

ビデオファイルの互換性

Unity には多くの形式のビデオファイルをインポートできます。Unity はインポートしたビデオファイルを ビデオクリップ アセットとして保存します。

Unity でビデオファイルをプレビューするためには、そのファイルが Unity エディターを実行するプラットフォームと互換性がある必要があります。また、ファイルはターゲットとなるビルドプラットフォームと互換性がある必要があります。Unity には、ファイルを一般的にサポートされている形式にトランスコードするオプションが用意されていますが、自身で互換性を管理することもできます。詳しくは、後述の ターゲットプラットフォームとの互換性 を参照してください。

エディタープラットフォームとの互換性

ビデオソースファイルは、エディタープラットフォームがサポートする形式を使用する必要があります。各プラットフォームは、異なるビデオファイル形式をサポートします。

拡張子 Windows macOS Linux
.asf
.avi
.dv
.m4v
.mov
.mp4
.mpg
.mpeg
.ogv
.vp8
.webm
.wmv

ビデオファイルトラックのエンコードには、対応するコーデックを使用する必要があります。各プラットフォームは、そのプラットフォームのバージョンごとに変更される可能性がある特定のコーデックをサポートします。

サポートされていないコーデックを使用するビデオファイルからは、エディターでエラーメッセージが表示されます。この場合、互換性のあるコーデックに変換しないと使用できません。

H.264 は、ほとんどのプラットフォームでサポートされている最適なビデオコーデックです。クロスプラットフォームの互換性が最も高いのですが、Linux エディターはこのコーデックをサポートしていません。

Linux の場合、最適なエンコーディングは、以下のコーデックを使用した .webm コンテナです。

  • ビデオトラックの場合、VP8
  • オーディオの場合、Vorbis

コーデックのサポートについては、エディターのプラットフォームの公式ドキュメントを参照してください。Windows と macOS のコーデックの互換性については、以下のリンクを参照してください。

ビデオクリップインポーター

Video Clip Importer (ビデオクリップインポーター) は、 Unity にインポートしたビデオファイルをトランスコードできます。これは、ビデオがエディタープラットフォームがサポートするコーデックを使用しているが、ファイルとターゲットプラットフォーム間に互換性がない場合に便利です。

サポートされていないビデオファイルをエディターで使用する

ターゲットプラットフォームと互換性があるが、エディタープラットフォームと互換性のないビデオファイルを使用するには、それらを ストリーミングアセット として設定します。例えば、エディターが VP8 しかサポートしていない場合でも、Android ビルドに VP9 コーデックを使用したいなどの場合に役立ちます。

ビデオファイルをストリーミングアセットとして設定するには、それらをプロジェクトの StreamingAssets フォルダーに保存します。Video Player コンポーネントがストリーミングアセットを指すようにするには、URL プロパティを使用します。

また、Application.streamingAssetsPath を使って、スクリプト経由でストリーミングアセットへのプラットフォーム特定のパスにアクセスすることもできます。これらのパスをエディターでプレビューすることはできません。

エディターと互換性のあるバージョンのプレースホルダーを用意したいが、ターゲットプラットフォームには別のバージョンを使用したい場合、両方のバージョンをプロジェクトに加え、エディターと互換性のあるバージョンをプレースホルダーとして使用し、ランタイムにどちらのバージョンを使用するか決定することができます。

以下の例は、異なるプラットフォームで異なるビデオ URL を使用する方法を示しています。詳細については、プラットフォーム依存のコンパイル を参照してください。

void SetupMovieFile(VideoPlayer vp)
{
# if UNITY_EDITOR || UNITY_LINUX
vp.url = pathToMyVp8File;
# elif UNITY_ANDROID
vp.url = pathToMyVp9File;
# elif UNITY_STANDALONE_WIN
vp.url = pathToMyWmvFile;
# else
vp.url = pathToMyMp4File;
# endif
}

ターゲットプラットフォームとの互換性

Video Player コンポーネントは、エディタープラットフォームのネイティブのオーディオおよびビデオデコーディングライブラリを使用して、エディターでビデオファイルを再生します。また、ファイルがターゲットプラットフォームの要件を満たしていることを確認する必要があります。

エンコードに関する推奨事項

  • ハードウェアアクセラレーションにネイティブでサポートされている最高のビデオコーデックは H.264 です。

  • VP8 は、クロスプラットフォームサポートを優先する場合に適しています。幅広くサポートされており、包括的な機能セットを備えていますが、H.264 などのハードウェアアクセラレーションコーデックよりも多くのリソースを消費します。

  • H.265 は、H.265 をサポートするデバイスで使用できます。詳細は、後述の H.265互換性 を参照してください。

  • Android はネイティブライブラリを使用して VP8 をサポートします。そのため、一部の Android デバイスでは VP8 もハードウェア支援される場合があります。

  • Unity エディターでは .ogv 形式をサポートしていますが、他のプラットフォームではあまりサポートされていません。ターゲットプラットフォームに応じて、.ogv ファイルを .mp4 (H.264) または .webm (VP8) にトランスコードします。

キーエンコード値

以下の表は、エンコードパラメーターで確認するキー値の一覧です。

パラメーター 説明
Video Codec H.264H.265VP8
Resolution ディスプレイの解像度。例: 1280×720
Profile プロファイルは一揃いの機能と制約で、多くの場合、Baseline や Main などのベンダーによって指定されます。H.264/H.265 に適用されます。詳しくは、H.264 または H.265 を参照してください。
Profile H.264/H.265 に適用されます。あるプロファイルの中では、ベースライン3.1のように、レベルによって性能要件が指定されます。
Audio Codec AAC (H.264/H.265 を使用する mp4 ビデオ向け)、または Vorbis (VP8 を使用する webm ビデオ向け)。
オーディオチャンネル プラットフォームに依存します。プラットフォームの開発者ガイドを参照してください。例えば、Androidの場合は、Supported media formats を参照してください。

VideoClips のトランスコード

Video Clip Importer には、VideoClip アセットを以下のいずれかのビデオコーデックにトランスコードするオプションがあります。

トランスコードされた VideoClips は適切なオーディオコーデックを自動的に使用します。

  • H.264 または H.265 を使用してエンコードされた AAC ビデオ
  • VP8 を使用してエンコードされたビデオの Vorbis
注意
Video Clip Importer は基本的なトランスコードオプションのみを提供します。ソースファイルのエンコード方法によっては、インポーターオプションを使用してトランスコードしたクリップから最適なパフォーマンスが得られない場合があります。その場合は、外部のトランスコードプログラムを使用すると、より良い結果が得られる場合があります。

外部プログラムを使用した VideoClip のエンコード

ターゲットシステムが確かにサポートしているビデオを使用する場合は、ビデオクリップインポーター のトランスコーディングオプションを無効にしておくことができます。無効にすると、Unity はファイルを変更しません。このようにすると、外部プログラムを使用してエンコードを管理できます。それによって、より細かいコントロールが可能 です。

互換性に関するノート

このセクションでは、ビデオの互換性に関する有用な情報と、外部リソースへのリンクを提供します。

メディアサポートに関するベンダーの推奨事項

コーデックのサポートについては、ベンダーの推奨事項に従うことが重要です。古いモバイルプラットフォームで、コーデックの選択が制限されます。複数のデバイスで実行するゲームに加える予定のビデオに対しては注意深く検査し、変換/再エンコードする必要があるかもしれません。

H.265 互換性

以下の表は、H.265 コーデックのプラットフォーム固有の要件と情報を示しています。

Platform 要件 エンコード/デコード ノート
macOS SDK 10.13 以降 ハードウェアエンコード: 第 6 世代インテル Core プロセッサー

ソフトウェアエンコード: すべての Mac

ハードウェアエンコード: 第 6 世代インテル Core プロセッサー

ソフトウェアエンコード: すべての Macs
Windows Windows 10 + HEVC 拡張 エンコーダー

デコーダー
HEVC 拡張子 (ハードウェアのみ)

HEVC 拡張子 (ハードウェア + ソフトウェアサポート)
iOS SDK 11.0 以降 ハードウェアデコード: A9 チップ

ソフトウェアのデコード: すべての iOS デバイス
tvOS SDK 11.0 以降
UWP Windows 10 以降 あるデバイスのリストに H.265 に対応していると記載されていても、それがデバイスファミリー内のすべてのデバイスに適用されるとは限りません。
Android 5.0+

  • 2019–05–07 修正されたページ

  • 5.6 の新機能

ビデオソース
ビデオファイルについて