视频点播(ApsaraVideo for VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速于一体的一站式音视频点播解决方案。
一、阿里云开通视频点播及控制台常用操作
开通地址:阿里云视频点播服务
根据业务需求选择流量计费或是宽带峰值计费。
流程
1、用户要先获取上传授权
2、VoD下发 上传地址和凭证 及 VideoId
3、用户上传视频保存视频ID(VideoId)
4、用户服务端获取播放凭证
5、VoD下发带时效的播放凭证
6、用户服务端将播放凭证下发给客户端完成视频播放
媒资库 - 上传视频
管理视频
配置管理 - 媒资管理配置 - 分类管理
媒体处理配置
封装格式选择hls,则有一个高级参数,可以视频进行加密处理。
上传视频时,通过选择转码模板,可对视频进行加密
配置域名
音视频上传完成后,必须配一个已备案的域名,并完成CNAME绑定。如果要播放加密的视频,需要配置域名。
更多详细操作见官方文档视频点播
二、使用服务端SDK - 可以直接下载demo代码看
1、简介
SDK的方式将API进行了进一步的封装,不用自己创建工具类。我们可以基于服务端SDK编写代码来调用点播API,实现对点播产品和服务的快速操作。
SDK封装了对API的调用请求和响应,避免自行计算较为繁琐的 API签名。支持所有点播服务的API,并提供了相应的示例代码。支持7种开发语言,包括:Java、Python、PHP、.NET、Node.js、Go、C/C++。
2、安装SDK
参考官网:安装SDK
引入Jar包依赖 - 建议参考官网最新
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>2.15.5</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
3、初始化及AccessKey工具类
参考官方文档:初始化
根据文档书写一个初始化帮助类,通过账号AccessKey
来初始化。
这个AccessKey账号,需要添加如下几个权限。
/**
* @ClassName InitVodClient
* @Description 阿里云视频点播服务 - 初始化
* @Author 柳成荫
*/
public class InitVodClient {
/** 点播服务接入区域 */
public static final String REGION_ID = "cn-shanghai";
/**
* 获取视频播放凭证的Client
* @param accessKeyId accessKeyId
* @param accessKeySecret accessKeySecret
* @return
* @throws ClientException
*/
public static DefaultAcsClient initVodCredentialsClient(String accessKeyId, String accessKeySecret) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(REGION_ID, accessKeyId, accessKeySecret);
return new DefaultAcsClient(profile);
}
/**
* 获取视频播放地址的Client
* @param accessKeyId accessKeyId
* @param accessKeySecret accessKeySecret
* @return
* @throws ClientException
*/
public static IAcsClient initVodUrlClient(String accessKeyId, String accessKeySecret) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(REGION_ID, accessKeyId, accessKeySecret);
return new DefaultAcsClient(profile);
}
}
工具类:
@Component