---
title: とっとるびー第51回発表資料(UnrealEngineの動画再生事情)
tags: 
author: [堀田 波星夫](https://www.docswell.com/user/mechamogera)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJ8NGNQ5ED.jpg?width=480
description: とっとるびー第51回で発表したUnrealEngineの動画再生事情の資料です
published: June 08, 24
canonical: https://www.docswell.com/s/mechamogera/Z8G7DL-2024-06-08-154909
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJ8NGNQ5ED.jpg)

UnrealEngineの動画再生事情
@mechamogera


# Page. 2

![Page Image](https://bcdn.docswell.com/page/LJLPGPX3ER.jpg)

自己紹介
• mechamogera
• 主にQiitaで活動：https://qiita.com/mechamogera
• 第２種電気工事士の筆記試験合格、実技試験受験予定
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/47M4Q4LMEW.jpg)

今日お話しする内容
• 動画再生をすることになった背景
• UnrealEngineと動画再生フレームワーク
• 動画再生フレームワーク利用で直面した問題
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/P7RW8WKLE9.jpg)

最近の仕事
• UnrealEngineを使ったVRコミュニケーションサービス作成
• 3Dデータ読込などマシンパワーが必要なためPC VRを利用
• Windows環境で動作
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/PJXP8P56EX.jpg)

アプリ内で動画プレイヤー提供をしたい
• アプリ内でローカルにある動画ファイルをプレイヤーで再生
できるようにしたい
• プロモーション動画を複数人で閲覧したい
• =&gt; UnrealEngine(当時5.2)で実装
•
実際に実装してみるとサイズを変更できるのもあって迫
力ある
•
複数人で見ていると映画館みたい
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/3JKDKD6G7D.jpg)

UnrealEngine
• 3D制作プラットフォーム
• C++で作成
• UE5.4から年間100万米ドル以上の収益がある会社でノンゲーム
が利用が有料化、$1,850/年/人
o 個人的所感
▪ Unityで炎上した値上げよりはスマート
▪ 企業内でお試し利用がしづらくなった
（とはいえUnity使ってもお金はかかる）
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LE3RZR6575.jpg)

UnrealEngineの動画再生フレームワーク
• MediaFramework
• UnrealEngineで動画を再生する仕組み
• 動画再生用のリソース
o MediaSource：ファイルやWeb上の動画を指定
o MediaPlaylist：プレイリスト
o MediaSound：動画再生時のオーディオ再生用
o MediaTexture：動画を反映するテクスチャ
o MediaPlayer：動画プレイヤー
• 各プラットフォームのメディア(WindowsMediaFoundation、
AndroidMedia、、、)をラップ
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/8EDYRYVYEG.jpg)

他の動画再生方法
• MarketPlace
o あまり良いプレイヤーを見つけられなかった
• その他
o UEでOpenCVは扱えるがOpenCVで音声再生を同期するのが未サポート
o 有料のソリューションはいくつかありそう
• =&gt; MediaFrameworkを利用
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/V7P6W6V2J8.jpg)

MediaFrameworkのマルチプレイでの同期
• 複数人の同期再生は未サポート
• UnrealEngineの同期の仕組みでは大容量データは未サポート
o 既存の仕組みを利用して動画ファイルをAWS S3経由で共有
o 動画が小さめなのと工数の関係でストリーム配信はしない
o UnrealEngineのレプリケーションの仕組みで再生状態や再生位置などを
同期
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/2JV383ZXEQ.jpg)

MediaFramework利用で起きた問題
• シークバーが正しく動作しない
• 動画再生用のリソースを動的に生成できない
• 再生できる動画が限られている
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/5EG3534R7L.jpg)

シークバーが正しく動作しない
• シークバーを操作するとしばらく画面が停止
• UDN(UnrealEngineDeveloperNetwork)に聞いてみた
o デフォルトでプレイヤーで使われているWMF(Windows Media
Foundation)Mediaの問題
o WMFMediaはDeperecated
o ElectraPlayer(UnrealEngine用のマルチプラットフォーム対応のメディア
プレイヤー)利用が推奨
• =&gt; ElectraPlayerを利用すると問題なくシーク可能
o 基本的にはElectraPlayer Pluginを有効化するだけ
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JQ5Z5GY7P.jpg)

動画再生用のリソースを動的に生成できない
• 動画再生用のリソース(MediaTexsture)を動的に生成すると動画
が再生されない
• コンテンツブラウザであらかじめアセットとして生成している
と再生可能
• =&gt; 初回はMediaTextureを10個用意して対応
• =&gt; フォーラムにあった情報により、MediaTexture生成後に
UpdateResourceメソッド(Blueprint非公開)して再生可能に
o UnrealEngineでMediaFrameworkのリソースを動的に作成して動画を再生
する #UnrealEngine - Qiita
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/K749395ZE1.jpg)

ElectraPlayerで再生できる動画形式が限られている
実装時はUE5.2でmp4のみ対応
• UE5.2
o メディア形式：mp4
o ビデオコーデック：H.264/AVC
o オーディオコーデック：AAC
• UE5.3
o メディア形式：mp4、mov、mkv、mka、webm
o ビデオコーデック：H.264、H.265、VP8、VP9、Apple ProRes、Avid DNxHD、
HAP
o オーディオコーデック：AAC、Opus
o 公式ドキュメントなし、、、（なぜ）
https://blog.alche.studio/posts/uCwkxl0f3fh1SCya73DtK/
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/LJ1K1KWD7G.jpg)

ElectraPlayerで再生できる動画形式が限られている
• Windows11にも搭載されているMicrosoft Clipchampで書き出した
動画が再生可能
• ひとまず動画変換で対応
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJWD8D6872.jpg)

ElectraPlayerでiPhone/iPadの動画が再生できない
• UE5.3でmov対応しているが、IPhone/iPadで撮影した動画が再生
不可
• コーデックはそのままでメディア形式をmkvに変換すると再生
できた
o =&gt; メディア形式の問題の感じ
• UDNでサポートの要望は出したがUE5.4.1時点では未対応っぽい
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EZG8GY9J3.jpg)

まとめ
• UnrealEngineのMediaFrameworkを使って動画再生
• 実装で直面した問題
o シークバーが正しく動作しない
▪ =&gt; ElectraPlayerを利用
o 動画再生用のリソースを動的に生成できない
▪ =&gt; 特定の関数呼び出しをすることで生成可能に
o 再生できる動画形式が限られている
▪ =&gt; 動画変換で対応
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/Y76YPYDDEV.jpg)

所感
• 世の中のゲームでばんばん動画再生しているのでUnrealEngine
でさっくりいけるかと思ったらいけなかった
• 基本ゲームだと用意された動画を再生できればいいのでほとん
ど問題にならなかった？
• ノンゲーム環境に力を入れてきているのでElectraPlayer用意して
いる？
17


