UE4 播放视频流(media streaming source)

文章目录

  • 前言
  • 一、文件核心资产
    • 1. 流媒体源 stream media source
    • 2. 媒体播放器 Media Player
  • 二、蓝图调用
    • 1. 总体概览
    • 2. 媒体声音组件 Add media sound component
    • 3. 打开源 Open Source
  • 总结


前言

参考官方文档实现了一下播放在线视频的流程,在已有url的情况下可以顺利播放。
本文的写法不会完全复刻官方文档,旨在理解流程的基础上,实现在VR模板中通过屏幕(staticmesh而不是UMG)播放在线视频的效果。如果需要详细流程及框架的讲解,建议阅读官方文档。
官方文档链接:play a video stream
建议使用官方文档的英文版面,中文或日文版面可能存在排版上的问题。

但是如果想播放视频网站中的视频,如b站、youtube等里面的视频,可能还需要更多的工作(如爬取视频的真实url)。或者由视频源合作方直接提供url。


一、文件核心资产

1. 流媒体源 stream media source

UE4 播放视频流(media streaming source)_第1张图片

简单理解,它就是保存url的容器;我在这里应用官方给出的实例视频url。

https://docs.unrealengine.com/Attachments/WorkingWithMedia/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4
UE4 播放视频流(media streaming source)_第2张图片
后面补充几个自己找的供测试的url
https://v-cdn.zjol.com.cn/277003.mp4
https://stream7.iqilu.com/10339/upload_transcode/202002/09/20200209105011F0zPoYzHry.mp4
https://vfx.mtime.cn/Video/2019/01/15/mp4/190115161611510728_480.mp4

测试的时候直接用待测试url替换stream url即可

2. 媒体播放器 Media Player

媒体播放器,也可以理解为整体控制媒体播放的控件,在创建时,引擎会询问是否创建media texture资源,勾选;当然不勾选的话,也可以在后面自行创建media texture并添加引用即可。关键的关联到我们熟悉的东西的就是这个媒体纹理(Media Texture)

UE4 播放视频流(media streaming source)_第3张图片
媒体纹理在使用时与普通纹理贴图并没有什么大的区别。新建材料,将媒体纹理作为BaseColor输出,并将材质赋予场景中的静态网格体。与普通材质赋予并无本质差别,具体操作可参照下列图片流程:

创建材质
UE4 播放视频流(media streaming source)_第4张图片
UE4 播放视频流(media streaming source)_第5张图片
纹理采样并输出到BaseColor(Diffuse)通道
UE4 播放视频流(media streaming source)_第6张图片
创建材质实例
UE4 播放视频流(media streaming source)_第7张图片

为静态网格体(staticmesh)创建在关卡中的实例
UE4 播放视频流(media streaming source)_第8张图片
赋予材质实例UE4 播放视频流(media streaming source)_第9张图片

二、蓝图调用

1. 总体概览

关卡蓝图编辑:开始事件->添加媒体声音组件->添加源播放组件
UE4 播放视频流(media streaming source)_第10张图片

2. 媒体声音组件 Add media sound component

UE4 播放视频流(media streaming source)_第11张图片

负责声音的播放:
UE4 播放视频流(media streaming source)_第12张图片

在细节面板选择通道及赋予我们之前创建的Media Player

3. 打开源 Open Source

UE4 播放视频流(media streaming source)_第13张图片
创建MidiaPlayer变量,并修改类型为MediaPlayer,在编译后赋予默认值(添加引用),即我们之前创建的MediaPlayer控件
UE4 播放视频流(media streaming source)_第14张图片
UE4 播放视频流(media streaming source)_第15张图片

该处使用的url网络请求的数据。

此时,运行关卡就可以看到网络流媒体可以自行播放。


总结

照着官方文档做并没有太大的难度,但是真正要做对对某个视频网站进行应用内的转播还是需要额外的工作,关于视频流的底层和网络视频的原理我了解的不是很清晰,大概知道一点就是url是视频在网络上的真实存储地址,视频网站应该是在这个地址的基础上进行了一定程度的安全措施,可能需要一定的逆向工程来找到视频的真实地址才能够实现我预想的效果(留待日后探索…)。
另外一点需要摸索的是,关于媒体播放的控制,即媒体视频的暂停,倒放,快进,拖动播放等,蓝图应该也提供了对应的函数节点,同样留待日后探索补充。

你可能感兴趣的:(虚幻蓝图)