导出视频包含视频配置导出、视频合成及上传。本文为您介绍导出视频的流程以及方法。
版本支持
版本 | 是否支持 |
---|---|
专业版 | 支持 |
标准版 | 支持 |
基础版 | 支持 |
相关类功能
类名 | 功能 |
---|---|
AliyunVideoParam | 视频输出参数,设置合成导出视频的参数。 |
AliyunIVodCompose | 视频合成上传类,包括初始化、合成视频、上传视频、更新上传凭证等视频合成及上传相关功能。 |
AliyunComposeFactory | 工厂类,创建合成实例。 |
导出视频流程
流程 | 说明 | 示例代码 |
---|---|---|
1 | 导出当前编辑视频的配置。 | 视频配置导出 |
2 | 合成视频,支持暂停、恢复及取消合成。 | 视频合成 |
3 | 上传视频,支持暂停、继续及取消上传。 | 视频上传 |
4 | 释放资源。 | 释放资源 |
说明
- 视频合成接口和上传接口的调用有顺序要求,合成接口调用完成后可以调用上传接口。
- 合成接口可多次调用,而上传接口只上传最后一次合成生成的视频文件。
- 如果编辑的对象是视频,在创建AliyunIVodCompose实例前,需要先将该视频的特效持久化到本地配置文件中,否则合成的视频无此特效。持久化编辑特效接口如下:
AliyunIEditor.saveEffectToLocal();
视频配置导出
导出当前编辑视频的配置,此时并不会合成输出最终的视频文件。
接口参数请参考AliyunVideoParam。
//视频配置导出,最终输出outputPath的配置文件
AliyunIEditor.compose(AliyunVideoParam param, String outputPath, AliyunIComposeCallBack callback);
//取消视频配置导出
AliyunIEditor.cancelCompose();
视频合成
阿里云短视频SDK提供的一套单独进行合成上传的功能接口,用来实现将编辑完的视频在另一界面合成上传,核心类AliyunIVodCompose封装了视频合成与上传功能,方便客户端更好地合成与上传视频。合成接口可多次调用。
接口参数请参考AliyunIVodCompose及AliyunComposeFactory。
初始化合成上传实例
//创建
AliyunComposeFactory.createAliyunVodCompose();
//初始化
AliyunIVodCompose.init(Context context);
合成
AliyunIVodCompose.compose(String config, String output, AliyunIComposeCallBack callback);
合成控制(按需使用)
//暂停合成
AliyunIVodCompose.pauseCompose();
//恢复合成
AliyunIVodCompose.resumeCompose();
//取消合成
AliyunIVodCompose.cancelCompose();
视频上传
视频合成完成后调用上传接口上传视频,上传接口只上传最后一次合成生成的视频文件。
接口参数请参考AliyunIVodCompose及AliyunComposeFactory。
上传
- 获取上传地址及上传凭证。
AliyunIVodCompose是通过上传地址和上传凭证上传,在上传之前,需要获取上传地址及上传凭证,详细操作请参见获取视频上传地址和凭证。
- 上传视频文件到OSS Bucket中。
//通过上传地址和上传凭证上传视频 //videoPath:视频文件地址 //uploadAddress:上传地址 //uploadAuth:上传凭证 //aliyunVodUploadCallBack:上传的回调 //上传视频 AliyunIVodCompose.uploadVideoWithVod(String videoPath, String uploadAddress, String uploadAuth, AliyunIVodUploadCallBack aliyunVodUploadCallBack);
- 刷新视频上传凭证。
考虑到上传凭证带有时效性,所以上传后,需要在过期回调onUploadTokenExpired方法中重新获取上传凭证上传,并通过AliyunIVodCompose.refreshWithUploadAuth(String uploadAuth);进行刷新,更多信息,请参见刷新视频上传凭证。
上传控制(按需使用)
//暂停上传
AliyunIVodCompose.pauseUpload();
//继续上传
AliyunIVodCompose.resumeUpload();
//取消上传
AliyunIVodCompose.cancelUpload();
释放资源
上传完成后,销毁接口,释放资源。
AliyunIVodCompose.release();