有个客户要在视频编辑SDK里增加 人像分割的功能, 感觉这个很有意思, 就写了如下的文字.
AI人像分割SDK:
1. 提供的是裸API(或摄像头预览) , 核心是3个方法:初始化, 分割(图像输入和图像输出),释放.
2. 好处是灵活, 不好是:需要写很多代码来接入, 特别是对视频文件做分割, 更要写一些代码.
3. 核心是: 分割的是否快, 如果不快, 如何异步优化,
视频编辑SDK:
1. 提供的是封装好的功能类型的SDK,只能小改动, 会引出纹理, 然后在外面接入人像分割SDK.
2. 优劣: 现在大部分人像分割SDK运行耗时严重, 一般一帧在50毫秒以上, 接入到视频编辑SDK中后, 预览不会流畅自然.
结果:
视频编辑SDK + 人像分割SDK, 要做到预览流畅, 则需要异步优化时间, 先把视频抠好, 保存成裸的图像数据,等到用的时候,从手机存储中读取 , 这样就需要多个异步线程,并从中各种挤时间, 比如用handlerThread来异步解码, 用ThreadPool保存和读取图像数据, 建立缓存机制等.