Open xhzengAIB opened 5 years ago
最近比较忙,没有时间搞这个 demo。
用 AVVideoCompositionCoreAnimationTool 只能离线下使用,如导出、截图的情况。使用 AVPlayerItem 做实时预览需要把 lottie 的 layer 添加到 AVSynchronizedLayer 上,AVSynchronizedLayer 再添加到播放视图上进行预览。
这个方案的实现方式比较蛋疼,渲染和预览需要走两套逻辑,所以我就没在项目里面写。
也可以通过继承Resource
,然后重写open override func image(at time: CMTime, renderSize: CGSize) -> CIImage?
来获取每一帧的画面, Lottie里面有提供方法来获取每一帧的画面
继承的 resource 建议放到 Timeline 的 passingThroughVideoCompositionProvider
去过效果,如果是放到 videoChannel 下,会占用轨道资源
谢谢大佬回复,我是放在passingThroughVideoCompositionProvider
来处理浮层,比如文字,静态图片,动态贴纸,其实你说AVSynchronizedLayer的那种实现方案应该更符合项目的需求,因为在预览的过程中可能会调整layer层的展示效果,比如调整大小,旋转角度之类的
也可以通过继承
Resource
,然后重写open override func image(at time: CMTime, renderSize: CGSize) -> CIImage?
来获取每一帧的画面, Lottie里面有提供方法来获取每一帧的画面
Lottie有获取方法么
也可以通过继承
Resource
,然后重写open override func image(at time: CMTime, renderSize: CGSize) -> CIImage?
来获取每一帧的画面, Lottie里面有提供方法来获取每一帧的画面Lottie有获取方法么
要改写下Lottie的代码,通过time计算出动画的progress,然后渲染layer,最后把layer变成CIImage,具体参考https://github.com/lvpengwei/LottieInVideo
你好!
我们在你的中文说明当中看到以下信息: 对 CALayer 的支持,可以把 CALayer 所支持的所有 CoreAnimation 动画带入到视频画面中。比如使用 Lottie,设计师在 AE 中导出的动画配置,客户端用配置生成 CALayer 类,添加到 AVVideoCompositionCoreAnimationTool 中就可以很方便的实现视频中做贴纸动画的功能。
能否提供1~2个相应使用Lottie导出的动画配置做的视频合成的例子吗?
Jack WeChat:15915895880