Unity插件360 VR Camera Capture Rig学习笔记(附:ffmpeg将序列图片转为视频)

360 VR Camera Capture Rig.unitypackage
https://assetstore.unity.com/packages/tools/camera/360-vr-camera-capture-rig-53264
(这是一个免费的插件 >.<谢谢开发者)
或者下载链接:https://pan.baidu.com/s/1RDHjJrfB2-VCVbqIBCHciA 不需提取码
*我加了一个LSVRMouseController02.cs的脚本(具有free camera的功能)
*如果运行报错可能是需要你改下代码:
Unity插件360 VR Camera Capture Rig学习笔记(附:ffmpeg将序列图片转为视频)_第1张图片

//Texture WorldIcon = (Texture)Resources.Load("LS_Logo");
  Texture WorldIcon; 

  public override void OnInspectorGUI() 
  {
	WorldIcon= (Texture)Resources.Load("LS_Logo");

来自 https://assetstore.unity.com/packages/tools/camera/360-vr-camera-capture-rig-53264/reviews?page=1&sort_by=recent
Unity插件360 VR Camera Capture Rig学习笔记(附:ffmpeg将序列图片转为视频)_第2张图片

把摄像机prefab放入场景,运行项目,就可以截图制作全景图(快捷键P、快捷键O)、录制视频(快捷键I)啦,还可以在参数面板设置图片分辨率。
更多详情请参见插件附带的pdf教程!
(…录屏后得到的序列图片可通过ffmpeg转为视频,最后可使用PotPlayer查看你的360°VR视频)


Ffmpeg将序列图片转为视频:

  1. 官网下载ffmpeg,解压缩后得到ffmpeg.exe

  2. Win+R打开cmd,进入ffmpeg.exe所在文件目录(我把ffmpeg.exe、ffplay.exe、ffprobe.exe三个文件移动到了C:\Windows\System32)

  3. 输入代码:

ffmpeg -f image2 -r 60 -i  filepath\filename_%06d.png  -an -c:v libx264 -r  60 -pix_fmt yuv420p  -preset ultrafast -crf 18   filepath\Outputvideo.mp4

*图像编号有x位则对应代码里的【%xd.png】

*后面那个-r 60代表输出视频的帧率,越大,视频质量越好,但内存也大了

  1. 可以用ffplay直接播放输出的视频:ffplay filepath\Outputvideo.mp4

下面是我的序列图片和命令行:
(如果你像我一样直接从PDF教程里复制黏贴代码,很可能会报错→应该是符号的问题,把所有看起来像负号“-”的符号都删掉,重新手动输入,然后就能成功运行了)
ffmpeg -f image2 -r 60 -i D:\0712Login\trial0830\LSCaptureFiles\LSCaptureFile_2019-08-30_15-39-25-796_%06d.png -an -c:v libx264 -r 60 -pix_fmt yuv420p -preset ultrafast -crf 18 D:\0712Login\trial0830\LSCaptureFiles\Outputvideo.mp4
Unity插件360 VR Camera Capture Rig学习笔记(附:ffmpeg将序列图片转为视频)_第3张图片Unity插件360 VR Camera Capture Rig学习笔记(附:ffmpeg将序列图片转为视频)_第4张图片

附个Ffmpeg官网文档:

https://ffmpeg.org/ffmpeg.html#ffpreset-files

关于视频编码x264:

https://www.cnblogs.com/x_wukong/p/5211105.html

“对于设定一个恒定品质 (CRF) 或是恒定量化值 (QP),你可以透过选择更慢的 Preset 来简单的节省位元率 (也就是得到更小的档案大小)。”

——比如在crf=18不变的条件下,565张2048×1024图片输出的视频大小,在preset ultrafast下得到19M,而preset veryslow得到4M

你可能感兴趣的:(unity)