第五十五章 Unity 视频播放

news2024/11/13 16:18:10

使用视频播放器组件(Video Player)可将视频文件附加到游戏对象,然后在运行时在游戏对象的纹理上播放。首先,我们需要了解视频文件。视频文件的典型文件扩展名包括 .mp4、.mov、.webm 和 .wmv。可将许多不同的视频文件格式导入 Unity 中。Unity 将导入的视频文件存储为视频剪辑(VideoClip)资源。为了让 Unity 正确预览视频文件,这些文件必须与Unity 编辑器平台(例如Windows)兼容,还必须与项目发布平台(例如Android)兼容。视频文件更准确的描述为“容器”。这是因为它们不仅可包含视频本身,还可包含其他轨道,包括音频、字幕和其他视频素材。常见的视频编解码格式为 H.264,而常见的音频编解码格式为 AAC。文件扩展名(如 .mp4、.mov、.webm 或 .avi)表示视频文件中的数据是使用某种容器格式排列的。视频文件需要解码还能获取视频内容,解码分为硬件和软件解码。软件解码就是使用代码算法(CPU)来解析视频文件内容,优点是大部分平台都支持,缺点是速度比较慢。硬件解码就是使用硬件GPU提供的API进行编解码,这些编解码器已经被集成到了硬件底层,优点是速度快,缺点就是依赖于硬件平台。幸运的是,目前大部分的PC,手机等等都支持硬件解码。

接下来,我们就来演示如何播放一个mp4的视频文件。我们首先需要创建VideoDemo工程。然后将我们下载的“unity.mp4”视频文件放置到Asset目录下。

我们点击这个文件,然后查看它的检视面板,如下所示:

Unity为了更大程度的让视频文件兼容于特定平台,可以对视频进行转码编辑。我们可以看到上面的Default,PC,WebGL,Android不同平台的转码设置。如果禁用转码,将按原样使用视频文件,这意味着必须手动验证与目标平台的兼容性。但是,选择不转码可以节省时间并且避免了转换过程中的质量损失。这里,我们就不进行转码了。

在检视面板的最下面,可以播放这个视频文件。

接下来,我们创建一个平面Plane游戏对象,然后调整一下角度。

 

然后,我们给这个平面Plane添加一个Video Player组件。

接下来,将我们的“unity.mp4”文件拖拽到“Video Clip”选项中。

