现在短视频已成为人们娱乐社交的次要模式,很多用户也开始由观众逐步转变为短视频制作传播者,然而简单的视频剪辑工具却令他们望而止步。如何能力升高短视频制作剪辑门槛,让更多无教训者也能制作出优质的短视频内容,并乐于分享生存趣事呢?
华为 HMS Core 视频编辑服务 6.6.0 版本近期上线 AI 精彩片段能力,可能基于人工智能自动识别并宰割视频镜头,依据用户自定义时长智能生成精彩片段视频。同时,还能够将精彩片段能力和已有的模板能力组合应用,构建一键成片能力,无需人工剪辑即可疾速生成残缺成熟的视频作品,尤其实用于旅拍、日常拍摄等视频内容的剪辑。
设计原理
视频编辑服务精彩片段能力联合了用户调研和测评,剖析出用户最关怀的视频属性,采纳了包含美学评估、内容标签、人物表情、镜头品质、运镜形式等在内的多维度评分计划,以此表征镜头的精彩水平,满足用户视频剪辑的价值需要。
美学评估是通过构图、光照、色调等维度规范数据所构建的数据集,是精彩片段能力实现的重要参考规范;内容标签和人物表情指的是精彩片段能力智能辨认并更偏向于剪辑出的内容,比方有人物和动物呈现的视频内容,或者有人物大笑表情的视频内容,都会被优先剪辑出现在精彩片段中;此外,精彩片段能力会过滤掉含糊、虚焦、过曝,以及非常抖动的镜头画面,取其精华,去其糟粕,最终出现优质成熟的精彩片段,整个处理过程通常在 2 秒以内。
能力劣势
1、通过迭代优化设计模型和打分策略,视频编辑服务精彩片段能力的业余评测和众测打分成果优于业界友商,可助力利用充沛开掘用户视频创作的价值。
2、为晋升精彩片段的生成运行效率,通过“稠密采样 - 浓密采样”两阶段算法,联合大量用户视频的散布法则,采纳缓存帧等策略疾速找到符合要求的片段;利用线程池调度,生产者 - 消费者模型实现视频解码和模型并行,助力算法高效运行。
DEMO 演示
集成办法
1. 开发筹备
具体筹备步骤可参考华为开发者联盟官网
2. 编辑工程集成
2.1 设置利用的鉴权信息
能够通过 api_key 或者 Access Token 来设置利用鉴权信息。
通过 setAccessToken 办法设置 Access Token,在利用启动时初始化设置一次即可,无需屡次设置。
MediaApplication.getInstance().setAccessToken("your access token");
通过 setApiKey 办法设置 api_key,在利用启动时初始化设置一次即可,无需屡次设置。
MediaApplication.getInstance().setApiKey("your ApiKey");
2.2 设置惟一标识 ID,即 License ID。
License ID 是进行管控的无效凭证,您要保障设置 License ID 的唯一性。
MediaApplication.getInstance().setLicenseId("License ID");
2.2.1 初始化 Editor 运行环境
创立编辑工程,须要首先创立 Editor 对象并初始化其运行环境。当来到编辑工程时,应开释 Editor 实例。
(1) 创立 Editor 对象
HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());
(2) 指定预览窗口的布局地位
预览窗口负责视频图像画面的渲染,由视频编辑原子能力 SDK 外部创立 SurfaceView 来实现。在创立窗口之前,须要在您的 App 中指定预览窗口的布局地位。
<LinearLayout
android:id="@+id/video_content_layout"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/video_edit_main_bg_color"
android:gravity="center"
android:orientation="vertical" />
// 指定预览窗口
LinearLayout mSdkPreviewContainer = view.findViewById(R.id.video_content_layout);
// 设置预览窗口承载的布局
editor.setDisplay(mSdkPreviewContainer);
(3) 初始化运行环境,如果 License 鉴权失败,会抛出 LicenseException。
当 Editor 对象创立之后,此时还没有占用理论的系统资源,须要手动抉择其环境初始化的机会,此时视频编辑原子能力 SDK 外部会创立必须的线程和定时器等。
try {editor.initEnvironment();
} catch (LicenseException error) {SmartLog.e(TAG, "initEnvironment failed:" + error.getErrorMsg());
finish();
return;
}
3.“精彩片段”能力集成
// 创立精彩片段解决对象
HVEVideoSelection hveVideoSelection = new HVEVideoSelection();
// 初始化精彩片段 AI 引擎
hveVideoSelection.initVideoSelectionEngine(new HVEAIInitialCallback() {
@Override
public void onProgress(int progress) {// 初始化进度}
@Override
public void onSuccess() {// 初始化胜利}
@Override
public void onError(int errorCode, String errorMessage) {// 初始化失败}
});
// 初始化胜利后,提取精彩片段,filePath 为视频的门路,duration 为须要提取片段的长度
hveVideoSelection.getHighLight(filePath, duration, new HVEVideoSelectionCallback() {
@Override
public void onResult(long start) {// 精彩片段提取胜利}
});
// 开释精彩片段 AI 引擎
hveVideoSelection.releaseVideoSelectionEngine();
理解更多详情 >>
拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee
关注咱们,第一工夫理解 HMS Core 最新技术资讯~