UE4.18 VR导出全景图制作全景视频

前言:该教程用于UE4制作的vr作品导出全景图,再将序列帧的全景图合成全景360视频。为了加快渲染速度,修改了部分插件源码。如果想要效果比较好的,建议双眼输出单张上下3D的(需要修改插件),然后再合成视频。

分享:先上一段测试合成的demo,15s。

youtube翻墙享用:https://youtu.be/AgOrS_F7SqA

准备工作:

1、UE4.18官方插件StereoPanorama,找到引擎安装位置(我这里的是E:\UnrealEngine\UE_4.18\Engine\Plugins\Experimental),将目录底下的StereoPanorama插件拷贝到工程Plugins目录下。如果是纯蓝图工程,可以在工程中新建一个c++类,然后生成sln文件,复制到创建的Plugins目录,vs2015/2017均可打开。将该插件备份,为了防止冲突并删除引擎下的该插件。

2、修改插件源码:由于插件自动渲染了左右眼,一般情况下,渲染一帧的画面需要30s,左右眼就是需要1分钟左右。我们在合成的时候,一般只需要左眼渲染出的图像,所以修改插件只渲染出左眼,提高效率。默认输出为PNG格式,修改为JPG。

下面会给出修改过后的插件源码链接,可以直接下载使用。

单眼渲染插件:链接:https://pan.baidu.com/s/1ZbC4kXtjUzhtrzt3XumWdQ

提取码:aee7


(效果好)双眼渲染合并上下3d:链接:https://pan.baidu.com/s/1fh9IqDY83QZ_qwIXzyLkJw

提取码:dayw  


单独输出左眼
双眼合并上下3D

以下是输出单眼渲染的插件修改:

也可自行修改,具体修改如下:Visaul Studio打开StereoPanorama\Source\StereoPanorama\Private\SceneCapturer.cpp

SceneCapturer.cpp

在当前文档查找全部“righteye”,注释相关代码。

在当前文档查找全部“EImageFormat”(修改3处)

//TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::PNG);

修改为:

TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::JPEG );

在当前文档查找全部"CaptureName"

//FString CaptureName = OutputDir / Timestamp / Folder / TickString + TEXT( ".png" );

修改为:

FString CaptureName = OutputDir / Timestamp / Folder / TickString + TEXT( ".jpg" );

3、编译

打开Plugins\StereoPanorama\Source\StereoPanorama\StereoPanorama.Build.cs

添加代码:PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;


StereoPanorama.Build.cs

打开工程源码中\Source\TUKTAKMAN\TUKTAKMAN.Build.cs(我这里工程名是TUKTAKMAN),添加StereoPanorama模块。


TUKTAKMAN.Build.cs

编译成功即可!

开始渲染

1、打开UE4工程,启用插件,需要重启工程。


启用插件

2、渲染会根据场景中的摄像机位置进行360°渲染,所以可以配合sequencer或者Matinee使用,达到自动控制镜头的效果。

       打开关卡蓝图,添加以下节点:

     指定保存图片路径--开始渲染从0-30帧,30fps的话,大概就1s。默认输出为4096*4096的图片,如有需要可以根据情况添加如下命令

SP.OutputDir C:\Users\zhj\Desktop\Test               //设置保存路径

SP.HorizontalAngularIncrement 2.0                            //一张全景图,每次采集水平方向间隔

SP.VerticalAngularlncrement 30.0                                //一张全景图,每次采集垂直方向间隔

SP.ConcurrentCaptures 6

SP.CaptureHorizontalFOV 90.0                                    //fov视角

SP.StepCaptureWidth 1024                                               //图片质量

SP.PanoramicMovie 0 120                                                //渲染帧数0-120帧,开始执行点为第0帧

    说明:一般视频30fps,这里0-30帧指从开始执行渲染为0帧,并不是指程序运行的总帧。开始渲染会卡住,这个时候不要管它,一帧大概需要30s。可以看下保存路径下是否有输出图片。如果有,恭喜你成功了。如你需要渲染1分钟视频,帧率30fps.

修改为:SP.PanoramicMovie 0 1800

那么你需要时间大概为:30*60*30/3600=15H。

你也可以根据官方教程(https://www.unrealengine.com/zh-CN/tech-blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4)修改,但是亲测官方给的节点,渲染效果不如默认如下:

Capture蓝图

3、打开项目设置Project Settings,将帧率锁定在30


Project Settings

打开编辑器设置Editor Perferences,去掉勾选,这样挂机渲染的时候不会因为各种异常弹窗影响效率。


Editor Perferences

合成全景视频(这个是单眼的,效果不如上下3d):

1、渲染完成后,文件名会是这样连续的,注意一定是要连续的,等会我们用合成软件不连续(如:Left_00000.jpg,Left_00002.jpg),合成软件会报错说找不到Left_00001.jpg的图片。如果是在不同的主机渲染不同的片段(最后会讲)文件名重复,可以用批量重命名软件(最后会讲)。

渲染图片

2、下载软件:ffmpeg

链接:https://pan.baidu.com/s/1iws0btpEQ4tzzERTIoqjeg

提取码:88jq

解压后,添加环境变量E:\ffmpeg\bin,我这里解压到E:\ffmpeg

环境变量

3、测试ffmpeg

打开cmd,输入命令ffmpeg -version,显示如下图安装成功!

测试

4、开始合成(亲测,6分钟视频大约需要合成30-40分钟)

可能也跟电脑配置有关系,自行评估,合成过程中会出现cpu 100%的情况


配置


cmd输入命令:

ffmpeg.exe -framerate 30 -i E:\Capture\Left_%5d.jpg -c:v libx264 -profile:v high -level 4.2 -r 30 -pix_fmt yuv420p -crf 18 -preset slower E:\Capture\MyMovie.mp4

以上命令将E:\Capture\下命名以Left_00000.jpg为规则的图片,根据命名规则按顺序帧合成视频。这里也就是为什么前面说一定要按照命名规则必须连续的原因。

输出为30帧率,输出视频文件为MyMovie.mp4。

期待你的成果!

5、由于渲染效率的问题,需要多台机器合成。我这边的操作是分段计算出渲染帧数,每台机器开始渲染提前1S,渲染帧数加30帧。这样保留前后的30帧数,在合成之前先确定好衔接位置,然后用批量命名根据刚才说的命名规则进行连续命名后合成。

这里推荐用ACDSee9相片管理器,好用真香。可以自行在官网下载,也可直接用以下链接。

ACDSee9相片管理器链接:https://pan.baidu.com/s/170wuOmfXRMSft-XzaQa_Hg

提取码:p2ux

批量命名


批量命名

资料:https://www.unrealengine.com/zh-CN/tech-blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4

         https://www.jianshu.com/p/ddafe46827b7

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容