U4S3L2——Unity中的视频兼容性
U4S3L2——Unity中的视频兼容性
Unity编辑器中的兼容性问题
对于我们来说,游戏发布的目标平台兼容性更加重要
mp4格式 + H.264或者VP8编解码器,可以在绝大多数的操作系统上正常播放
如果为了极致的提高性能,可以准备多个视频文件
针对不同的设备使用不同的视频,能用H.265的就用H.265编解码器
视频兼容性的含义
所谓的兼容性就是指硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度
对于视频文件的兼容性,可以理解为当游戏在不同的操作系统上运行时,该操作系统环境是否支持该视频的播放
Unity编辑器中的视频兼容性
我们可以在Windows、MacOS这两个常用操作系统上使用Unity进行开发,我们可以将很多不同格式的视频文件导入Unity中
但是如果我们想要正常的在Unity编辑器中预览视频文件,那么视频文件必须和这些平台兼容(必须是该平台支持的视频格式)
而视频是否兼容对应平台,主要由两个因素决定:
-
视频文件格式
常用操作系统对视频格式的支持如下:
扩展名 Windows macOS Linux .asf ✓ .avi ✓ .dv ✓ ✓ .m4v ✓ ✓ .mov ✓ ✓ .mp4 ✓ ✓ .mpg ✓ ✓ .mpeg ✓ ✓ .ogv ✓ ✓ ✓ .vp8 ✓ ✓ ✓ .webm ✓ ✓ ✓ .wmv ✓ 一般我们在Windows(微软的操作系统)上使用Unity开发游戏或者在macOS(苹果的操作系统)上开发游戏
所以我们主要看这两个平台上支持的格式,也就是Windows和macOS都支持的格式
.dv、.m4v、.mov、.mp4、mpg、mpeg、.ogv、vp8、webm
建议选择最常见的.mp4,是不会错的 -
视频文件使用的编解码器
就算使用了都支持的文件格式,但是如果制作视频时使用的编解码器在平台上不受支持,也会导致视频不能正常使用或者引起Unity报错
建议大家使用 H.264 编解码器制作视频,它是大多数平台支持的最佳视频编解码器,提供最佳的跨平台兼容性如果想了解更多Windows和macOS操作系统支持的编解码器:
简单总结:
决定视频兼容性的因素有两个,视频格式 和 视频编解码器,如果想要在Unity编辑器中正常预览视频
建议让制作视频的导出格式为mp4,编解码器使用H.264的视频,它能满足大多数常用平台的兼容性需求
发布目标平台的兼容性问题
我们刚才讲的兼容性内容都是基于Unity编辑器的,考虑的都是使用Unity编辑器进行开发的平台能不能播放视频
但是视频最终在哪个平台播放对于玩家来说才是更重要的****比如: 我们在Windows上开发,最终要发布为IOS、Android平台上
那么这个视频最终目的是要在IOS、Android这两个操作系统上能正常播放,Windows能不能正常播其实都不是那么重要了,不能播无非就是不能预览
但是如果在目标平台上不能播放,那么玩家体验是极其不好的,所以目标平台的兼容性问题考虑的就是目标平台是否可以正常播放视频
目标平台的兼容性问题
我们可以分三种情况来考虑目标平台的兼容性问题
-
第一种情况:视频与Unity编辑器平台兼容,但和目标平台不兼容
比如:视频和Windows或者MacOS操作系统兼容,但是与要发布游戏的IOS或者Android平台不兼容
解决方案:
Unity视频剪辑导入器提供了转码功能,当我们发布应用时可以进行转码来解决该问题
Unity自带转码功能,可以将视频编解码器转码为 H.264、H.265、VP8,所谓的转码,就是将视频原本的编解码规则变为其它的标准 -
第二种情况:视频与Unity编辑器平台不兼容,但是和目标平台兼容
比如: 视频和Windows或者MacOS操作系统不兼容,但是与要发布游戏的IOS或者Android平台兼容
解决方案:
一般这种情况下,我们是更希望使用兼容发布平台的格式和编解码器的,所以我们可以将这些资源放置在StreamingAssets文件夹中
在使用视频时,我们根据所在的平台选择性使用(编译)对应内容
关于不同平台所使用的编译符号,详见:平台测试符号
-
第三种情况:视频与Unity编辑器平台和目标平台都兼容
在这种情况下,我们不需要进行额外的处理,直接正常关联视频进行播放即可
这种情况也是我们更加希望达到的,这样我们就不需要转码,也不需要根据平台判断了
简单记忆目标平台兼容性问题
最保险的组合就是 mp4格式 + h.264编解码器,如果游戏想要发布的平台很多,那么编解码器可以使用VP8
H.265是新的编码协议,也即是H.264的升级版,H.265标准保留H.264原来的某些技术,同时对一些相关的技术加以改进
新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置
可使用h.265编解码器的平台
- macOS 11.13+
- windows 10
- IOS 11.0+
- Android 5.0
Android和IOS支持的编解码器
目前我们开发的游戏一般都是PC和手机
所有我们主要了解安卓和苹果手机对兼容性的要求即可