目录
媒资库 > 音视频 > 单击 上传音/视频 > 单击 添加音/视频 > 选择文件,设置转码模板及其分类 > 单击 开始上传
若为第一次添加,需要配置存储管理,配置管理 > 媒资管理配置 > 存储管理,若已开通 OSS 服务会自动添加一个存储管理,将其设为默认即可。
若没有配置转码模板,默认为不转码
配置管理 > 媒体处理配置 > 转码模板组 > 单击 添加转码模板组 > 选择模板类型 > 设置好后保存即可
这里讲一下 普通转码模板,可以设置视频 清晰度 和 参数,若封装格式为 hls,可以在下面 高级参数 中设置 视频加密(HLS加密方式,默认开启阿里云私有加密,阿里云私有加密暂不支持iOS系统的网页端播放),加密后无法通过 视频播放地址 直接播放,而是要通过视频 ID 获取凭证后播放。
媒资库 > 音视频 > 在对应视频行的操作中点击管理,在跳出来的页面即可获取



官方文档:安装
- <dependency>
- <groupId>com.aliyungroupId>
- <artifactId>aliyun-java-sdk-coreartifactId>
- <version>4.6.0version>
- dependency>
- <dependency>
- <groupId>com.aliyungroupId>
- <artifactId>aliyun-java-sdk-vodartifactId>
- <version>2.16.11version>
- dependency>
- <dependency>
- <groupId>com.alibabagroupId>
- <artifactId>fastjsonartifactId>
- <version>1.2.83version>
- dependency>
- <dependency>
- <groupId>com.aliyungroupId>
- <artifactId>aliyun-java-sdk-kmsartifactId>
- <version>2.10.1version>
- dependency>
官方文档:初始化
- public class InitObject {
-
- /**
- * 初始化 AccessKey
- * @param accessKeyId
- * @param accessKeySecret
- * @return
- * @throws ClientException
- */
- public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
- String regionId = "cn-shanghai"; // 点播服务接入地域
- DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
- DefaultAcsClient client = new DefaultAcsClient(profile);
- return client;
- }
-
- }
官方文档:音视频播放
下面的方法只能用于获取没有加密的视频的播放地址,若获取加密视频的,会报错:Exception in thread "main" com.aliyuncs.exceptions.ClientException: Forbidden.AliyunVoDEncryption : Currently only the AliyunVoDEncryption stream exists, you must use the Aliyun player to play or set the value of ResultType to Multiple.,需要先获取视频播放凭证。
- public static void main(String[] args) throws ClientException {
- // 创建初始化对象
- DefaultAcsClient client = InitObject.initVodClient("accessKeyId", "accessKeySecret");
-
- // 创建获取视频地址的 request 和 response
- GetPlayInfoRequest request = new GetPlayInfoRequest();
- GetPlayInfoResponse response = new GetPlayInfoResponse();
-
- // 向request对象设置视频id
- request.setVideoId("videoId");
-
- // 调用初始化对象的方法获取视频播放地址
- response = client.getAcsResponse(request);
- List
playInfoList = response.getPlayInfoList(); - //播放地址
- for (GetPlayInfoResponse.PlayInfo playInfo : playInfoList) {
- System.out.print("PlayInfo.PlayURL = " + playInfo.getPlayURL() + "\n");
- }
- //Base信息
- System.out.print("VideoBase.Title = " + response.getVideoBase().getTitle() + "\n");
-
- }
解决方法:改变 gson 的版本,这里改到 2.8.6 版本即可运行
官方文档:音视频播放
- /**
- * 获取视频凭证
- * @throws ClientException
- */
- @Test
- public void testGetPlayAuth() throws ClientException {
- // 根据视频id获取播放凭证
- // 创建初始化对象
- DefaultAcsClient client = InitObject.initVodClient("accessKeyId", "accessKeySecret");
-
- // 创建获取视频凭证的 request 和 response
- GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
- GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse();
-
- // 向request对象设置视频id
- request.setVideoId("videoId");
-
- // 调用初始化对象的方法获取视频播放凭证
- response = client.getAcsResponse(request);
- //播放凭证
- System.out.print("PlayAuth = " + response.getPlayAuth() + "\n");
- //VideoMeta信息
- System.out.print("VideoMeta.Title = " + response.getVideoMeta().getTitle() + "\n");
- }
官方文档:Java上传SDK
先引入不需要手动下载的依赖,这里我修改了一下 fastjson 的版本
- <dependency>
- <groupId>com.aliyungroupId>
- <artifactId>aliyun-java-sdk-coreartifactId>
- <version>4.5.1version>
- dependency>
- <dependency>
- <groupId>com.aliyun.ossgroupId>
- <artifactId>aliyun-sdk-ossartifactId>
- <version>3.10.2version>
- dependency>
- <dependency>
- <groupId>com.aliyungroupId>
- <artifactId>aliyun-java-sdk-vodartifactId>
- <version>2.16.11version>
- dependency>
- <dependency>
- <groupId>com.alibabagroupId>
- <artifactId>fastjsonartifactId>
- <version>1.2.83version>
- dependency>
- <dependency>
- <groupId>org.jsongroupId>
- <artifactId>jsonartifactId>
- <version>20170516version>
- dependency>
- <dependency>
- <groupId>com.google.code.gsongroupId>
- <artifactId>gsonartifactId>
- <version>2.8.2version>
- dependency>
然后引入要下载的依赖。首先要下载 Java 上传 SDK,下载地址:SDK简介与下载,下载后解压,进入解压后的文件夹,进入 VODUploadDemo-java-1.4.15/lib 目录,打开 cmd,输入下面指令将 aliyun-java-vod-upload-1.4.15.jar 安装到本地 Maven 仓库
mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.15 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.15.jar
说明:
-DgroupId 和 -DartifactId 是坐标
-Dversion 是版本
-Dpackaging 是文件类型,jar 就是 jar 包
-Dfile 是文件名
然后引入该依赖即可
- <dependency>
- <groupId>com.aliyungroupId>
- <artifactId>aliyun-sdk-vod-uploadartifactId>
- <version>1.4.15version>
- dependency>
官方文档:Java上传SDK
- /**
- * 本地上传视频
- */
- @Test
- public void testUploadVideo() {
- String accessKeyId = "";
- String accessKeySecret = "";
- String title = "本地上传1"; // 上传的文件在阿里云显示的名字
- String fileName = "C:\\Users\\zhang\\Desktop\\2\\jump.mp4"; // 本地文件路径和名称
-
- UploadVideoRequest request = new UploadVideoRequest(accessKeyId, accessKeySecret, title, fileName);
- /* 可指定分片上传时每个分片的大小,默认为2M字节 */
- request.setPartSize(2 * 1024 * 1024L);
- /* 可指定分片上传时的并发线程数,默认为1,(注:该配置会占用服务器CPU资源,需根据服务器情况指定)*/
- request.setTaskNum(1);
-
- UploadVideoImpl uploader = new UploadVideoImpl();
- UploadVideoResponse response = uploader.uploadVideo(request);
- System.out.print("RequestId=" + response.getRequestId() + "\n"); //请求视频点播服务的请求ID
- if (response.isSuccess()) {
- System.out.print("VideoId=" + response.getVideoId() + "\n");
- } else {
- /* 如果设置回调URL无效,不影响视频上传,可以返回VideoId同时会返回错误码。其他情况上传失败时,VideoId为空,此时需要根据返回错误码分析具体错误原因 */
- System.out.print("VideoId=" + response.getVideoId() + "\n");
- System.out.print("ErrorCode=" + response.getCode() + "\n");
- System.out.print("ErrorMessage=" + response.getMessage() + "\n");
- }
- }