UE4 播放视频流(media streaming source)


前言

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

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


一、文件核心资产

1. 流媒体源 stream media source

在这里插入图片描述

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

https://docs.unrealengine.com/Attachments/WorkingWithMedia/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4
在这里插入图片描述
后面补充几个自己找的供测试的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)

在这里插入图片描述
媒体纹理在使用时与普通纹理贴图并没有什么大的区别。新建材料,将媒体纹理作为BaseColor输出,并将材质赋予场景中的静态网格体。与普通材质赋予并无本质差别,具体操作可参照下列图片流程:

创建材质
在这里插入图片描述
在这里插入图片描述
纹理采样并输出到BaseColor(Diffuse)通道
在这里插入图片描述
创建材质实例
在这里插入图片描述

为静态网格体(staticmesh)创建在关卡中的实例
在这里插入图片描述
赋予材质实例在这里插入图片描述

二、蓝图调用

1. 总体概览

关卡蓝图编辑:开始事件->添加媒体声音组件->添加源播放组件
在这里插入图片描述

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

在这里插入图片描述

负责声音的播放:
在这里插入图片描述

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

3. 打开源 Open Source

在这里插入图片描述
创建MidiaPlayer变量,并修改类型为MediaPlayer,在编译后赋予默认值(添加引用),即我们之前创建的MediaPlayer控件
在这里插入图片描述
在这里插入图片描述

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

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


总结

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

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UE4中,关卡接缝是指在多关卡切换时,由于关卡加载的过程中可能会出现短暂的黑屏或者过渡的不畅,导致玩家感觉到关卡之间有一道明显的分界线或接缝。这个问题的解决方法有很多种。一种常用的方法是使用LevelStreaming来实现关卡的加载和切换。LevelStreamingUE4中的一个原生功能,它可以将关卡切分成多个切片,并在合适的时机进行加载和卸载,从而实现无缝的关卡切换效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [UE4多关卡切换_详细讲解案例.doc](https://download.csdn.net/download/gaofei7439/12299406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [UE4大地图(关卡、无缝地图)](https://blog.csdn.net/weixin_33711641/article/details/92723741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [UE4关卡与无缝地图切换总结](https://blog.csdn.net/u012999985/article/details/78484511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Claude的羽毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值