您当前的位置:首页 >> 家居优品

百家号基于AE的视频渲染技术探寻

2023-05-01 12:16:10

fter Effects(AE) 全力以赴一个堆栈,研发者用到Adobe Extension Scripts(AES)原作者方式去进去进去堆栈中的占位的配旨(还包括影片、三幅像和文档),基于配旨数据飞轮和AE堆栈来创建人影片。

当年在搜索引擎之外也有一些小组在用到这个设计方案,在我们看来,基于AE催化影片,能以较低的研制出形同本促使提高影片特性的丰富多彩度,应有影片催化的使用量级。在余家号现在业务范围场面,我们觉得 AE 是一个值得为了让的设计方案之一,也是现在配要的三幅像设计方案。基于 AE 作为影片三幅像汽缸有 3 大战术上,分别是丰富多彩的特效JavaScript生态平衡、强盛的原作者能力、服装设计的特性即使如此还原形同。

2.1 丰富多彩的特效JavaScript

AE 作为强盛的影片后期摄制JavaScript,AE的七大动态,影片催化、特效摄制、三幅形OVA,能努力作曲者快速速继续做到一些多样化的影像特性。从广告宣传较窄片到网页OVA再到电影特效,都有它的看到。AE 特别是在丰富多彩的JavaScript生态平衡,我们来看一些最简单例子:

△用到 aeinfographics JavaScript生形同的三幅表格OVA,几乎能媲美我们熟悉的 echarts 的常用特性 △particular JavaScript缺少的酷炫的长剑特性 △motionbro JavaScript缺少的运镜特性

不过值得注意的是,AE的JavaScript只是针对于AE的JavaScript,在编辑器方式上下(参照下文)行驶则须要一些额外的研发指导工作。

2.2 强盛的原作者能力

△AE原作者取向的层次结构三幅

AE原作者是基于ECMA262国际标准的第三版JavaScript语种(即ES3),同时它缺少了project、item、compositions(催化), layers和renderQueue(三幅像队列)等取向仿真;熟悉这些取向仿真是写出好原作者的关键性,就像写出Web后端的JS原作者要明了DOM和BOM一样;AE原作者能继续做到AEJavaScript可以继续做到的大部分动态,让研发者需要继续做到精细化特性控制,例如:一般而言窄的文档配旨的侧向和文的、影片窄度的灵活处置等这些AEJavaScript不太好时序调整的指导工作;AE原作者缺少的 File 取向,能方便的读取到系统的其它PDF,比如Adobe继父桶之一的 PhotoShop PDF摄制的 .psd PDF,也可以将其它AEPDF作为幻灯片导入到单项中的。同时,AE 以及与之自背著的其它 Adobe JavaScript为系统设计各种反复缺少了许多必需,例如:我们可以用到 AE 缺少的编辑器物件 aerender、的网络三幅像和三幅像后动作来系统设计三幅像,可以在 Adobe Bridge 中的用到指导工作逆原作者系统设计一些任务,AE 仅仅可以充当一个三幅像汽缸来大力支持基于 .aep PDF的影片催化。

另一各个方面,我们可以用到AE的给定,当我们创建人适合于的OVA,但自已尽量避免手动创建人数十乃至数百个关键性帧时,给定能让我们通过文档来控制特性;原作者告知该软件要继续做什么,而给定则是真是一个表格征包含了什么特性。例如,您在屏幕上从左到右移动了一个圆锥形,AE移动设备了大量的给定,比如:摆动、淡入、暂别等。值得注意的是,虽然AE的给定语种和AE原作者语种都是基于JavaScript的,但二者动态上是分开的,给定封禁原作者的信给定和两条路线性。

2.3 服装设计的特性即使如此还原形同

△很逆行的张表格情三幅,真是什么的人都都会都会心一笑

在Web、App的研发反复中的,服装设计无论是用Sketch、PhotoShop还是其它设计JavaScript,我们再度都须要把设计稿件裂解为Web或Native上继续做到的特性,而AEPDF,在通过制度化以前(通常只须要更改三幅层的重新命名),即可或多或少用于生产商生态平衡,之外 100% 还原形同服装设计特性。我们几乎可以省进去影像特性review的录像。

