首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

腾讯自主研发动画组件PAG开源

1.1 Lottie 工作流程 下面是 Lottie 实现流程图,设计师使用 AE 设计好动画, 通过 bodymovin 插件将 AE 工程文件导出为 json 文件,在客户端(使用 Lottie...2.1 诞生背景 Lottie 最早UI动画场景出发解决矢量动画渲染问题官方社区来看,我们能容易发现 Lottie 矢量基因,社区作品大多是矢量图形类动画。...2.3 SDK 实现 渲染层面 Lottie 和 SVGA 渲染层面的实现依赖平台端接口,因此不同平台会存在支持 AE 特性有所差异、渲染效果不一致等问题。...文件格式方面 Lottie 导出素材格式是 json 文本,可读性高,但是承载 AE 特性能力差,文件体积大,解码速度慢。...图5 BMP预合成导出实现 文件问题解决 针对截图后文件比较大问题(动画一般不低于 24 帧),我们首先想到了视频编码极限帧间压缩能力,相对于原始图片序列帧,可以压缩到百分之一点几大小,另外视频格式还可以使用硬件解码

4K22

Lottie使用技巧

使用技巧及建议 为web创建动画并不像传统视频动画那样,我们需要考虑几个我们从未考虑过设置和格式选项。...下面是Lottie作者给出一些建议 保持简单:JSON文件应该尽可能简洁和保持小体积 利用好AE能力尽可能减少额外关键帧,例如多使用子父级方式而不是在每一个层上都添加一遍关键帧 避免使用路径关键帧...,因为它们会创建一个非常大文档,会路径上转换所有的顶点 避免使用Wiggle表达式和自动追踪等技术,这些技术会产生大量关键帧,做出这么大文件可能会使用JSON文件变得非常大,从而对性能产生大负面影响...导出文件,以1倍图导出,图形上每个像素都将转换成iOS和Android点单位。...Lottie还不支持任何表达式或效果。 蒙版或者alpha蒙版应该尽可能小,它们大小将影响Lottie性能,所以最好避免出现它们或保持它们最小。 混合模式,如叠加,屏幕,相加还不支持。

2.4K62
您找到你想要的搜索结果了吗?
是的
没有找到

视频八股文(4)--ffmpeg常见命令(3)

(2)显示位置播放视频文件 input.mp4 并将图片文件 logo.png 设为叠加层,分别按照一定规则将其与原始视频合成,并在播放应用此滤镜效果:ffplay -i input.mp4 -vf...(3)跑马灯效果播放视频文件 input.mp4 并将图片文件 logo.png 设为叠加层,根据一定规则将其与原始视频合成,并在播放应用此滤镜效果:ffplay -i input.mp4 -vf...input.mp4 并将另一个视频文件 sub_320x240.mp4 设为叠加层,然后根据一定规则将其与原始视频合成,并在播放应用此滤镜效果:ffplay -i input.mp4 -vf "movie...input.mp4,并将另一个视频文件 sub_320x240.mp4 设为叠加层,先将其缩放为 640x480,再根据一定规则将其与原始视频合成,并在播放应用此滤镜效果。...input.mp4,并将另一个视频文件 sub_320x240.mp4 设为叠加层,根据一定规则将其与原始视频合成,并在播放应用此滤镜效果。

90600

消除动效研发成本:腾讯 PAG 动效解决方案

在 1.0 版本,我们主要需求是在视频叠加各种带动效贴纸花字,并在保留预设动效前提下提供文本编辑能力。...设计师在制作视频模板,只要添加一个占位图并当成视频处理就行,对它应用任何变换和特效最终都会作用到替换后视频上。...基于以上目标,我们首先采用了二进制数据结构来存储动效内容。因为二进制数据结构能够非常方便文件集成任何资源,并且由于不需要像 JSON 一样处理字符串匹配问题,解码速度可以快几十倍。...挑战三:如何让设计师在 AE 里制作所有效果都可以导出? Lottie 方案到今天都只支持纯矢量导出方式。矢量导出方式优势就是文件极小,并且可以运行时编辑动效内容。...另外一方面,视频序列帧本质上还是代表了一个动效,因此也存在前面提到过静态区间。在导出我们会根据静态区间来插入关键帧,并把静态区间存入自定义数据结构。这样在渲染,就可以直接跳过不必要解码器等待。

1.2K20

视频八股文(4)--ffmpeg常见命令(3)

设为叠加层,将其与原始视频合成,并在播放应用此滤镜效果。...(2)显示位置 播放视频文件 input.mp4 并将图片文件 logo.png 设为叠加层,分别按照一定规则将其与原始视频合成,并在播放应用此滤镜效果: ffplay -i input.mp4 -...(3)跑马灯效果 播放视频文件 input.mp4 并将图片文件 logo.png 设为叠加层,根据一定规则将其与原始视频合成,并在播放应用此滤镜效果: ffplay -i input.mp4 -vf...input.mp4,并将另一个视频文件 sub_320x240.mp4 设为叠加层,先将其缩放为 640x480,再根据一定规则将其与原始视频合成,并在播放应用此滤镜效果。...input.mp4,并将另一个视频文件 sub_320x240.mp4 设为叠加层,根据一定规则将其与原始视频合成,并在播放应用此滤镜效果。

44530

复杂帧动画之移动端video采坑实现

//airbnb.io/lottie/) Airbnb 开源项目,通过解析 AE 动画为 json 数据,支持跨平台动画效果解决方案;lottie 在辅导中已经有实际应用,使用过同学都表示对其实现效果和开发速度表示称赞和推荐...,结合同事 @ajaxchen 调研结论: lottie 在设计师通过 AE 制作了动画之后,通过 AE 插件 bodymovin(https://aescripts.com/bodymovin/)...将动画导出 json 给到我们前端开发,在使用这段 json 数据中,我们引入了 lottie-web 脚本来解析这段 json 数据渲染成为SVG / canvas 动画,效果如下图, 左图为 lottie...实现,右图为我我们目标实现效果 可以看到实现还是存在着差异,颜色、数字倾斜度、虚线透视都没有达到预期,于是放弃lottie 使用,但这并不否定 lottie 在实现其它动画优秀效果 APNG...在华为荣耀 8 微信里面,我发现了个诡异问题视频没有播放,同时 video.play 没有 catch 到 error,而是正常执行到了 then 方法,也就是说 play 方法返回成功,然而视频实际没有播放

2.3K10

复杂帧动画之移动端video采坑实现

开源项目,通过解析 AE 动画为 json 数据,支持跨平台动画效果解决方案;lottie 在辅导中已经有实际应用,使用过同学都表示对其实现效果和开发速度表示称赞和推荐。...GIF 排除在外 在使用哪种方式实现该动画上,结合同事 @ajaxchen 调研结论: lottie 在设计师通过 AE 制作了动画之后,通过 AE 插件 bodymovin 将动画导出 json...给到我们前端开发,在使用这段 json 数据中,我们引入了 lottie-web 脚本来解析这段 json 数据渲染成为SVG / canvas 动画,效果如下图, 左图为 lottie 实现,右图为我我们目标实现效果...可以看到实现还是存在着差异,颜色、数字倾斜度、虚线透视都没有达到预期,于是放弃lottie 使用,但这并不否定 lottie 在实现其它动画优秀效果 APNG 在对设计师给到分段动画帧图片压缩之后...这个 video 我是设置了循环播放,硬生生 QQ 浏览器就在视频播放完毕后展示推荐视频,并且停止了我循环播放,这让我页面显有点 low, 这明显是不仁道,尝试无果之后,于是我咨询 QQ 浏览器同事帮忙这个问题

2.3K10

详解Invalid packet stream index

数据包流索引越界:如果试图访问数据包流,使用了一个超出范围索引,就会触发该错误。这通常表示访问了一个不存在索引,或者是计算索引出现了错误。...音频获取:音频获取是指原始音频源(如音频文件、麦克风输入等)获取音频数据。常见技术包括音频输入设备选择和配置,以及音频库或框架使用(如PortAudio、PulseAudio等)。...音频解码:音频解码是将音频数据压缩格式(如MP3、AAC等)解码为原始音频数据过程。可以使用音频解码库(如FFmpeg、LibAV等)来实现音频解码操作。...视频获取:视频获取是指原始视频源(如视频文件、摄像头输入等)获取视频数据。视频获取涉及到视频输入设备选择和配置,以及视频库或框架使用(如OpenCV、GStreamer等)。...视频解码:视频解码是将视频数据压缩格式(如H.264、VP9等)解码为原始视频数据过程。常用视频解码库包括FFmpeg、LibAV、OpenCV等。

24210

FFmpeg搭建基于CNN视频分析方案

一个典型视频处理流程,首先在流程开始对输入码流解码,然后解出来视频帧进行前处理,处理完毕后数据会被传输至推理引擎当中进行推理,引擎输出结果会再经过后处理,在此之后如果需要编码成其它格式则进行...但是这里存在一个问题,如果使用OpenVINO开发,需要根据特定需求写具体应用,没有一个可以完全复用框架从而高效便捷地搭建一个完整方案。...ClassifyFilter处理完成数据会被存储在Classify Side Data里,并与原始视频一起送往下一个单元,在这里可以选择分发,也可以overlay方式呈现原始图像。...metapublish参数则是告诉我们数据需要被转化成什么输出格式,现在我们支持json格式来输出,最后通过一个kafka协议url发送至kafka远程服务器。...在开发过程之中,我们发现FFmpeg可能存在一些不足。例如每个Filter不能单独运行在一个线程上,并且不能实现多个frame分发到不同线程,这对效率有比较严重制约。

1.1K10

前端视角看视频处理

0.1秒 (1 / 10)如上图所示,每张图停留0.5秒到0.1秒不等,当以不同速度播放画面,会产生不同视觉效果。...背后是一组滤镜函数,常见有scale(缩放)、、overlay(叠加)、rotate(旋转)等文字处理,用于实现视频字幕、旁白、解说等效果。...FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流开源计算机程序。openCV中会包含FFmpeg,更加专注于图像方面的处理,而FFmpeg提供了强大视频加工能力。...,上传到云端删除中间环节产生文件,释放系统资源web前端延展图片上图粗浅地展示了浏览器运行页面的过程,输入页面地址,到最终呈现视图,经历一些列过程。...在某种程度上,可以将浏览器视作特殊视频播放器,它也是一帧一甄处理页面。图片当遇到网络延迟或电脑性能问题,便会出现卡顿现象。

1.3K41

FFmpeg搭建基于CNN视频分析方案

一个典型视频处理流程,首先在流程开始对输入码流解码,然后解出来视频帧进行前处理,处理完毕后数据会被传输至推理引擎当中进行推理,引擎输出结果会再经过后处理,在此之后如果需要编码成其它格式则进行...但是这里存在一个问题,如果使用OpenVINO开发,需要根据特定需求写具体应用,没有一个可以完全复用框架从而高效便捷地搭建一个完整方案。...ClassifyFilter处理完成数据会被存储在Classify Side Data里,并与原始视频一起送往下一个单元,在这里可以选择分发,也可以overlay方式呈现原始图像。...metapublish参数则是告诉我们数据需要被转化成什么输出格式,现在我们支持json格式来输出,最后通过一个kafka协议url发送至kafka远程服务器。...在开发过程之中,我们发现FFmpeg可能存在一些不足。例如每个Filter不能单独运行在一个线程上,并且不能实现多个frame分发到不同线程,这对效率有比较严重制约。

1K40

产品介绍|PAG:消除动效研发成本

一、PAG诞生背景 AE 动效制作到终端 App 呈现,传统实现方式如下图所示,有三大痛点:实现成本高、沟通成本高和性能难以保证。?...近几年,业界诞生了像Lottie、SVGA这样动效工作流解决方案,Lottie 最早 UI 动画场景出发解决矢量动效渲染问题官方社区来看,我们能容易发现 Lottie 矢量基因,社区作品大多是矢量图形类动效...同时二进制数据结构不需要像JSON一样处理字符串匹配问题,解码速度可以快90%以上。另外在压缩率方面,相比JSON,二进制数据结构可以跳过Key内容,只存储Value,这样能节省大量空间。...同时,针对视频编辑场景对于性能要求严格特点,如单帧渲染并行存在视频编解码及各种特效处理,这时候留给PAG渲染时间就不太多了。为了提高实时预览性能,PAG进行了两个方向优化。...文件缓存解决了单个PAG文件添加多次解码复用问题,绘制缓存解决了帧间绘制缓存复用问题,根据渲染内容一般不会随着时间轴变化,反而是轻量矩阵参数会频繁变化特点,增加了内容缓存,避免了重复内容绘制

3.3K132

大杀器Bodymovin和Lottie:把AE动画转换成HTML5AndroidiOS原生动画

Airbnb出了移动端动画库Lottie,可以和一个名叫BodymovinAE插件结合起来,把在AE上做好动画导出为json文件,然后以Android/iOS原生动画形式在移动设备上渲染播放。...AE(Adobe After Effects)是视频后期特效和动画制作行家,前段时间充斥视野MG动画就是用它制作。如果真的可以实现,就会大大方便前端动画设计。...巧是,来自阿里大牛渚薰做主题演讲,也提到了Lottie和Bodymovin。渚薰主题是“H5互动正确打开方式”,演讲十分精彩。还等什么,听完大会我便操练了起来。 ?...(上图为FDCon2017上渚薰讲到LottiePPT页面) 经过了一番试验后,我大概摸清了Bodymovin使用方式。...Bodymovin还为生成出json文件提供了预览功能,点击插件界面上“Preview”按钮,点击“Browse”载入刚刚生成json文件,就会看到,动画被原汁原味地导出了: ? 8.

5.7K22

Camtasia Studio2023全新版本新功能介绍

这款软件提供了强大屏幕录像、视频剪辑编辑、视频菜单制作视频剧场和视频播放功能等一系列视频编辑功能,让你可以非常轻松进行屏幕内容录制,然后在对其进行编辑。...4,可以制作视频或者是动画可以直接素材组合制成成小视频,或者是动画。一般是对录制视频进行编辑,也可以做一些短小表情或者是gif动画都是非常不错。...Lottie (JSON) 支持将 LOTTIE 动画文件其他应用程序导入 Camtasia 2023 PC。...由于数据量低,这些临时副本可以快速编辑,然后返回到原始 HQ 记录。改进了分组资产表示“群组”长期以来一直是 Camtasia 在时间线上组织部分和项目的一种行之有效方式。...清晰组织和共享:独立项目文件用于特定视频项目的所有文件现在都合并到一个中央项目文件中。这可以快速与同事共享、传输到另一台计算机或存档。

1.1K30

2020年最值得推荐10款UI动效设计工具

它支持演示Adobe After Effects导出JSON文件,并可以快速实现动画效果。 价格:免费 系统:Web 优点: - Github上有免费资源。...- 包括各种动画,例如基本线条,基于字符动画和动态Logo动画。 - JSON文件可以通过网络加载。 - 支持捕捉常用动画。 缺点: - 不支持表达式或效果菜单中任何效果。...- 不支持图层效果,例如阴影、颜色叠加或触屏效果。 用户评价: “它最大优点是提供了一套完整跨平台动画实现工作流。”...视频教程: 通过此视频,你可以学习如何用最少Lottie代码在android中创建漂亮动画。 https://www.youtube.com/watch?v=fSD2wa81evA 9. ...教程: Flow官网提供了详细教程,教用户如何使用Flow制作Sketch文件动画以及导出代码和切图。

4.8K10

FFmpeg深入学习

,如果copy表示原始编解码数据必须被拷贝。...在播放过程中,主时钟作为同步基准,不断判断时钟与主时钟差异,调节时钟,使时钟追赶(落后)或等待(超前)主时钟。...2、FFmpeg 转码步骤分析 解复用 输入文件中读取编码帧,判断流类型,根据流类型将编码帧送入视频解码器或音频解码器。 解码 将视音频编码帧解码生成原始帧。...滤镜 提供多种多样滤镜,用来处理原始帧数据 FFmpeg。 编码 将原始视音频帧编码生成编码帧。 复用 将编码帧按不同流类型交织写入输出文件。...利用 ffmpeg视频文件添加水印基本原理是将视频文件视频包解码成一帧帧 “Frame”,通过 ffmpeg Filter(overlay)实现待添加水印与 “Frame” 叠加,最后将叠加视频帧进行编码并将编码后数据写到输出文件

47830

视频混流基本原理

前言 在直播场景里,我们经常需要将多个视频画面混合成一个视频画面(或是多路音频合成一路声音),常见场景如: 本地既要接入摄像头,又要展示桌面或者视频文件,在本地需要做一下画面混合 主播连麦PK,将多个主播画面混合成一个...在对视频进行混流之前,需要先将图层布局安排好,以避免出现图层遮挡、超出背景范围等问题。...Q:为什么混流后视频有黑边 A:混流后有黑边有两种情况:1、原始流就有黑边;2、混流参数中输出流宽高比例与原始宽高比例不匹配。...例如混流期望比例为16:9,而原始视频比例为4:3,混流后台会在原始视频长宽比基础上补黑边,满足期望16:9输出。 如果不希望产生黑边,也有两种方案:1、输出比例与输入画面比例保持一致。...附:使用 ffmpeg 进行混流实验 混流是一个转码过程,若想了解混流操作流程,可以使用 ffmpeg 进行实验,利用复合过滤器 filter_complex 来实现两个视频文件混合,参考如下命令:

8.7K145

Lottie动画简介

二.探索 既然这幅画已经完成了,就没必要从零开始手工临摹,可以利用工具画中提取出必要信息,再拿到目标平台这份信息重建动画: Now engineers can use exactly what the...图片资源 设计师AE做好动画后,通过Bodymovin(AE插件)导出JSON格式Lottie动画定义及相关图片资源,输出给Android、iOS、ReactNative、Web...前端工程师,工程师调用对应平台Lottie Player加载动画资源,并控制动画播放/暂停等 AE插件部分负责把AE动画定义转换成Lottie动画定义,并输出JSON文件,难点在于支持转换更多AE...: 通用动画定义 各平台下支持该动画定义播放器 类似于Java跨平台思路:平台无关class文件 + 平台相关JVM实现 五.lottie-web airbnb/lottie-web是Web环境...,HTML模式下遮罩动画存在圆角放大变方问题 P.S.关于SVG及其动画,请查看SVG基础知识 P.S.更多详细API见Usage 引入lottie-web有两种方式,要么引CDN资源,要么下载最新release

1.7K40

动画菜鸡自我救赎之企鹅辅导品牌页开发总结

通过bodymovin可以导出一个json文件和用到图片资源,json文件中描述了动画信息。...lottie-web库会去解析json文件内容,根据json文件里面的动画信息,svg或者canvas方式去实现动画。...相比动图和视频实现方法,lottie实现动画十分轻量,因为lottie只需要加载一个json文件,和其他必要图片就可以了。...所以这里我用到了lottie来实现,发现lottie确实能够很好地这个效果,而且总文件大小也比较小,只需要479KB,如果动图或者视频,一般来说没有1M以上搞不定。 ?...解决方案就是apng、video或者lottie,这三种方案各有优缺点,可以按实际场景来使用,如果lottie可以还原设计效果,我建议lottie,这样文件大小开销是最小

1.8K41
领券