最近在做一个项目,需要在UE5中实时获取播放摄像头流,研究了一下,最后选用了ue中接入第三方 VLC播放器,UE中本身也有内置播放器,他内置的是wmfMedia ,只能在widows平台下使用,而且支持的实时协议流也不是很丰富,比如.m3u8格式就不支持。废话少说,开干~~~~~。
一. VLC播放器下载集成 :
1. VLC 下载:(https://github.com/jeirix/UnrealEngine5VLC)
c52455645b15cd8d4a59182616f0525e.png
2. Download.zip 下载解压 放入ue项目Plugins文件夹中,如果项目中没有Plugins文件夹,可以自己创建 创建目录与你项目的XXXXX.uproject为同一个目录如图:
607eb7d369303c3369e57e7dc8c67707.png
607eb7d369303c3369e57e7dc8c67707.png
3.重启项目:如果出现插件有问题啥的问题,这里我出现过也许是版本不匹配,我只去VLC官网下载最新版VLC播放器:
bcabb7594b6d9f9aafea6e38e120d1d2.png
下载完后安装 在安装目录中到找了plugins文件夹
52f9f22205f61aa97f95e888391181b6.png
复制plugins文件夹到UE工程plugins里面替换vlc目录里面的plugins如下图:
0abbb99fb89aed250259072a92304f93.png
重启UE工程。
bcabb7594b6d9f9aafea6e38e120d1d2.png
52f9f22205f61aa97f95e888391181b6.png
0abbb99fb89aed250259072a92304f93.png
二. 播放器集成好后开创建 :
UE5要播放视频 一共需要创建4个东西 分别为 MediaPlayer,MediaPlayer_Video,StreamMediaSource ,Material,下面分别说一下都是什么关系,先说一下我们的思路 我们要在场景中或者UMG UI上播放视频 我们需要有一个 材质球,把这个材质球给UI上的Image或者场景上的什么三维平面mesh即可:
1.创建材质球:
fb47e9ea3e17b05dc0bdf2747b4f74f8.png
2.设置材MaterialDomain为 User Interface,
aeaa5e73c4b67dbfec5f5ee2545e806e.png
3.创建StreamMediaSource,并设置Platforms为VlcMedia,(这块就是用的刚才上面集成的插件VLC)
7b5c9356bc863722d8be8d1d6c3b42b5.png
e6d783fdb171ea3fb4abacd01d7bb691.png
4.创建MediaPlayer 并且在创建的时候勾选VideoOutPutMediaTextures asset, 这样创建的时候会自动创建出MediaPlayer_Video
image.png
image.png
到此需要视频播放的四大金刚都到期了( MediaPlayer,MediaPlayer_Video,StreamMediaSource ,Material)。
三.开始UMG上播放 :
下来比较简单 创建如下UI蓝图:MyImage Brush 使用刚才四大金刚中的的Materia材质即可l即可
image.png