阿里云视频点播服务SDK的使用,视频文件上传测试
文章目录
- 阿里云视频点播技术简介
- 一、阿里云视频点播技术能力盘点
- 1、应用场景
- 2、功能介绍
- 二、开通视频点播云平台
- 1、选择视频点播服务
- 2、开通视频点播
- 3、选择按使用流量计费
- 4、资费说明
- 5、整体流程
- 三、视频点播服务的基本使用
- 1、设置转码格式
- 2、分类管理
- 3、上传视频文件
- 4、配置域名
- 5、在控制台查看视频
- 6、获取web播放器代码
- 使用服务端SDK
- 一、服务端SDK
- 1、简介
- 2、功能介绍
- 二、使用SDK
- 1、安装
- 2、初始化
- 3、创建测试类
- 三、创建测试用例
- 1、获取视频播放凭证
- 2、获取视频播放地址
- 文件上传测试
- 一、安装SDK
- 1、配置pom
- 2、安装非开源jar包
- 二、测试
- 1、创建测试文件
阿里云视频点播技术简介
一、阿里云视频点播技术能力盘点
视频点播(ApsaraVideo for VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速于一体的一站式音视频点播解决方案。
找到视频点播
https://www.aliyun.com/activity/new?utm_content=se_1011323120
1、应用场景
- 音视频网站:无论是初创视频服务企业,还是已拥有海量视频资源,可定制化的点播服务帮助客户快速搭建拥有极致观看体验、安全可靠的视频点播应用。
- 短视频:集音视频拍摄、特效编辑、本地转码、高速上传、自动化云端转码、媒体资源管理、分发加速、播放于一体的完整短视频解决方案。目前已帮助1000+APP快速实现手机短视频功能。
- 直播转点播:将直播流同步录制为点播视频,用于回看。并支持媒资管理、媒体处理(转码及内容审核/智能首图等AI处理)、内容制作(云剪辑)、CDN分发加速等一系列操作。
- 在线教育:为在线教育客户提供简单易用、安全可靠的视频点播服务。可通过控制台/API等多种方式上传教学视频,强大的转码能力保证视频可以快速发布,覆盖全网的加速节点保证学生观看的流畅度。防盗链、视频加密等版权保护方案保护教学内容不被窃取。
- 视频生产制作:提供在线可视化剪辑平台及丰富的OpenAPI,帮助客户高效处理、制作视频内容。除基础的剪切拼接、混音、遮标、特效、合成等一系列功能外,依托云剪辑及点播一体化服务还可实现标准化、智能化剪辑生产,大大降低视频制作的槛,缩短制作时间,提升内容生产效率。
- 内容审核:应用于短视频平台、传媒行业审核等场景,帮助客户从从语音、文字、视觉等多维度精准识别视频、封面、标题或评论的违禁内容进行AI智能审核与人工审核。
2、功能介绍
二、开通视频点播云平台
1、选择视频点播服务
产品->企业应用->视频云->视频点播
2、开通视频点播
3、选择按使用流量计费
4、资费说明
https://www.aliyun.com/price/product?spm=a2c4g.11186623.2.12.7fbd59b9vmXVN6#/vod/detail
后付费
套餐包
欠费说明
计费案例:https://help.aliyun.com/document_detail/64032.html?spm=a2c4g.11186623.4.3.363db1bcfdvxB5
5、整体流程
使用视频点播实现音视频上传、存储、处理和播放的整体流程如下:
- 用户获取上传授权。
- VoD下发 上传地址和凭证 及 VideoId。
- 用户上传视频保存视频ID(VideoId)。
- 用户服务端获取播放凭证。
- VoD下发带时效的播放凭证。
- 用户服务端将播放凭证下发给客户端完成视频播放。
三、视频点播服务的基本使用
完整的参考文档
三、视频点播服务的基本使用
完整的参考文档
https://help.aliyun.com/product/29932.html?spm=a2c4g.11186623.6.540.3c356a58OEmVZJ
1、设置转码格式
选择全局设置 > 转码设置,单击添加转码模板组。
在视频转码模板组页面,根据业务需求选择封装格式和清晰度。
或直接将已有的模板设置为默认即可
2、分类管理
选择全局设置 > 分类管理
3、上传视频文件
选择媒资库 > 音视频,单击上传音视频
4、配置域名
音视频上传完成后,必须配一个已备案的域名,并完成CNAME绑定
5、在控制台查看视频
此时视频可以在阿里云控制台播放
6、获取web播放器代码
使用服务端SDK
一、服务端SDK
1、简介
sdk的方式将api进行了进一步的封装,不用自己创建工具类。
我们可以基于服务端SDK编写代码来调用点播API,实现对点播产品和服务的快速操作。
2、功能介绍
- SDK封装了对API的调用请求和响应,避免自行计算较为繁琐的 API签名。
- 支持所有点播服务的API,并提供了相应的示例代码。
- 支持7种开发语言,包括:Java、Python、PHP、.NET、Node.js、Go、C/C++。
- 通常在发布新的API后,我们会及时同步更新SDK,所以即便您没有找到对应API的示例代码,也可以参考旧的示例自行实现调用。
二、使用SDK
1、安装
参考文档:https://help.aliyun.com/document_detail/57756.html
添加maven仓库的配置和依赖到pom
<repositories><repository><id>sonatype-nexus-staging</id><name>Sonatype Nexus Staging</name><url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository>
</repositories>
<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>
2、初始化
参考文档:https://help.aliyun.com/document_detail/61062.html
根据文档示例创建 AliyunVODSDKUtils.java
package com.atguigu.aliyunvod.util;
public class AliyunVodSDKUtils {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;}
}
3、创建测试类
创建 VodSdkTest.java
package com.atguigu.aliyunvod;
public class VodSdkTest {String accessKeyId = "你的accessKeyId";String accessKeySecret = "你的accessKeySecret";}
三、创建测试用例
参考文档:https://help.aliyun.com/document_detail/61064.html
1、获取视频播放凭证
根据文档中的代码,修改如下
/*** 获取视频播放凭证* @throws ClientException*/
@Test
public void testGetVideoPlayAuth() throws ClientException {//初始化客户端、请求对象和相应对象DefaultAcsClient client = AliyunVodSDKUtils.initVodClient(accessKeyId, accessKeySecret);GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse();try {//设置请求参数request.setVideoId("视频ID");//获取请求响应response = client.getAcsResponse(request);//输出请求结果//播放凭证System.out.print("PlayAuth = " + response.getPlayAuth() + "\n");//VideoMeta信息System.out.print("VideoMeta.Title = " + response.getVideoMeta().getTitle() + "\n");} catch (Exception e) {System.out.print("ErrorMessage = " + e.getLocalizedMessage());}System.out.print("RequestId = " + response.getRequestId() + "\n");
}
2、获取视频播放地址
/*** 获取视频播放地址* @throws ClientException*/
@Test
public void testGetPlayInfo() throws ClientException {//初始化客户端、请求对象和相应对象DefaultAcsClient client = AliyunVodSDKUtils.initVodClient(accessKeyId, accessKeySecret);GetPlayInfoRequest request = new GetPlayInfoRequest();GetPlayInfoResponse response = new GetPlayInfoResponse();try {//设置请求参数//注意:这里只能获取非加密视频的播放地址request.setVideoId("视频ID");//获取请求响应response = client.getAcsResponse(request);//输出请求结果List<GetPlayInfoResponse.PlayInfo> 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");} catch (Exception e) {System.out.print("ErrorMessage = " + e.getLocalizedMessage());}System.out.print("RequestId = " + response.getRequestId() + "\n");
}
文件上传测试
参考文档:https://help.aliyun.com/document_detail/53406.html
一、安装SDK
1、配置pom
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.3.3</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-vod</artifactId><version>2.15.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.28</version></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20170516</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency>
2、安装非开源jar包
注意:
由于部分jar包官方并没有正式开源 所以需要手动导入,详细看API
https://help.aliyun.com/document_detail/53406.html
在本地Maven仓库中安装jar包:
下载视频上传SDK,解压,命令行进入lib目录,执行以下代码
mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.11 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.11.jar
然后在pom中引入jar包
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-sdk-vod-upload</artifactId><version>1.4.11</version>
</dependency>
二、测试
1、创建测试文件
@org.junit.Testpublic void addVod(){String accessKeyId = "LTAI5tAfVL8z2XS7kifne2d9";String accessKeySecret = "D7ZnweBh6KkLwrzUYDOx63JsIlQvGs";String title = "textdemo01-INSPIRE";String fileName = "C:\\Users\\asus\\Videos\\INSPIRE.mp4";UploadVideoRequest request = new UploadVideoRequest(accessKeyId, accessKeySecret, title, fileName);/* 可指定分片上传时每个分片的大小,默认为2M字节 */request.setPartSize(2 * 1024 * 1024L);/* 可指定分片上传时的并发线程数,默认为1,(注:该配置会占用服务器CPU资源,需根据服务器情况指定)*/request.setTaskNum(1);
// /* 是否开启断点续传, 默认断点续传功能关闭。当网络不稳定或者程序崩溃时,再次发起相同上传请求,可以继续未完成的上传任务,适用于超时3000秒仍不能上传完成的大文件。
// 注意: 断点续传开启后,会在上传过程中将上传位置写入本地磁盘文件,影响文件上传速度,请您根据实际情况选择是否开启*/
// //request.setEnableCheckpoint(false);
// /* OSS慢请求日志打印超时时间,是指每个分片上传时间超过该阈值时会打印debug日志,如果想屏蔽此日志,请调整该阈值。单位: 毫秒,默认为300000毫秒*/
// //request.setSlowRequestsThreshold(300000L);
// /* 可指定每个分片慢请求时打印日志的时间阈值,默认为300s*/
// //request.setSlowRequestsThreshold(300000L);
// /* 是否显示水印(可选),指定模板组ID时,根据模板组配置确定是否显示水印*/
// //request.setIsShowWaterMark(true);
// /* 自定义消息回调设置(可选),参数说明参考文档 https://help.aliyun.com/document_detail/86952.html#UserData */
// // request.setUserData("{\"Extend\":{\"test\":\"www\",\"localId\":\"xxxx\"},\"MessageCallback\":{\"CallbackURL\":\"http://test.test.com\"}}");
// /* 视频分类ID(可选) */
// //request.setCateId(0);
// /* 视频标签,多个用逗号分隔(可选) */
// //request.setTags("标签1,标签2");
// /* 视频描述(可选) */
// //request.setDescription("视频描述");
// /* 封面图片(可选) */
// //request.setCoverURL("http://cover.sample.com/sample.jpg");
// /* 模板组ID(可选) */
// //request.setTemplateGroupId("8c4792cbc8694e7084fd5330e56a33d");
// /* 工作流ID(可选) */
// //request.setWorkflowId("d4430d07361f0*be1339577859b0177b");
// /* 存储区域(可选) */
// //request.setStorageLocation("in-201703232118266-5sejdln9o.oss-cn-shanghai.aliyuncs.com");
// /* 开启默认上传进度回调 */
// //request.setPrintProgress(false);
// /* 设置自定义上传进度回调 (必须继承 VoDProgressListener) */
// //request.setProgressListener(new PutObjectProgressListener());
// /* 设置您实现的生成STS信息的接口实现类*/
// // request.setVoDRefreshSTSTokenListener(new RefreshSTSTokenImpl());
// /* 设置应用ID*/
// //request.setAppId("app-1000000");
// /* 点播服务接入点 */
// //request.setApiRegionId("cn-shanghai");
// /* ECS部署区域*/
// // request.setEcsRegionId("cn-shanghai");UploadVideoImpl uploader = new UploadVideoImpl();UploadVideoResponse response = uploader.uploadVideo(request);System.out.print("RequestId=" + response.getRequestId() + "\n"); //请求视频点播服务的请求IDif (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");}}
阿里云视频点播服务SDK的使用,视频文件上传测试相关推荐
- 微信小程序云开发---vant组件 van-uploader 实现视频文件上传到云存储,发动态功能
pages/upVideo.wxml //获取用户的头像和昵称展示 <view class="headerBox"><image src="{{user ...
- Golang操作阿里云视频点播服务上传音视频
刚刚了解了OSS存储,现在需要了解视频点播服务,什么是视频点播服务?为什么需要视频点播服务?OSS存储不是可以直接存储视频吗? 其实我也不很清楚,只是大体上知道视频点播服务是专门云端存储视频的,相比于 ...
- springboot整合阿里云视频点播服务Vod——实现视频上传、删除、播放
视频点播(ApsaraVideo VoD,简称VoD)是集视频采集.编辑.上传.媒体资源管理.自动化转码处理(窄带高清™).视频审核分析.分发加速于一体的一站式音视频点播解决方案. 阿里云视频点播服务 ...
- 阿里云视频点播服务Vod工具类——实现视频上传、删除、播放
阿里云视频点播服务Vod工具类--实现视频上传.删除.播放 阿里云视频点播服务Vod工具类 maven依赖 工具类实现 工具类的测试 获取视频 1. 获取单个视频的播放地址和ID: 2. 获取所有视频 ...
- 阿里云视频点播服务的开通和使用
阿里云视频点播服务的开通和使用 文章目录 阿里云视频点播服务的开通和使用 前言:什么是阿里云视频点播服务? 一.开通阿里云视频点播服务 二.控制台基本操作 三.JAVA JDK操作阿里云视频点播服务 ...
- 谷粒学院day09——课程发布与阿里云视频点播服务
day9 课程信息确认与视频点播 1.课程信息确认 1.1 后端实现 1.2 前端实现 2.课程的最终发布 3.课程列表功能 4.课程删除功能 5.阿里云视频点播 5.1 获取视频地址 5.2 获取视 ...
- Spring Boot集成阿里云视频点播服务的过程记录
阿里云视频点播 效果预览 视频点播 视频点播概述 功能 优势 流程 环境准备 开通视频点播 创建RAM用户并授权 上传SDK 上传流程 下载上传SDK 安装上传SDK 集成Java上传SDK 异常说明 ...
- 阿里云视频点播PHP sdk上传文件
我们使用的是PHP VodUploadSDK-PHP_1.0.2 sdk参考文档地址: https://help.aliyun.com/document_detail/100976.html?spm= ...
- Springboot整合阿里云视频点播服务
目录 一.阿里云视频点播服务 二.开通视频点播云平台 1.搜索视频点播服务 2.开通视频点播 3.选择按使用流量计费 三.使用SDK 1.添加Jar包依赖 2.application.properti ...
最新文章
- mac好用大java_好用,小个头大本事!Mac下轻量级清理软件。
- java多线程------实现多线程两种方式
- 小孩都看得懂的推荐系统
- mac使用brew update无反应解决办法
- java中一个线程最小优先数_Java线程的优先级
- Android系统(24)---Android应用架构
- BCB 连接数据库和查询数据
- Socket TCP UDP
- Matlab中数组的常见用法
- 如何将浮点数点左边的数每三位添加一个逗号,如12000000.11转化为『12,000,000.11』...
- 木马 --- 基本概念和分类
- vue验证码图片显示不出来,将图片转换为base64格式显示
- 欧阳青C语言,[转载]恨君爱 作者 欧阳青
- 用友U9 BP不执行
- css3中-moz、-ms、-webkit、-o 各是什么意思
- 手上长有透明液体的小疙瘩并脱皮怎么办?
- 【干货】剖析大数据分析方法论的几种理论模型(文末有福利哦)
- 让App推广运营更高效,必须要有这几大功能!
- iOS客户端开启FTP,其他设备访问手机本地文件操作实现
- 凡事不可过....久视伤血,久卧伤气,久坐伤肉,久立伤骨,久行伤筯(摘于好友QQ)
热门文章
- 磁碟机变种简单分析(lsass.exe、smss.exe、dnsq.dll、NetApi000.sys)
- Java 计算奇数偶数
- 系统性能优化的十大策略(强烈推荐,建议收藏)
- 计算机提示无法识别usb,电脑提示“无法识别的USB设备”如何解决?
- 抖音协议算法教- API学习
- 埃尔米特曲线 Hermite Curve
- 【每日随笔】记录完整的劳动仲裁过程 一 ( 赢火虫律师平台 | 赢火虫手机端跟进案件信息 | 等待律师接单 | 提交信息给律师 )
- 一秒解决笔记本无法连接网络问题——解决笔记本插网线,显示未识别网络。
- scratch python插件_scratch插件开发文档
- origin画对数坐标_Origin 画对数坐标图