导出视频

导出视频包含视频配置导出、视频合成及上传。本文为您介绍导出视频的流程以及方法。

版本支持

版本

是否支持

专业版

支持

标准版

支持

基础版

支持

相关类功能

类名

功能

AliyunVideoParam

视频输出参数,设置合成导出视频的参数。

AliyunIVodCompose

视频合成上传类,包括初始化、合成视频、上传视频、更新上传凭证等视频合成及上传相关功能。

AliyunComposeFactory

工厂类,创建合成实例。

导出视频流程

流程

说明

示例代码

1

导出当前编辑视频的配置。

视频配置导出

2

合成视频,支持暂停、恢复及取消合成。

视频合成

3

上传视频,支持暂停、继续及取消上传。

视频上传

4

释放资源。

释放资源

说明
  • 视频合成接口和上传接口的调用有顺序要求,合成接口调用完成后可以调用上传接口。

  • 合成接口可多次调用,而上传接口只上传最后一次合成生成的视频文件。

  • 如果编辑的对象是视频,在创建AliyunIVodCompose实例前,需要先将该视频的特效持久化到本地配置文件中,否则合成的视频无此特效。持久化编辑特效接口如下:

    AliyunIEditor.saveEffectToLocal();

视频配置导出

导出当前编辑视频的配置,此时并不会合成输出最终的视频文件。

接口参数请参考AliyunVideoParam

//视频配置导出,最终输出outputPath的配置文件
AliyunIEditor.compose(AliyunVideoParam param, String outputPath, AliyunIComposeCallBack callback);

//取消视频配置导出
AliyunIEditor.cancelCompose();

视频合成

阿里云短视频SDK提供的一套单独进行合成上传的功能接口,用来实现将编辑完的视频在另一界面合成上传,核心类AliyunIVodCompose封装了视频合成与上传功能,方便客户端更好地合成与上传视频。合成接口可多次调用。

接口参数请参考AliyunIVodComposeAliyunComposeFactory

初始化合成上传实例

//创建
AliyunComposeFactory.createAliyunVodCompose();

//初始化
AliyunIVodCompose.init(Context context);

合成

AliyunIVodCompose.compose(String config, String output, AliyunIComposeCallBack callback);

合成控制(按需使用)

//暂停合成
AliyunIVodCompose.pauseCompose();
//恢复合成
AliyunIVodCompose.resumeCompose();
//取消合成
AliyunIVodCompose.cancelCompose();

视频上传

视频合成完成后调用上传接口上传视频,上传接口只上传最后一次合成生成的视频文件。

接口参数请参考AliyunIVodComposeAliyunComposeFactory

上传

  • 获取上传地址及上传凭证。

    AliyunIVodCompose是通过上传地址和上传凭证上传,在上传之前,需要获取上传地址及上传凭证,详细操作请参见获取音视频上传地址和凭证

  • 上传视频文件到OSS Bucket中。

    /**
     * 上传视频到阿里云视频点播服务。
     * @param options 视频上传选项,包含以下属性:
     *        videoPath - 本地的视频文件路径。
     *        uploadAddress - 阿里云提供的视频上传地址。
     *        uploadAuth - 阿里云提供的上传凭证。
     *        aliyunVodUploadCallBack - 上传过程的回调接口。
     */
    AliyunIVodCompose.uploadVideoWithVod(VideoUploadOptions options);
  • 刷新视频上传凭证。

    考虑到上传凭证带有时效性,所以上传后,需要在过期回调onUploadTokenExpired方法中重新获取上传凭证上传,并通过AliyunIVodCompose.refreshWithUploadAuth(String uploadAuth);进行刷新,更多信息,请参见刷新视频上传凭证

上传控制(按需使用)

//暂停上传
AliyunIVodCompose.pauseUpload();
//继续上传
AliyunIVodCompose.resumeUpload();
//取消上传
AliyunIVodCompose.cancelUpload();

释放资源

上传完成后,销毁接口,释放资源。

AliyunIVodCompose.release();