UE4蓝图实现动态获取的RTMP媒体流在静态网格体上播放

1,659 阅读2分钟

准备工作:

  1. 播放rtmp媒体流需要插件插件:github.com/helmers-tim… 下载后解压放到 项目/Plugins 下

  2. 4.26版本:github.com/helmers-tim…

1. 创建流媒体源和纹理

  1. 内容浏览器中点击右键,新建文件夹,命名为Media
  2. 创建流媒体源:

在Media文件中点击右键,然后在 媒体(Media) 下选择 流媒体源(Stream Media Source) 并将资源命名为 MediaStream

image-20210709221443171.png

  1. 打开 MediaStream,然后输入想用的 流URL(Stream URL)

image-20210709221911441.png

  1. 在"Media"文件夹中右键单击,然后选择 媒体(Media) 下的 媒体播放器(Media Player) 资源。

image-20210709222054157.png

  1. 创建媒体播放器(Create Media Player) 窗口中,启用 视频输出媒体纹理资源(Video output Media Texture asset) ,然后单击 确定(Ok) ,这将自动创建并关联链接到此 媒体播放器 资源的媒体纹理资源以进行播放。

image-20210709222247524.png

  1. 将新的媒体播放器资源命名为 MyPlayer,它将自动应用于创建的 媒体纹理 资源。

image-20210709222453841.png

2. 将媒体源与材质关联

  1. 在媒体文件夹中,新建一个 材质(Material) ,然后命名为 MyPlayer_Material

image-20210709223038035.png

  1. 打开 MyPlayer_Material 并将其 材质域(Material Domain) 改为 用户界面(User Interface) 。这会更改结果节点,使其能够使用用户界面输出。

image-20210709223215567.png

Material Domain设置surface也可以播放

  1. 点击并将内容浏览器中的 MyPlayer_Video 拖进 MyPlayer_Material 的图表。这样会创建一个 纹理取样(Texture Sample) 节点,并将MyPlayer_Video设置为源。

image-20210709223410463.png

image-20210709223510299.png

3. 将媒体源添加给静态网格体(电视)

在场景中点击电视,在右侧的“细节”中设置Materials为第二部生成的材质。

image-20210709224205132.png

4. 播放媒体源

  1. 打开关卡蓝图,新建变量MediaSource,设置变量类型为Stream Media Source, 并且设置初始值为第一步生成的MediaStream

image-20210709225202392.png

image-20210709225043436.png

image-20210709225115296.png

  1. 新建变量MyPlayer, 设置类型为media player, 并设置默认值为上面生成的Myplayer

image-20210709225614749.png

  1. 蓝图设计, 使用字符串URL通过set stream urlmediaSource设置视频流地址,实现动态改变视频流地址,播放不同的视频。

image-20210709230213468.png

关键节点添加:

open source:

image-20210709230132099.png

SET:

image-20210709230517194.png

变量URL设置

image-20210709230854212.png