当前位置: 首页 > 后端技术 > Java

镜头随角色移动,视频剪辑服务让用户始终保持C位

时间:2023-04-01 16:10:24 Java

当今,视频是用户最流行的记录生活的方式,各种App都提供了简单的视频剪辑功能。视频发布界面。除了添加音乐、滤镜、贴纸等基本功能外,用户越来越追求相机感,往往需要通过专业的视频剪辑软件手动抠出关键帧,进行放大、缩小、移动等操作,这增加了用户体验。分享视频的门槛不利于UGC内容的生产。有没有开放能力,可以从固定摄像头视频自动生成随角色移动的动态跟踪摄像头视频?HMSCore视频剪辑服务为开发者提供了快速构建人物追踪的能力,让用户在剪辑视频时自动锁定中心位置,轻松生成具有主角镜头感的专业视频。功能介绍人物追踪支持自动锁定用户输入的视频中的特定人物,轻松生成特定人物的主角视频。比如在旅游场景中,用户在景区拍摄的视频背景往往比较杂乱,人也很多,但是在剪辑的时候,用户可以使用人物追踪功能,用户可以稳稳地站在其中不用担心混淆的“C位”。效果展示使用人员追踪前后对比开发步骤1.开发准备详细准备步骤请参考华为开发者联盟官网2.编辑项目集成2.1设置应用认证信息您可以通过api_key或AccessToken设置应用认证信息。通过setAccessToken方法设置AccessToken,在应用启动时初始化一次,无需多次设置。MediaApplication.getInstance().setAccessToken("你的访问令牌");通过setApiKey方法设置api_key,应用启动时初始化一次,无需多次设置。MediaApplication.getInstance().setApiKey("你的ApiKey");2.2设置唯一标识ID,即LicenseIDL。LicenseID是用于管理和控制的有效证书。您必须确保许可证ID的唯一性。MediaApplication.getInstance().setLicenseId("许可证ID");2.2.1初始化Editor运行环境创建一个编辑工程,首先需要创建一个Editor对象,并初始化它的运行环境。离开编辑项目时,应该释放Editor实例。1)创建Editor对象HuaweiVideoEditoreditor=HuaweiVideoEditor.create(getApplicationContext());2)指定预览窗口的布局位置。预览窗口负责视频画面的渲染,由VideoEditingAtomicAbilitySDK内部创建的SurfaceView实现。在创建窗口之前,您需要指定预览窗口在您的应用中的布局位置。//指定预览窗口LinearLayoutmSdkPreviewContainer=view.findViewById(R.id.video_content_layout);//设置预览窗口承载的布局editor.setDisplay(mSdkPreviewContainer);3)初始化运行环境。如果许可认证失败,则抛出LicenseException。Editor对象创建后,此时并不占用实际的系统资源,需要手动选择其环境初始化的时机。此时视频编辑原子能力SDK会创建必要的线程和定时器。尝试{editor.initEnvironment();}catch(LicenseExceptionerror){SmartLog.e(TAG,"initEnvironmentfailed:"+error.getErrorMsg());结束();返回;}2.2.2添加视频和图片创建一个Videolane,然后在lane中添加图片或视频素材。图片和视频素材需要通过文件路径添加到泳道中。//获取时间轴对象HVETimeLinetimeline=editor.getTimeLine();//创建一个视频通道HVEVideoLanevideoLane=timeline.appendVideoLane();//在视频通道的最后添加一个视频资源HVEVideoAssetvideoAsset=videoLane.appendVideoAsset("test.mp4");//在视频通道的最后添加图片资源HVEImageAssetimageAsset=videoLane.appendImageAsset("test.jpg");3.人体追踪能力集成//初始化人体追踪引擎visibleAsset.initHumanTrackingEngine(newHVEAIInitialCallback(){@OverridepublicvoidonProgress(intprogress){//初始化进度}@OverridepublicvoidonSuccess(){//初始化成功}@OverridepublicvoidonError(interrorCode,StringerrorMessage){//初始化失败}});//通过坐标点选择指定人物进行跟踪,返回人物的矩形轮廓坐标Listrects=visibleAsset.selectHumanTrackingPerson(bitmap,position2D);//开启人体追踪特效visibleAsset.addHumanTrackingEffect(newHVEAIProcessCallback(){@OverridepublicvoidonProgress(intprogress){//处理进度}@OverridepublicvoidonSuccess(){//处理成功}@OverridepublicvoidonError(interrorCode,StringerrorMessage){//处理失败}});//中断人类追踪visibleAsset.interruptHumanTracking();//移除人类追踪效果visibleAsset.removeHumanTrackingEffect();更多详情>>访问视频剪辑服务开发者联盟官网获取视频剪辑服务开发指导文档访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:关注GitHub和GiteeLet第一时间了解HMSCore最新技术资讯~