Source选择视频源类型。Video Clip将视频剪辑分配给视频编辑器。URL  就是从 URL(例如 http:// 或 file://)分配视频。Unity 在运行时从此 URL 读取视频。

Video Clip 就是我们的视频剪辑文件。我们将视频文件拖拽到这里即可。

Play On Awake勾选 Play On Awake 复选框可在场景启动时播放视频。如果希望在运行时的另一个点触发视频播放,请取消勾选此复选框。此情况下可使用 Play() 命令通过脚本触发视频播放。默认是勾选此项的,也就是说项目运行后就会自动播放视频。

Wait For First Frame如果勾选 Wait For First Frame 复选框,Unity 将在游戏开始前等待源视频的第一帧准备好显示。如果取消勾选此复选框,可能会丢弃前几帧以使视频时间与游戏的其余部分保持同步。默认是勾选此项的,也就是视频加载第一帧后才播放视频。

Loop 是否循环播放视频,默认没有勾选。

Skip On Drop是否允许 VideoPlayer 跳帧以追上当前时间,默认不勾选。

Playback Speed 视频播放倍速,默认为1(正常播放)。

Render Mode 渲染模式。Material Override通过游戏对象渲染器的材质将视频渲染到游戏对象的选定纹理属性中。也就是说,视频要在平面Plane的材质纹理上播放。

Renderer 视频播放器组件用于渲染图像的渲染器。这里就是我们的平面Plane的Mesh Renderer控件。也就是说,视频要通过平面Plance的Mesh Renderer控件渲染出来。

Material Property 材质属性,_MainTex代表为主纹理,用来显示视频内容。

Audio Output Mode 音频输出模式,Direct代表音频样本绕过 Unity 的音频处理,直接发送到音频输出硬件。Audio Source 音频样本发送到选定音频源,允许应用 Unity 的音频处理。

Track 0[2 ch] 关联的音频轨道将用于播放。复选框左侧的文本提供有关音频轨道的信息,具体而言就是音频轨道编号、语言和通道数。Track 0 表示第一个音频轨道, (1 ch)表示单声道,(2 ch)表示双声道。

Mute将关联的音频轨道静音。

Volume关联音频轨道的音量。

接下来,我们就可以运行整个工程,查看视频播放效果。

另一种播放视频的方法。创建一个“渲染器纹理”,再创建一个UI->Raw Image,然后为这个UI添加一个video Player组件。并设置该组件的渲染模式为“渲染器纹理”;同时将刚刚创建的渲染器纹理添加到UI组件的纹理选项,还添加到video player组件中的“目标纹理”上面。最后将视频放入Video Player组件的视频剪辑选项中。运行就可以播放了。这个过程大致可以理解为,视频播放内容输出到渲染器纹理,然后渲染器纹理通过Raw Image渲染显示出来。渲染器纹理起到一个视频数据传递的过程。这个过程我们就不演示了。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】编译器gcc/g++的使用

🏖️作者:malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、gcc/g的介绍二、程序的翻…

基于Vue CLI搭建vue3项目

前言 使用vue官方的脚手架进行搭建Vue CLI 注意:create-vue是基于Vite搭建项目,今天我们还是基于webpack搭建使用vue create 项目名称这个命令 一、步骤 1、 使用默认配置项还是自定义配置 这里我选择自定义 2、 选择需要配置的选项 根据个人进行…

ChatGPT不会很快接管人类工作,AI也不会免费打工

ChatGPT 等大模型的相继发布,让很多人倍感压力,害怕 AI 会很快接管他们的工作。对此,OpenAI 也曾发表过一项研究,表明 ChatGPT 的影响涵盖所有收入阶层,且高收入工作可能面临更大的风险。事实到底如何呢? …

IT知识百科:什么是下一代防火墙和IPS?

引言 随着网络攻击的日益增多,防火墙和入侵防御系统(Intrusion Prevention System, IPS)已成为企业网络安全的必备设备。然而,传统的防火墙和IPS已经无法满足复杂多变的网络安全威胁,因此,下一代防火墙和I…

Java集合(底层设计与实现)

Java集合(底层设计与实现) 集合体系 List接口 基本介绍 元素有序(即添加顺序和取出顺序一致)、且可重复支持索引有下标,下标对应元素在容器中的位置 ArrayList 基本介绍:底层由数组实现;在…

软考 软件设计师数据结构二笔记

查找基本概念 顺序查找 折半查找(二分查找顺序存储 ) 查找一个数据先给他折中,看看要查找的是不是大于中间值如果大于前面的就不用查找了 l和r指向对应下标 二分查找补充 上图描述如何构造这般查找判定树,一般都是下取整 …

PDF怎么转Word?简单几步轻松操作

PDF格式是目前最为流行的电子文档格式之一。但是,当我们需要编辑或修改PDF文件时,通常需要将其转换为Word文档格式。在本文中,我们将介绍如何将PDF文件转换为Word文档,并且列举PDF和Word文档操作上的差异。 PDF转Word文档操作方法…

19 树表的查找

文章目录 二叉排序树(BST)查找操作二叉排序树的存储结构查找实现查找算法分析二叉排序树的平均查找长度 插入操作删除操作代码实现 平衡二叉树(AVL)插入&旋转操作插入操作四种旋转情况代码实现 删除操作查找操作 介绍 树表查找是一种在树形数据结构中…

非法捕捞识别预警系统 yolov7

非法捕捞识别预警系统通过yolov7网络模型AI视频分析技术,非法捕捞识别预警系统模型算法能够对河道湖泊画面场景中出现的非法捕捞行为进行7*24小时不间断智能检测识别实时告警通知相关人员及时处理。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测&#xff…

应用网关Nginx+Https证书+内网穿透+图片切割水印+网关登录

一、开源项目简介 Apiumc Gateway 它一个工具等于 Nginx Https证书 内网穿透 图片切割水印 网关登录 Apiumc Gateway 是高性能的Web网关,它从底层Socket原始通信层开始,采用多线程、多任务模式从新构建Web服务,充分发挥当下多核的CPU的…

当代年轻人搞副业有多野?工资6000,兼职1W...

凌晨12:00,我被同做新媒体的闺蜜小冉震了出来。 这是投稿出去,第10086次没有回声。 那种无力感掐着我的脖子,感觉整个人要窒息了。 写稿,真的好难,我好想放弃。 可是,每月被花呗、信用卡、房租支配的恐惧却…

C++【模板进阶】

✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2019 版本 16.11.17 文章目录 🌇前言🏙️正文1、非类型模板参数1.1、使用方法1.2、类型要求1.3、实际例子:arr…

详解:三子棋以及N子棋的实现

三子棋以及N子棋的实现 初始化棋盘打印棋盘玩家下棋电脑下棋判断输赢主函数的实现(test.c)game.c的实现game.h的实现 铁汁们~今天给大家分享一篇三子棋以及N子棋的实现,来吧,开造⛳️ 实现流程: 1.游戏不退出,继续玩下一把&#x…

ML之FE:基于波士顿房价数据集利用LightGBM算法进行模型预测然后通过3σ原则法(计算残差标准差)寻找测试集中的异常值/异常样本

ML之FE:基于波士顿房价数据集利用LightGBM算法进行模型预测然后通过3σ原则法(计算残差标准差)寻找测试集中的异常值/异常样本 目录 基于波士顿房价数据集利用LiR和LightGBM算法进行模型预测然后通过3σ原则法(计算残差标准差)寻找测试集中的异常值 # 1、定义数据…

软件架构复习笔记(张友生教材版本)

考纲(张友生版本软件架构 考试题型: 10*3单选 5*3简答题 5*3设计图(含画图) 10*2 论述题 10*2综合题 复习以课件为主,书为辅 第一章 (软件危机) ? ? 构造模型与实现 掌握软件结构体系核心模型 第二章 软件体…

K8s之Pod最小调度单元详解

文章目录 一、Pod概念1、Pod是什么?2、Pod网络共享实现方式3、Pod存储共享方式4、创建Pod整体流程 二、使用YAML文件定义Pod资源1、Pod资源清单YAML文件书写技巧1. YAML语法格式:2. 配置Linux tab缩进两个空格3. 使用kubectl explain帮助命令 2、创建Pod…

ChatGPT客服系统产品-利用chatgpt训练企业知识开发个性化客服系统

打造最前沿的AI智能客服系统,基于自有数据语料,充分运用ChatGPT的大模型自然语言生成能力,定制化客服系统为企业提供自主性的客服服务能力。 ChatGPT如何革新智能客服? 根据当前ChatGPT的使用情况,我们发现未来中短期内…

基于 DDR3 的串口传图帧缓存系统设计实现(fifo2mig_axi )

文章目录 前言一、接口转换模块设计二、fifo2mig_axi 模块二、接口转换模块仿真四、fifo2mig_axi_tb五、仿真展示 前言 结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的串口传图帧缓存系统。 提示:以下是本篇文章正文内容,下面…

次世代烘焙 法线贴图 相关知识

一般将低模 高模的法线贴图实现大量细节模型画面的游戏称为次时代游戏。 次世代常用软件 低模:Maya、3Dmax、Topogun 。 中模:Maya、3Dmax 。 高模:Maya、3Dmax、Zbrush。 UV:Maya、Zbrush、Unfold3D、Uvlayout 。 烘焙&#x…

【观察】华为重构分销伙伴体系,坚持“长期主义”做大分销市场

毫无疑问,随着数字化转型的加速,当前不同类型、不同规模的企业,在面临数字化转型时呈现出了不同的困境和特征,同时对合作伙伴也提出了更高的要求,因此唯有通过“精耕细作”的方式才能更好地加速企业数字化转型的步伐。…