VideoFlint / Cabbage

A video composition framework build on top of AVFoundation. It's simple to use and easy to extend.
MIT License
1.52k stars 221 forks source link

Optimize channel struct. 优化 channel 结构 #5

Closed vitoziv closed 5 years ago

vitoziv commented 5 years ago

讨论: 现在的结构只支持一个音频和视频的主 channel,而没有办法添加其它 channel。

overlays 可以放置其它视频数据,但是由于用了 AVComposition 添加到不同的 track id 的方式,导致现在有最大 16 个的限制。 audios 同理。

目标: 可以有多 channel; overlays 实现方式优化,不限制 overlays 个数; audios 暂时没有更好的改进建议

vitoziv commented 5 years ago

提供了 ImageCompositionGroupProvider 用于支持添加图片覆盖物,原本打算放入 Timeline 对象,但是思考后,认为这其实只是一种对原始图像进行处理的动作,核心的接口没有缺陷也无需修改。所以使用了扩展的方式,新增一个 ImageCompositionGroupProvider,它实现了 Timeline 内的 PassingThroughVideoCompositionProvider 属性接口,这种方式在新增了功能的同时,又保持了核心框架的简单。