阿里视频点播服务
1,API:阿里云提供给固定的地址,只需要调用这个固定的地址,像地址传递参数实现功能。
2,SDK:SDK对api方式进行封装,更方便使用。
httpclient技术用来调取api地址(Httpclient不需要浏览器就可以实现请求响应过程)
3,导入坐标
</properties> <dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </dependency> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-vod</artifactId> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-sdk-vod-upload</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> </dependency> </dependencies>
其中
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-sdk-vod-upload</artifactId> </dependency>
这个坐标会报错,是aliyun-sdk-vod-upload
没有开源,所以不能直接在pom文件中直接引用依赖
在这个链接查看上传SDK历史版本
Java上传SDK - 视频点播 - 阿里云 找到1.4.1点击下载
然后在下载好的解压缩文件的VODUploadDemo-java-1.4.11/bin 下在地址栏输入cmd,然后执行命令:
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
idea退出从新刷新一下就好了
================================================================================================
1,初始化直接看文档
2,实现根据视频id获取视频播放地址
1 //根据视频id获取视频播放地址 2 //创建初始化对象 3 DefaultAcsClient client = InitObject.initVodClient("LTAI5tKQjKtXhQz6hDpFmF93", 4 "R5sttyyGt17PB3Y8QxzSNUYe4Bt13c"); 5 6 //创建获取视频地址的request和response 7 GetPlayInfoRequest request = new GetPlayInfoRequest(); 8 GetPlayInfoResponse response = new GetPlayInfoResponse(); 9 //向request对象设置视频id 10 request.setVideoId("2e570fc0a20243ec9c9e72b352bab29e"); 11 //调用初始化对象里面的方法,传递request获取数据 12 response = client.getAcsResponse(request); 13 List<GetPlayInfoResponse.PlayInfo> playInfoList = response.getPlayInfoList(); 14 //播放地址 15 for (GetPlayInfoResponse.PlayInfo playInfo : playInfoList) { 16 System.out.print("PlayInfo.PlayURL = " + playInfo.getPlayURL() + "\n"); 17 } 18 //Base信息 19 System.out.print("VideoBase.Title = " + response.getVideoBase().getTitle() + "\n"); 20 }
3,实现根据视频id获取视频播放凭证(用于获取加密视频)
1 //根据视频id获取视频播放凭证 2 //创建初始化对象 3 DefaultAcsClient client = InitObject.initVodClient("LTAI5tKQjKtXhQz6hDpFmF93", "R5sttyyGt17PB3Y8QxzSNUYe4Bt13c"); 4 //创建获取视频地址的request和response 5 GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest(); 6 GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse(); 7 //向request对象设置视频id 8 request.setVideoId("2e570fc0a20243ec9c9e72b352bab29e"); 9 //调用初始化对象里面的方法得到凭证 10 response=client.getAcsResponse(request); 11 System.out.print("PlayAuth = " + response.getPlayAuth() + "\n"); 12 //VideoMeta信息 13 System.out.print("VideoMeta.Title = " + response.getVideoMeta().getTitle() + "\n");
4,上传本地视频
String accessKeyId = "LTAI5tKQjKtXhQz6hDpFmF93"; String accessKeySecret = "R5sttyyGt17PB3Y8QxzSNUYe4Bt13c"; String title = "测试上传视频"; //上传之后文件名称 String fileName = "C:/Users/lenovo/OneDrive/桌面/上传视频.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); 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"); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了