• 想让照片中的云飘起来?视频编辑服务一键动效3步就能实现


    分享和创作短视频已经成为人们记录美好生活的一种方式,很多用户在剪辑时会出现素材不够的情况,这时往往会选择用几张图片作为补充素材。但是视频中穿插图片又会让作品中的过渡部分显得十分生硬和刻意;那么怎样通过后期剪辑功能弥补图片的缺点,让用户顺畅完成视频创作呢?

    给图片添加动效就能解决这个问题,动效可以让静态照片产生动态视频效果,能够将片段自然流畅地衔接起来,使整个作品更加地和谐。

    这种动态效果,需要用户在专业的特效工具中手动设置锚点,才能产生流体运动效果,操作复杂。而现在,集成华为HMS Core视频编辑服务“一键动效”功能,就能让用户快速实现此效果,让手机相册中静态风景照,可以随时随地“动起来”。

    HMS Core视频编辑服务“一键动效”功能

    “一键动效”功能可以让静态风景图片实现视频动态效果,输入一张有天空或者水面的图片,“一键动效”让天空中的云朵飘动或者水面流动。开发者还可手动设置运动速度、运动方向、一键移除效果等,让动效更逼真。

    下面我们就一起来实操一下如何集成华为视频编辑服务,实现“一键动效”功能:

    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");
    

    初始化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 “一键动效”能力集成

    // 初始化一键动效AI引擎
    imageAsset.initTimeLapseEngine(new HVEAIInitialCallback() {
            @Override
            public void onProgress(int progress) {
                // 初始化进度   
            }
    
            @Override
            public void onSuccess() {
                // 初始化成功
            }
    
            @Override
            public void onError(int errorCode, String errorMessage) {
                // 初始化失败
            }
    });
    // 初始化成功后,检查图片中是否有天空或者水面
    int motionType = -1;
    imageAsset.detectTimeLapse(new HVETimeLapseDetectCallback() {
            @Override
            public void onResult(int state) {
                // 记录state作为添加一键动效AI特效的参数
                motionType = state;
            }
    });
    
    // skySpeed:天空的运动速度; skyAngle:天空的运动方向; waterSpeed:水面的运动速度; waterAngle:水面的运动方向
    HVETimeLapseEffectOptions options = 
    new HVETimeLapseEffectOptions.Builder().setMotionType(motionType)
            .setSkySpeed(skySpeed)
            .setSkyAngle(skyAngle)
            .setWaterAngle(waterAngle)
            .setWaterSpeed(waterSpeed)
            .build();
    
    // 添加一键动效AI特效
    imageAsset.addTimeLapseEffect(options, new HVEAIProcessCallback() {
            @Override
            public void onProgress(int progress) {
            }
            @Override
            public void onSuccess() {
            }
            @Override
            public void onError(int errorCode, String errorMessage) {
            }
    });
    // 中断一键动效AI特效处理
    imageAsset.interruptTimeLapse();
    
    // 移除一键动效AI特效
    imageAsset.removeTimeLapseEffect();
    
    折叠

    HMS Core视频编辑服务除了支持一键动效,还提供基础视频编辑、AI着色、专属滤镜、精彩片段、一键染发、人物追踪、人脸隐藏等视频创作能力,开发者可依据应用场景,在App中轻松完成视频编辑功能的集成。

    了解更多详情>>

    访问华为开发者联盟官网
    获取开发指导文档
    华为移动服务开源仓库地址:GitHubGitee

    关注我们,第一时间了解 HMS Core 最新技术资讯~

  • 相关阅读:
    了解LLVM、Clang编译过程
    sqlite3.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher
    基于深度学习的问答系统
    一键自动化博客发布工具,用过的人都说好(公众号篇)
    一文2000字从0到1用Jmeter全流程性能测试实战
    (附源码)小程序 微印象在线打印预约系统 毕业设计 061642
    jupyter 添加中文选项
    大二Web课程设计——动漫海贼王(可以很好的应付老师的作业)
    STM32 基础学习——GPIO位结构(江科大老师教程)
    Tableau3——文本表,树形图,词云图
  • 原文地址:https://www.cnblogs.com/hmscore/p/16519751.html