GEEK TALK

03

基于AE的新近媒体转影片新近科技设计方案

我们现在明了到AE不具备强盛的三幅像能力,原作者能力,能为研制出提效,但是所述如何确实落地到生产商生态平衡中的呢,毕竟在单项研发反复中的,须要堆栈设计、原作者研发、配旨编排、影片三幅像等多个角色的立体化。余家号基于AE的新近媒体转影片三幅像新近科技设计方案如下:

我们将AE三幅像新近科技设计方案分作3个各个方面的指导工作:

3.1 堆栈的国际标准

原作者要操纵堆栈,我们希望更最简单、更高效地操纵堆栈,负责原作者研发的工程公司无需锁上AEPDF,就能继续做到堆栈的更改,这样就要应有AEPDF中的须要被时序更改的三幅层名和单项中的资源名值得注意,另外,三幅层没有被追踪。

我们通过对堆栈的解构,假定了请注意堆栈三幅层标准化:

1、文档层:Text单词重新命名,按照上场比赛顺序重新命名为:Text1、Text2、Text3;

2、三幅像层:Photo单词重新命名,按照上场比赛顺序重新命名为:Photo1、Photo2、Photo3;

3、着重层:分立重新命名为Background,只能有一个;

4、机遇层:分立重新命名为Foreground,只能有一个;

5、特性层:分立重新命名为Effect,只能有一个。

这里,大家一定都会自已,为什么堆栈的着重层,机遇层,特性层只能有一个呢,影片反复中的切换着重是怎么继续做到的呢?这里就涉及到一个「透堆栈」的概念。把一个新近媒体裂解为影片,须要考量催化形同本和堆栈形同本。我们的影片似乎是由多个影片录像都是由的。

一个完整影片的背后似乎对应着多个AE堆栈PDF,这样我们就可以按照须要去配对,继续做到多种不同的特性。甚至,可以这么配对:

除了堆栈本身的标准化以外,我们还要对堆栈的特性筹划描述,否则,对于影片催化pipeline来真是,它没有判断确实用到哪个AE堆栈。因此,我们须要对堆栈的情调,以及堆栈所须要的幻灯片影片和三幅像幻灯片筹划尺码上的标出。

堆栈的标出和堆栈的制度化重新命名是一件并不繁琐的一定都会,而且一旦出错,整个影片催化就都会注意到难题。因此,我们须要通过物件去继续做一个安全检查。首必先将AEPDF裂解为JSON格式的PDF,再去验证三幅层重新命名的正确性,AE转化后的JSONPDF并不庞大,这里面须要继续做一些裁剪。将AEPDF裂解为结构化的JSON数据是一件很不快速的一定都会,这里活动中心推荐了一种设计方案(),虽然文档不曾怎么更新近,但思路值得仿造。

△AE转化为JSON后的文档录像

3.2 系统设计三幅像

要继续做到系统设计三幅像,我们就没有再用AE的JavaScriptGUI了,AE 缺少的可继续执行PDF aerender(Windows 下是 aerender.exe) 是具有编辑器接口的流程,可用于自动继续执行三幅像。该可继续执行PDF与配该软件位于同一编辑器中的,无需购置 AE JavaScript,就能或多或少免费用到(详尽所述见Adobe官网,)。

我们来看一些用到编辑器,来继续执行三幅像的示例:

将Composition_1三幅像到指定PDF:

aerender -project c:projectsproject_1.aep -comp "Composition_1" -output c :outputproject_1project_1.avi

用到多自背著电路三幅像方式上,将 project_1.aep 中的的 Composition_1 的第 1 到第 10 帧筹划三幅像,并保存到背著编号的 Photoshop PDF数列中的:

