0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Unity】複数のOS上でWebGLアプリの動画を再生できるようにする

Last updated at Posted at 2023-08-26

はじめに

WebGLアプリで利用するOSやブラウザによって再生可能な動画形式が異なるため、適当な動画ファイルを再生すると以下の画像の様に動画が再生されないことがあるため、最適な動画形式とその動画形式への変換方法を調べてみました。
image.png

調査結果

Unity製WebGLアプリ上でVideoコンポーネントの動作を実機調査した結果

  • 走査方式インターレース全般
    • iOS-Safariで再生不可
  • MPEG-4
    • Windows-Chrome , Android-Chromeでは再生不可

H.264 且つ プログレッシブ方式 だと問題なさそう

参考にしたサイト

動画形式変換方法

本項ではコマンドライン上でffmpegを使ってH.264 且つ プログレッシブ方式に変換する方法で説明します。
(色々GUI付きのアプリを試しましたが良い感じのものが見つかりませんでした。)

  • インストール方法

以下を参考にインストールする。

  • 変換実行

コマンドライン上で以下のコマンドを実行する

ffmpeg -i input.mp4 -vf "yadif" -c:v libx264 -profile:v high -level 4.0 -pix_fmt yuv420p -preset medium -crf 22 -c:a aac -b:a 128k -movflags +faststart output.mp4

各オプションの説明

必要に応じて任意の設定に変更してみて下さい。

-i input.mp4: 入力ファイル名
-vf "yadif": インタレース解除
-c:v libx264: H.264ビデオコーデッ
-profile:v high: H.264の高プロファイルを使用する。
-level 4.0: H.264のレベル4.0を使用する。
-pix_fmt yuv420p: YUV 4:2:0ピクセルフォーマットを使用する。
-preset medium: エンコード速度と品質のバランスを取るためのプリセット。他のオプションにはslow、fasterなどがあります。
-crf 22: Constant Rate Factor(CRF)は、ビデオの品質を制御する値です。値が小さいほど品質が高く、ファイルサイズも大きくなります。一般的な範囲は18-28で、22は中間的な値です。
-c:a aac: AACオーディオコーデックを使用する。
-b:a 128k: オーディオビットレートを128 kbpsに設定します。
-movflags +faststart: このフラグにより、ビデオがWeb上での再生を開始する前に完全にダウンロードする必要がなくなります。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?