在H5营销活动中,实时生成分享视频能促进活动的传播度,本篇介绍使用智能媒体生产ICE,通过云剪辑的方法,辅助H5活动实时生产传播视频。
概述
背景
使用H5做营销活动,是近年来常见的运营方法,由于技术成熟、跨平台性,H5活动有较高的用户基础和接受度。用户在H5页面可以参与直播、互动游戏,还可以把互动数据保存为图片,进行二次传播。
随着5G的发展,视频内容已经被越来越多的用户所接受,把互动数据保存为视频,并添加丰富的特效,更能提高传播度,但受限于前端性能和机型的影响,H5视频合成技术复杂,机型适配工作量大。本篇介绍使用智能媒体生产ICE,通过云剪辑的方法,辅助H5活动实时生产传播视频。
方案介绍
云端合成
智能媒体生产ICE(Intelligent Cloud Editing,以下简称ICE)主打云端视频生产能力,通过组织剪辑需要的Timeline结构,即可在云端对用户的音视频素材进行剪辑,可以理解ICE就是一款API版的iMovie。
用户在活动页面完成任务后,后端调用ICE进行视频合成,将成片地址返回给H5前端,从而达到视频生产的目的。也可以由前端提交剪辑合成,轮询任务结果,当任务执行成功后,前端即可拿到成片视频并进行保存、转发。
实时性
前端交互对实时性要求很高,用户提交合成后,一般要在几秒内拿到结果。智能媒体生产ICE依托于媒体处理服务MPS,可以从容应对高并发,高实时性的场景。ICE云端合成效率大约为1:1(即合成耗时等于成片时长),由于营销活动的分享视频一般不会太长(10~15s),云剪辑的合成速度基本能满足营销活动的实时性要求,在简单拼接、小分辨率等一些场景下,云剪辑能达到更高的合成速度。
目标读者
H5营销活动的运营、开发同学。
适用场景
场景1:用户输入文案,和活动方的视频素材做合成。
场景2:用户上传视频或图片,和活动方的视频素材做合成。
一些活动场景示例:
智能媒体生产ICE可满足更多更复杂的剪辑场景,可参考Timeline配置,设计更多的业务策略。
相关概念
1、时间线Timeline
和iMovie、Premiere一样,一次剪辑会包含多个轨道、素材以及对应的位置、时长等信息,ICE使用时间线Timeline来描述这些信息。用户组装好Timeline,调用提交剪辑合成作业接口,即可生产出视频。
2、对象存储OSS
阿里云对象存储OSS(Object Storage Service)是一款安全、低成本、高可靠的云存储服务。OSS提供了H5文件上传SDK,可承载H5活动的素材上传功能。ICE可以直接剪辑OSS上的音视频文件,Timeline中引用文件的OSS地址即可。OSS地址格式:http://[bucket].oss-[region].aliyuncs.com/[object].mp4
。地址中包含了Bucket、Region、Object等信息,注意使用的OSS文件和ICE必须在相同region。
3、视频点播VOD
阿里云视频点播(VOD)是集音视频上传、自动化转码处理、媒资管理于一体的全链路音视频点播服务。VOD提供了JS上传SDK,可承载H5活动的素材上传能力。ICE可以直接剪辑VOD上的音视频媒资,Timeline中引用VOD的MediaId即可。注意使用的VOD媒资和ICE必须在相同region。
方案优势
1、跨平台
剪辑处理都在云端,免去了机型适配带来的复杂度,业务方可以“Write Once, Run Anywhere”,不但H5活动可以用,Native、PC端等都可以使用,且能保证效果一致。
2、高性能、低成本
智能媒体生产ICE依托于媒体处理服务MPS,可以从容应对并行几千路的视频合成,且能保证较高的实时性,对于更高的并发要求,也可做到高弹性及高性能。
ICE依据成片时长计费,用户即用即取,且能保证高可用性。
3、参数简单、灵活、易上手
ICE的Timeline结构符合大众对剪辑工程的理解,功能全面,业务方可以根据需求组装丰富的剪辑效果。当有新场景时,业务方修改Timeline配置即可,改动量小。
ICE还对很多场景做了Timeline简化,用户不用拼完整的Timeline参数,由ICE进行补全。
方案实施
前提条件
开通ICE服务
开通OSS服务或VOD服务
操作步骤
步骤一:准备素材
1、业务方需要准备视频的基础素材,并上传至OSS或VOD。
2、用户在H5页面把素材上传至OSS或VOD(如有需要)。
步骤二:组装时间线
示例1:用户提供视频、图片,和业务方的视频素材做混剪。
本示例为两个轨道,下方为业务方的背景图片,上面为用户的视频素材。
示例2:用户提供文字,和业务方的视频素材做混剪。
本示例为两个轨道,下方为业务方的背景视频,上面为用户的文案。
更多功能参考TimeLine配置。
步骤三:提交剪辑合成作业
调用 提交剪辑合成作业 接口,传入Timeline,提交剪辑合成作业。
String timeline = "{\"VideoTracks\":[{\"VideoTrackClips\":[{\"MediaURL\":\"" +
"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video.mp4\",\"X\":0,\"Y\":700," +
"\"Width\":1080,\"Height\":500}]},{\"VideoTrackClips\":[{\"MediaURL\":" +
"\"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image.jpg\"\"Type\":\"Image\"}]}]}";
String mediaURL = "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-output.mp4";
String outputMediaConfig = "{\"MediaURL\":\"" + mediaURL + "\",\"Width\":1280,\"Height\":720}";
SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest();
request.setTimeline(timeline);
request.setOutputMediaConfig(outputMediaConfig);
iceClient.submitMediaProducingJob(request);
步骤四:等待剪辑合成作业完成
方案1:业务方轮询检查任务状态
轮询 查询剪辑合成作业 接口,监控任务状态。
由于视频合成一般需要5s以上的时间,建议提交合成后3~5s后再开始轮询任务状态。
Thread.sleep(3000);
while (true) {
GetMediaProducingJobRequest getMediaProducingJobRequest = new GetMediaProducingJobRequest();
getMediaProducingJobRequest.setJobId(jobId);
GetMediaProducingJobResponse getMediaProducingJobResponse = iceClient.getMediaProducingJob(getMediaProducingJobRequest);
System.out.println("GetMediaProducingJobResponse : " + JSONObject.toJSONString(getMediaProducingJobResponse.body));
String status = getMediaProducingJobResponse.getBody().getMediaProducingJob().getStatus();
if ("Success".equals(status) || "Failed".equals(status)) {
break;
}
Thread.sleep(1000);
}
方案2:ICE支持配置剪辑完成回调,时效性更高,业务方收到剪辑成功回调后,主动或被动通知H5剪辑作业完成。
常见问题
影响合成效率的因素
成片时长
ICE的合成耗时和成片时长大约为1:1关系,在H5活动场景,不宜合成较长视频。
短时间内促进分享意愿的视频素材,往往有更好的活动效果,建议成片时长不超过15s。
成片分辨率
更高的分辨率带来更大的计算量,视频中的特效、转场会依据分辨率带来成倍数的计算量增加,建议成片分辨率不高于1920*1080。
特效、缩放、转场、字幕
复杂的特效需要对视频进行逐帧合成并编码,建议控制视频中特效、转场的使用量。提前把可以合并的效果集成到素材中,能有效提高剪辑效率。
联系我们
由于H5交互对实时性要求极高,几秒的优化都是很大的提升,不同的素材、配置,对合成效率有较大影响,可提工单联系技术小哥哥给出更多优化建议。
当活动到达峰值时,轮询任务状态可能会触发接口QPS限制,也可联系技术同学进行调整。
欢迎加入智能媒体生产ICE官方答疑群咨询交流。