aerender -project c:projectsproject_1.aep -comp "Composition_1" -s 1 -e 10 -RStemplate "Multi-Machine Settings" -OMtemplate "Multi-Machine Sequence" -output c:outputproject_1frames[####].psd

以上原作者展示了AE编辑器的基本用法,要让AE编辑器不具备更强盛的动态便是我们上原文的提过的 AE 原作者,aerender 选项并不大力支持或多或少两条路线程 AE原作者,要用到原作者则须要一些额外的指导工作。

在AE流程的的根数据库Scripts 编辑器下的 Startup数据库和Shutdown数据库,为用户缺少了2类栓理论,即在AE流程激活后和关闭前要继续执行的理论,aerender能在编辑器继续做到三幅像指导工作就便是AE为我们选项缺少的 commadLineRenderer.jsx PDF。

所以,我们只须要在 Startup 数据库,通过原作者获取编辑器中的AE原作者PDF的地址,然后继续执行原作者PDF,这样的话,aerender编辑器的三幅像能力就能媲美GUIGUI了。

3.3 AE原作者建设

在前面的章节中的,我们提过了AE原作者强盛的能力,因此我们就围绕着AE筹划一系列的原作者库里和幻灯片的建设 场、机遇特性等特性元素。

通过原作者继续做到着重去进去

示意三幅的文档幻灯片了如何筹划着重的幻灯片去进去,这里局限于篇幅省进去了各种精神状态的处置,以及着重(三幅像、影片)针对不同堆栈尺码的缩放,对于gif多种形式的OVA三幅像,或者过较窄的影片还须要筹划循环播放的逻辑文档。

var newBackgroundPath = '...';var item = findCompByName('Background');replaceAVLayerSource(item.layer(1), newBackgroundPath);function findCompByName(name) { var project = app.project; var numItems = project.numItems; for (var i = 1; i <= numItems; i++) { var item = project.item(i); if (item instanceof CompItem && item.name === name) { return item; } }}function replaceAVLayerSource(curLayer, newFilePath) { var importOptions = new ImportOptions(); importOptions.file = new File(newFilePath); var newItem = app.project.importFile(importOptions); curLayer.replaceSource(newItem, false);} 通过原作者继续做到注解渐入的特性:

示意三幅的文档幻灯片了如何来进行三幅层的透明度表格征,继续做到一个注解渐入OVA。

var config = [ { name: 'Opacity', setType: 'keyValue', values: [ { time: '0:00:00:00', value: 0 }, { time: '0:00:00:14', value: 100 } ] }];var layer = findCompByName('Text1');setProperties(layer, config);function setKeyframes(propertySpec, keyframes) { keyframes.forEach(function(keyframe, index) { var time = keyframe.time; if (typeof time === 'string') { time = currentFormatToTime(keyframe.time, keyframe.fps); } propertySpec.setValueAtTime(keyframe.time, keyframe.value); });}function setProperties(layer, config) { var propertyGroup = layer.property('Text').property('Animators'); layer.selected = true; traverseProperties(propertyGroup, config); layer.selected = false;}function findCompByName { // ...总括}

通过原作者在AE中的继续做到东航特性则稍适合于,大概思路是通过AES原作者载入另外一个JavaScriptAEPDF,将JavaScript中的假定的特性层复制并分析方法在意味著AEPDF相应的三幅层中的。局限于篇幅,这里就不在赘述了。

当我们有了充足的着重幻灯片,文档外观设计,文档OVA,东航特性以及氛围幻灯片的积累,我们就可以极大的丰富多彩堆栈特性,而且我们可以指数级降低堆栈PDF的使用量。

GEEK TALK

04

AE的三幅像速度快速最佳化

在生产商生态平衡下,AE 的催化速度快速是一个须要重点关注的难题,在不经过任何最佳化的情形,影片的小时和三幅像催化整整比甚至能达到惊人的 1:10。这个显然在一些对可操作性敦促比较高的场面下是没有接受的。要让AE继续做到FFMpeg的影片三幅像速度快速,我们须要继续做一些最佳化处置,现在配要的意三幅有可视适配、多帧三幅像、的网络三幅像等意三幅。

4.1 可视重适配到

AE在激活流程时,是一个比较用时的操纵,在 renderonly方式上下,经测试平均70%的整整资源浪费在 AE 该软件初始化上。三幅像可以由现在行驶的AE模板或新近激活的模板继续执行。选项情形,aerender都会激活AE的新近模板,即使其中的一个模板现在在行驶。通过可视适配可以继续做到AE三幅像速度快速的大幅促使提高,只须要在编辑器中的缺少"-reuse "参数,aerender将敦促现在在行驶的AE模板来继续执行三幅像。

aerender -project c:projectsproject_1.aep -reuse

4.2 多帧三幅像

多帧三幅像是 After Effects 2022版中的的新近增动态,可并行来进行 CPU 中的的所有内核。通过行驶多个 After Effects 模板来加快速某些逆程。多帧三幅像促使提高了 After Effects 的行驶速度快速。 多帧三幅像都会促使提高您的单项在自背著电路上的三幅像速度快速,所述各不完全相同 CPU 内核数、可用内存和DirectX计算能力。After Effects 2022 三幅像催化的速度快速促使提高如下表格所示:

4.3 的网络三幅像

A. 安装有 After Effects 完整版的自背著电路

B. 将一个单项和所有源PDF保存到服务项目器上的一个编辑器

C. 安装有三幅像汽缸的自背著电路

D. 锁上单项,将瞬时帧数列三幅像到服务项目器上的指定转化器编辑器

研发者可以用到反之亦然使用量的自背著电路筹划三幅像;通常,自背著电路趋多,三幅像速度快速趋快速。不过,如果横跨塞车的的网络用到太多自背著电路,中国电信可能都会降低整个会话的速度快速。

4.4 精神状态处置

基于AE编辑器方式上继续做到三幅像的反复中的,经常都会注意到一些卡死的情况,这是头疼我们工程公司好几天的难题,之后我们不得不通过GUI下的AE来模拟整个三幅像链路。再度定位到的或许是AE编辑器中的注意到了我们看不到的弹窗,它阻断后续一切原作者的继续执行,故没有继续执行三幅像任务。妥善解决的设计方案是通过安全检查AE可视,如果有精神状态弹窗,就关闭精神状态弹窗延续配可视,基于Python框架的文档如下。

# AE配会话可视title和classmainClass = "AE_CApplication_22.2"# 可视名称targetTitle = "After Effects"hWndList = []win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList)for hd in hWndList: title = win32gui.GetWindowText(hd) clsname = win32gui.GetClassName(hd) if -1 != str(title).find(targetTitle) and mainClass != clsname: win32gui.PostMessage(hd, win32con.WM_CLOSE, 0, 0)

再度,;也三幅像用时和影片小时比在1:1左右,影片小时趋窄,这个形同比例数据就趋小。

GEEK TALK

04

AE的极低

AE在影片三幅像各个方面特别是在独特的战术上,基于原作者也特别是在比较强盛的扩展能力。但基于AE三幅像也普遍存在难以妥善解决的缺陷:

来得于 FFmpeg 和 OpenGL 都缺少了 Web 后端的妥善解决设计方案,AE 的堆栈没有或多或少在浏览器后端继续做到堆栈的三幅像催化,这意味着,当我们在 Web 后端编者影片幻灯片的时候,用户没有同步图片特性;AE 只大力支持下在 Mac OS 和 Windows 上行驶,因此我们须要筑形同 Window 行驶生态平衡,这使得我们没有用到 GDP(Go Develop Platform,搜索引擎 Go 业务范围研发和平台)等一个大全业务范围两条路线的基石设施。虽然上文也详述了的网络三幅像设计方案,但这对硬件又有了一定的敦促。

GEEK TALK

06

小结

本文我们详尽解真是了余家号新近媒体转影片的基于AE的三幅像设计方案,来得于FFmepg、OpenGL、Canvas2Video等继续做到设计方案,AE三幅像设计方案在自动催化各个方面有较引人注意的战术上,它堆栈特性丰富多彩,研发新近的特效研制出形同本低;但由于没有继续做到同步图片,AE三幅像设计方案在C后端用户产品上又普遍存在一定的较窄板。随着余家号业务范围的蓬勃发展,我们的三幅像汽缸都会促使完善,现在基于OpenGL、Unity 3D的三幅像汽缸也在揭示中的,但毫无疑问,AE三幅像设计方案都会有一席之地。

作者:金展

来源:网易公众号:搜索引擎Geek真是

出处:

天津哪家专科医院做人流好
天津男科医院挂号
云南妇科医院哪个最好
什么药能治疗肌肉酸疼
成都看甲状腺最好的医院是哪里
友情链接