4

Unity之VideoPlayer播放透明视频

 2 years ago
source link: https://fredlyu.github.io/Unity%E4%B9%8BVideoPlayer%E6%92%AD%E6%94%BE%E9%80%8F%E6%98%8E%E8%A7%86%E9%A2%91.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

  由于unity对视频格式的支持有限,因此如果想使用videoplayer播放透明视频需要对视频进行特殊处理;在unity中原生支持vp8编码的webm带透明通道的视频,所以我们需要将视频转成此格式;可以使用格式工厂将带透明通道的mov视频转换为webm格式的视频,然后在unity中使用。不过本文主要介绍另一种方式,使用ffmpeg将序列帧合成为带透明通道的视频。因此需要如下工具:
  ffmpeg3.4.2
  ReNamer图片批量重命名,提取码:k0sd

图片重命名

  打开ReNamer软件,将所有图片拖拽到软件下方提示的额空白处,然后添加一个名称移除规则和一个名称序列化规则,完成图片的重命名,如下图所示:

  下载ffmpeg,进入到”…/bin/“目录下,然后按下键盘下的“shift”+“鼠标右键”,打开Powershell命令行窗口,输入类似如下命令:

  ./ffmpeg -y -r 25 -i 01/%3d.png -c:v libvpx -auto-alt-ref 0 -minrate 8500k -maxrate 8500k -b:v 8500k -quality best 1.webm
  说明:
  -r 表示视频帧率 -i 表示输入源 -c:v libvpx 表示视频编码格式,这里指明使用vp8编码格式(如果缺少此项,则默认使用vp9)
  下面两张图一个指定了编码格式,一个使用默认编码格式:

  FFmpeg说明文档

Unity操作

  在unity中添加一个GameObject,重命名为VideoPlayer,然后添加一个”VideoPlayer”组件,将视频拖拽到video clip上即可。Camera设置如下:

  最终效果如下:

  本次分享就到此结束。不过有时在实际的项目上我们会遇到需要播放大分辨的带透明通道的视频,此时还使用videoplayer播放,会发现合成的webm视频会模糊。有时可能还会有点卡顿。那么怎么解决呢?下一篇介绍另一种在unity播放透明视频的方法。

上述介绍的软件如有收费,请大家支持正版
本文如有侵权,请联系删除


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK