版本号:1.5.0
配置Maven源
maven { url "https://artifact.bytedance.com/repository/thrall_ck/" credentials { username = MAVEN_USER_NAME //您申请的Maven用户名 password = MAVEN_PASS_WORD //您申请的Maven仓库密码 } authentication { digest(BasicAuthentication) } }
implementation "com.volcengine.effectone:ck-highlight:${version}"
HighLightSDKInit.init( context, HLSDKConfig.Builder() //配置鉴权文件路径 .setLicensePath(EOAuthorizationInternal.getVELicensePath() ?: "") //配置模板列表的Provider .setTemplateProvider(HLMTemplateProvider()) ////模型文件路径 .modelPath(modelFileDir.absolutePath) //抽帧的质量:LOW、MID、HIGH .setImageQuality(ImageQuality.LOW) //最大的模板匹配数量 .setMaxMatchCount(3) .build() )
SDK初始化前需要提前将上述模型文件下载至本地,并将模型文件父路径传给SDK
EO鉴权SDK初始化后,再初始化高光SDK即可
interface ITemplateProvider { //需要SDK使用方自行实现模板获取的接口 fun provideTemplateList(): List<EOMomentTemplate> }
实现ITemplateProvider并返回一个List
高光成片流程示意
暂时无法在飞书文档外展示此内容
//run on io thread val matchedInfo = withContext(Dispatchers.IO) { val list = mediaList.map { it.toRecognizeMedia() } //识别素材 val recognizeMedias = HighLightSDKInit.recognizeMedias(list) //模板Provider val templateProvider = HighLightSDKInit.getTemplateProvider() //开始匹配模板 HighLightSDKInit.getTemplateFinder().findSuitedTemplate( recognizeMedias, templateProvider ) }
matchedInfo即为匹配到的模板,将模板传入剪同款SDK即可生成视频
//匹配模板返回的数据结构 data class EOTemplateMatchedInfo( //匹配出的模板信息 val template: EOMomentTemplate, //传入的素材信息,以及素材的高光结果 val mediaList: List<EOTemplateMatchedItem> ) data class EOTemplateMatchedItem( //识别的素材 val media: EORecognizeMedia, //识别出素材的「分类」「美学打分」等信息 val extractorResult: EOExtractorResult ) //素材的数据结构 data class EORecognizeMedia( //素材id val id: String, //素材的本地路径 val path: String, // 1:Image 2: Video 定义参见:HLMediaType val type: Int, // 素材的宽度 val width: Int, // 素材的高度 val height: Int, // 素材的时长,图片设置为0即可 val duration: Int = 0, //素材创建的时间 val date: Int = 0, )