• 阿里云视频点播


    目录

    1、基本使用

    1.1、手动上传视频

    1.2、配置转码模板

    1.3、获取 视频播放地址 及 web播放器代码

    2、服务器 SDK

    2.1、安装(引入依赖)

    2.2、初始化

    2.3、获取视频播放地址

    问题:java.lang.NoSuchMethodError: com.google.gson.JsonParser.parseString(Ljava/lang/String;)Lcom/google/gson/JsonElement;

    2.4、视频播放凭证

    3、上传 SDK

    3.1、安装(引入依赖)

    3.2、上传视频


    1、基本使用

    1.1、手动上传视频

    媒资库 > 音视频 > 单击 上传音/视频 > 单击 添加音/视频 > 选择文件,设置转码模板及其分类 > 单击 开始上传

    若为第一次添加,需要配置存储管理,配置管理 > 媒资管理配置 > 存储管理,若已开通 OSS 服务会自动添加一个存储管理,将其设为默认即可。

    1.2、配置转码模板

    若没有配置转码模板,默认为不转码

    配置管理 > 媒体处理配置 > 转码模板组 > 单击 添加转码模板组 > 选择模板类型 > 设置好后保存即可

    这里讲一下 普通转码模板,可以设置视频 清晰度 和 参数,若封装格式为 hls,可以在下面 高级参数 中设置 视频加密(HLS加密方式,默认开启阿里云私有加密,阿里云私有加密暂不支持iOS系统的网页端播放),加密后无法通过 视频播放地址 直接播放,而是要通过视频 ID 获取凭证后播放。

    1.3、获取 视频播放地址 及 web播放器代码

    媒资库 > 音视频 > 在对应视频行的操作中点击管理,在跳出来的页面即可获取

    2、服务器 SDK

    2.1、安装(引入依赖)

    官方文档:安装

    1. <dependency>
    2. <groupId>com.aliyungroupId>
    3. <artifactId>aliyun-java-sdk-coreartifactId>
    4. <version>4.6.0version>
    5. dependency>
    6. <dependency>
    7. <groupId>com.aliyungroupId>
    8. <artifactId>aliyun-java-sdk-vodartifactId>
    9. <version>2.16.11version>
    10. dependency>
    11. <dependency>
    12. <groupId>com.alibabagroupId>
    13. <artifactId>fastjsonartifactId>
    14. <version>1.2.83version>
    15. dependency>
    16. <dependency>
    17. <groupId>com.aliyungroupId>
    18. <artifactId>aliyun-java-sdk-kmsartifactId>
    19. <version>2.10.1version>
    20. dependency>

    2.2、初始化

    官方文档:初始化

    1. public class InitObject {
    2. /**
    3. * 初始化 AccessKey
    4. * @param accessKeyId
    5. * @param accessKeySecret
    6. * @return
    7. * @throws ClientException
    8. */
    9. public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
    10. String regionId = "cn-shanghai"; // 点播服务接入地域
    11. DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
    12. DefaultAcsClient client = new DefaultAcsClient(profile);
    13. return client;
    14. }
    15. }

    2.3、获取视频播放地址

    官方文档:音视频播放

    下面的方法只能用于获取没有加密的视频的播放地址,若获取加密视频的,会报错: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.,需要先获取视频播放凭证。

    1. public static void main(String[] args) throws ClientException {
    2. // 创建初始化对象
    3. DefaultAcsClient client = InitObject.initVodClient("accessKeyId", "accessKeySecret");
    4. // 创建获取视频地址的 request 和 response
    5. GetPlayInfoRequest request = new GetPlayInfoRequest();
    6. GetPlayInfoResponse response = new GetPlayInfoResponse();
    7. // 向request对象设置视频id
    8. request.setVideoId("videoId");
    9. // 调用初始化对象的方法获取视频播放地址
    10. response = client.getAcsResponse(request);
    11. List playInfoList = response.getPlayInfoList();
    12. //播放地址
    13. for (GetPlayInfoResponse.PlayInfo playInfo : playInfoList) {
    14. System.out.print("PlayInfo.PlayURL = " + playInfo.getPlayURL() + "\n");
    15. }
    16. //Base信息
    17. System.out.print("VideoBase.Title = " + response.getVideoBase().getTitle() + "\n");
    18. }

    问题:java.lang.NoSuchMethodError: com.google.gson.JsonParser.parseString(Ljava/lang/String;)Lcom/google/gson/JsonElement;

    解决方法:改变 gson 的版本,这里改到 2.8.6 版本即可运行

    2.4、视频播放凭证

    官方文档:音视频播放

    1. /**
    2. * 获取视频凭证
    3. * @throws ClientException
    4. */
    5. @Test
    6. public void testGetPlayAuth() throws ClientException {
    7. // 根据视频id获取播放凭证
    8. // 创建初始化对象
    9. DefaultAcsClient client = InitObject.initVodClient("accessKeyId", "accessKeySecret");
    10. // 创建获取视频凭证的 request 和 response
    11. GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
    12. GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse();
    13. // 向request对象设置视频id
    14. request.setVideoId("videoId");
    15. // 调用初始化对象的方法获取视频播放凭证
    16. response = client.getAcsResponse(request);
    17. //播放凭证
    18. System.out.print("PlayAuth = " + response.getPlayAuth() + "\n");
    19. //VideoMeta信息
    20. System.out.print("VideoMeta.Title = " + response.getVideoMeta().getTitle() + "\n");
    21. }

    3、上传 SDK

    官方文档:Java上传SDK

    3.1、安装(引入依赖)

    先引入不需要手动下载的依赖,这里我修改了一下 fastjson 的版本

    1. <dependency>
    2. <groupId>com.aliyungroupId>
    3. <artifactId>aliyun-java-sdk-coreartifactId>
    4. <version>4.5.1version>
    5. dependency>
    6. <dependency>
    7. <groupId>com.aliyun.ossgroupId>
    8. <artifactId>aliyun-sdk-ossartifactId>
    9. <version>3.10.2version>
    10. dependency>
    11. <dependency>
    12. <groupId>com.aliyungroupId>
    13. <artifactId>aliyun-java-sdk-vodartifactId>
    14. <version>2.16.11version>
    15. dependency>
    16. <dependency>
    17. <groupId>com.alibabagroupId>
    18. <artifactId>fastjsonartifactId>
    19. <version>1.2.83version>
    20. dependency>
    21. <dependency>
    22. <groupId>org.jsongroupId>
    23. <artifactId>jsonartifactId>
    24. <version>20170516version>
    25. dependency>
    26. <dependency>
    27. <groupId>com.google.code.gsongroupId>
    28. <artifactId>gsonartifactId>
    29. <version>2.8.2version>
    30. 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 是文件名

    然后引入该依赖即可

    1. <dependency>
    2. <groupId>com.aliyungroupId>
    3. <artifactId>aliyun-sdk-vod-uploadartifactId>
    4. <version>1.4.15version>
    5. dependency>

    3.2、上传视频

    官方文档:Java上传SDK

    1. /**
    2. * 本地上传视频
    3. */
    4. @Test
    5. public void testUploadVideo() {
    6. String accessKeyId = "";
    7. String accessKeySecret = "";
    8. String title = "本地上传1"; // 上传的文件在阿里云显示的名字
    9. String fileName = "C:\\Users\\zhang\\Desktop\\2\\jump.mp4"; // 本地文件路径和名称
    10. UploadVideoRequest request = new UploadVideoRequest(accessKeyId, accessKeySecret, title, fileName);
    11. /* 可指定分片上传时每个分片的大小,默认为2M字节 */
    12. request.setPartSize(2 * 1024 * 1024L);
    13. /* 可指定分片上传时的并发线程数,默认为1,(注:该配置会占用服务器CPU资源,需根据服务器情况指定)*/
    14. request.setTaskNum(1);
    15. UploadVideoImpl uploader = new UploadVideoImpl();
    16. UploadVideoResponse response = uploader.uploadVideo(request);
    17. System.out.print("RequestId=" + response.getRequestId() + "\n"); //请求视频点播服务的请求ID
    18. if (response.isSuccess()) {
    19. System.out.print("VideoId=" + response.getVideoId() + "\n");
    20. } else {
    21. /* 如果设置回调URL无效,不影响视频上传,可以返回VideoId同时会返回错误码。其他情况上传失败时,VideoId为空,此时需要根据返回错误码分析具体错误原因 */
    22. System.out.print("VideoId=" + response.getVideoId() + "\n");
    23. System.out.print("ErrorCode=" + response.getCode() + "\n");
    24. System.out.print("ErrorMessage=" + response.getMessage() + "\n");
    25. }
    26. }

  • 相关阅读:
    vue将base64编码转为pdf方法
    QSqlTableModel使用简介
    redux-react多组件进行数据共享
    构建AR视频空间大数据平台(物联网及工业互联网、视频、AI场景识别)
    Mybatis源码解析(八):插件机制
    智能锁控板的主要功能有哪些?如何使用?
    移动端页面如何优雅的适配各种屏幕,包括PC端
    前后端跨域
    ReaLTaiizor开源.NET winform控件库学习使用
    出行生态布局初显!魅族董事长沈子瑜:Flyme系统明年“上车”
  • 原文地址:https://blog.csdn.net/Mr_zhangyj/article/details/127834714