当前位置:   article > 正文

Java SDK实现阿里云视频点播_createuploadvideorequest

createuploadvideorequest

一. 什么是视频点播

1. 简介

        阿里云视频点播(ApsaraVideo VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、高效云剪辑处理、分发加速、视频播放于一体的一站式音视频点播解决方案。

        阿里云视频点播基于阿里云强大的基础设施服务,面向视频网站、短视频、在线教育、娱乐社交、新闻传媒等行业,提供端-云-端的视频全链路服务,帮助企业和开发者快速搭建安全、弹性、高效、可定制的视频点播平台和应用。

2. 功能

(1)支持的上传方式 ——上传

        控制台上传,SDK上传,服务端(JAVA)上传,客户端上传:Web端(JavaScript)、移动端(Android,iOS),离线拉取上传,PC客户端工具上传,并支持直播录制转点播。

(2)媒体管理和生产  ——处理

        视频点播支持对上传后的视频进行管理和剪辑。

(3)分发播放 ——播放

        视频点播支持播放音频和视频文件,您可以通过控制台预览、集成阿里云播放器SDK和集成第三方播放器进行播放。

二. Java SDK实现视频点播

使用视频点播实现音视频上传、存储、处理和播放的整体流程如下:

用户获取上传授权 —— VOD下发上传地址和凭证及VideoId —— 用户上传视频并保存视频ID(VideoId)—— 用户服务端获取播放授权 —— 用户客户端请求播放地址与凭证,VOD下发播放地址与带时效的播放凭证。—— 用户服务端将播放凭证下发给客户端完成视频播放

1. 开通视频点播

(1)登录视频点播控制台

(2)单击开通服务

 (3)选择视频点播服务,仔细阅读并选中视频点播服务协议,点击立即开通

(4)开通完成后,即可进入VOD控制台概览页面,开始使用点播服务。

2. 获取视频上传凭证和播放凭证

初始化

  1. @Value("${aliyun.access-key-id}")
  2. private String accessKeyId;
  3. @Value("${aliyun.access-key-secret}")
  4. private String accessKeySecret;
  5. @PostConstruct
  6. private void initialize(){
  7. String regionId = "cn-shanghai";
  8. DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
  9. defaultAcsClient = new DefaultAcsClient(profile);
  10. }

获取视频上传地址和凭证

  1. /**
  2. * 视频点播的客户端对象
  3. */
  4. private DefaultAcsClient defaultAcsClient;
  5. /**
  6. * 获取视频上传地址和凭证
  7. *
  8. * @param uploadVideo 发送请求客户端
  9. * @return VideoAccessInfo 获取视频上传地址和凭证响应数据
  10. * @throws Exception
  11. */
  12. public VideoAccessInfo createUploadVideo(UploadVideo uploadVideo) throws Exception {
  13. CreateUploadVideoRequest createUploadVideoRequest = transformRequest(uploadVideo);
  14. CreateUploadVideoResponse response = defaultAcsClient.getAcsResponse(createUploadVideoRequest);
  15. return transformResponse(response);
  16. }
  17. /**
  18. * 转换创建响应结果
  19. *
  20. * @param response 创建响应结果
  21. * @return 返回上传地址和凭证信息
  22. */
  23. public VideoAccessInfo transformResponse(CreateUploadVideoResponse response) {
  24. VideoAccessInfo videoAccessInfo = new VideoAccessInfo();
  25. videoAccessInfo.setRequestId(response.getRequestId());
  26. videoAccessInfo.setUploadAddress(response.getUploadAddress());
  27. videoAccessInfo.setUploadAuth(response.getUploadAuth());
  28. videoAccessInfo.setVideoId(response.getVideoId());
  29. return videoAccessInfo;
  30. }

刷新视频上传凭证

  1. /**
  2. * 刷新视频上传凭证
  3. *
  4. * @param refreshUpload 刷新参数
  5. * @return VideoAccessInfo 刷新视频上传凭证响应数据
  6. * @throws Exception
  7. */
  8. public VideoAccessInfo refreshUploadVideo(RefreshUpload refreshUpload) throws Exception {
  9. RefreshUploadVideoRequest request = new RefreshUploadVideoRequest();
  10. request.setVideoId(refreshUpload.getVideoId());
  11. RefreshUploadVideoResponse response = defaultAcsClient.getAcsResponse(request);
  12. return transformResponse(response);
  13. }
  14. /**
  15. * 转换刷新响应结果
  16. *
  17. * @param response 转换刷新响应结果
  18. * @return 返回上传地址和凭证信息
  19. */
  20. public VideoAccessInfo transformResponse(RefreshUploadVideoResponse response) {
  21. VideoAccessInfo videoAccessInfo = new VideoAccessInfo();
  22. videoAccessInfo.setRequestId(response.getRequestId());
  23. videoAccessInfo.setUploadAddress(response.getUploadAddress());
  24. videoAccessInfo.setUploadAuth(response.getUploadAuth());
  25. videoAccessInfo.setVideoId(response.getVideoId());
  26. return videoAccessInfo;
  27. }

获取视频播放凭证

  1. /**
  2. * 获取视频播放凭证信息
  3. *
  4. * @param videoPlayAuthRequest
  5. * @return
  6. */
  7. public VideoPlayAuthVo getVideoPlayAuth(VideoPlayAuthRequest videoPlayAuthRequest) throws ClientException {
  8. GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
  9. request.setVideoId(videoPlayAuthRequest.getVideoId());
  10. request.setAuthInfoTimeout(videoPlayAuthRequest.getAuthInfoTimeout());
  11. return transformResponse(defaultAcsClient.getAcsResponse(request));
  12. }
  13. /**
  14. * 转换获取播放凭证响应结果
  15. *
  16. * @param response
  17. * @return
  18. */
  19. private VideoPlayAuthVo transformResponse(GetVideoPlayAuthResponse response) {
  20. VideoPlayAuthVo videoPlayAuthVo = new VideoPlayAuthVo();
  21. videoPlayAuthVo.setRequestId(response.getRequestId());
  22. videoPlayAuthVo.setPlayAuth(response.getPlayAuth());
  23. videoPlayAuthVo.setCoverURL(response.getVideoMeta().getCoverURL());
  24. videoPlayAuthVo.setDuration(response.getVideoMeta().getDuration());
  25. videoPlayAuthVo.setStatus(response.getVideoMeta().getStatus());
  26. videoPlayAuthVo.setTitle(response.getVideoMeta().getTitle());
  27. videoPlayAuthVo.setVideoId(response.getVideoMeta().getVideoId());
  28. return videoPlayAuthVo;
  29. }

注意:客户端上传只能上传单个文件,服务端上传可以批量上传。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/246026
推荐阅读
相关标签
  

闽ICP备14008679号