阿里云视频转码(媒体处理)

有的视频上传后只有声音 没有视频 如下图

实现步骤

1. 设置oss上传的基础属性

endPoint 等信息从阿里云控制台获取然后保存到application.yml中

2.导入依赖

     <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.5.0</version></dependency>

3. 先上传一个视频

 /*** 视频转码 只能对已经上传到阿里云oss中的视频进行转码处理 故不考虑将视频保存到相对路径临时文件中*/@Testvoid testTranFromH264Vide(){//上传视频File file = new File(videoUrl);System.out.println(file.getName());String uploadUrl = objectName + file.getName();// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, uploadUrl, new ByteArrayInputStream(FileUtils.file2Byte(file)));// 关闭OSSClient。ossClient.shutdown();//返回文件的路径System.out.println("https://"+bucketName+"."+endPoint+"/"+uploadUrl);}

上传成功

4. 创建转码模板和管道

进入媒体管理控制台 (如果未开通服务需开通)

5. 将模板的id和管道的id加入配置文件

6. 添加转码的依赖

     <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-mts</artifactId><version>2.5.2</version></dependency>

7. 上传视频及转码实现

先删除刚刚上传的视频 然后执行下面的代码

 /*** 视频转码 只能对已经上传到阿里云oss中的视频进行转码处理 故不考虑将视频保存到相对路径临时文件中*/@Testvoid testTranFromH264Vide() {//上传视频File file = new File(videoUrl);System.out.println(file.getName());String uploadUrl = objectName + file.getName();// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, uploadUrl, new ByteArrayInputStream(FileUtils.file2Byte(file)));// 关闭OSSClient。ossClient.shutdown();//返回文件的路径String saveOssUrl = "https://" + bucketName + "." + endPoint + "/" + uploadUrl;System.out.println(saveOssUrl);// ------------------------------------------------------------------------------------------------------------//转码后的文件储存路径String tranUploadVideoUrl = objectName+"(转码)"+file.getName();// 创建DefaultAcsClient实例并初始化DefaultProfile profile = DefaultProfile.getProfile(endPoint.substring(4, endPoint.lastIndexOf(".aliyuncs")),      //accessKeyId,      //accessKeySecret); //String ossLocation = endPoint.substring(0, endPoint.indexOf(".aliyuncs"));IAcsClient client = new DefaultAcsClient(profile);// 创建API请求并设置参数SubmitJobsRequest request = new SubmitJobsRequest();// InputJSONObject input = new JSONObject();input.put("Location", ossLocation);input.put("Bucket", bucketName);try {input.put("Object", URLEncoder.encode(uploadUrl, "utf-8"));} catch (UnsupportedEncodingException e) {throw new RuntimeException("input URL encode failed");}request.setInput(input.toJSONString());// OutputString outputOSSObject;try {outputOSSObject = URLEncoder.encode(tranUploadVideoUrl, "utf-8");} catch (UnsupportedEncodingException e) {throw new RuntimeException("output URL encode failed");}JSONObject output = new JSONObject();output.put("OutputObject", outputOSSObject);// Ouput->ContainerJSONObject container = new JSONObject();container.put("Format", "mp4");output.put("Container", container.toJSONString());// Ouput->VideoJSONObject video = new JSONObject();video.put("Codec", "H.264");video.put("Bitrate", "1500");video.put("Width", "1280");video.put("Fps", "25");output.put("Video", video.toJSONString());// Ouput->AudioJSONObject audio = new JSONObject();audio.put("Codec", "AAC");audio.put("Bitrate", "128");audio.put("Channels", "2");audio.put("Samplerate", "44100");output.put("Audio", audio.toJSONString());// Ouput->TemplateIdoutput.put("TemplateId", templateId);JSONArray outputs = new JSONArray();outputs.add(output);request.setOutputs(outputs.toJSONString());request.setOutputBucket(bucketName);request.setOutputLocation(ossLocation);// PipelineIdrequest.setPipelineId(pipelineId);// 发起请求并处理应答或异常SubmitJobsResponse response;try {response = client.getAcsResponse(request);if (response.getJobResultList().get(0).getSuccess()) {log.info("transform to H264 success");} else {log.error("transform to H264 fail");}} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}//todo 删除原来的未转码文件 或手动删除//返回转码成功后的urlSystem.out.println("转码后的url:"+"https://" + bucketName + "." + endPoint + "/"+tranUploadVideoUrl);}

得到的返回的图片的url

8. 转码后的视频可正常播放

oss视频转码处理(解决部分浏览器无法正常播放问题)相关推荐

  1. oss 视频 转码_播放oss问题的搜索结果-阿里云开发者社区

    OSS 咨询 作者:张医博 浅谈 本章介绍一些基本的 oss 的咨询内容,问题是一直在补充的,不定期的进行更新: 问:cdn 结合 oss,oss 地址被暴露后如何处理 答: 暴露后无法组织别人访问你 ...

  2. 解决google浏览器无法自动播放音视频问题

    浏览器报错:Unmuting failed and the element was paused instead because the user didn't interact with the d ...

  3. 解决Chrome浏览器无法自动播放音频视频的问题,Uncaught(in promise) DOMException

    转载http://www.nooong.com/docs/chrome_video_autoplay.htm 在最新版的Chrome浏览器(以及所有以Chromium为内核的浏览器)中,已不再允许自动 ...

  4. oss 视频 转码_OSS 视频转码

    @RequestMapping("/simpleTranscode") public void SimpleTranscode(HttpServletRequest req, Ht ...

  5. 解决Chrome浏览器无法自动播放音频视频的问题

    谷歌浏览器做了改革,不再允许自动播放音频和视频.Chrome只允许用户对网页进行主动触发后才可自动播放音频和视频. <video autoplay></video> 所以好多需 ...

  6. 网站视频解析 有的url资源放在浏览器能直接播放,有的却不行。

    1有的视频url放在浏览器地址栏,回车能直接播放 2.有的视频url却直接下载下来一个 很短暂的m3u8文件, 且不能播放 这时候把视频url放在 vlc 或者专门解析m3u8的网站上却能直接播放: ...

  7. 视频在H5页面在微信浏览器不能自动播放问题

    //引用官方的JS文件 <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script& ...

  8. js解决chrome浏览器无法自动播放音频

    先随便设置下audio路径 <audio src="xxx.mp3" id="video" ref="video"></a ...

  9. UC浏览器电脑版播放视频时出现崩溃怎么解决

    UC浏览器是一款功能强大的电脑浏览器.最近小编看到有用户反映播放视频的时候出现崩溃,这个该怎么解决呢?下面小编就来告诉你. UC浏览器电脑版播放视频时出现崩溃怎么解决 UC浏览器电脑版播放视频时出现崩 ...

最新文章

  1. 团队作业1——团队展示选题
  2. 「镁客早报」任正非称对苹果等对手出售5G芯片持开放态度;马斯克称未来12个月内将生产超过50万辆车...
  3. [云炬创业基础笔记]第二章创业者测试3
  4. 日期和时间 - Java处理日期和时间
  5. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例
  6. 看完此文章若你还不能完美的入门Python,我将永远退出IT界
  7. Spring框架 注解
  8. 在ubuntu - linux系统下装TensorFlow(虚拟机)
  9. 手机APP ~ MUI——创建页面方法
  10. 借助YunOS ,开发技术、运营能力大幅提升
  11. 二阶魔方还原 - 4步2公式
  12. 5.0 数据库完整性详解(PRIMARY KEY、REFERENCES、CHECK、CONSTRAINT、DOMAIN、TRIGGER)
  13. 人工智能+智能运维解决方案_如何建立对人工智能解决方案的信任
  14. ABBYY FineReader Pro for Mac有哪些特性(下)
  15. Cisco 静态路由设计计算机网络课设/实验(含.pkt文件)
  16. 入职体检尿常规检查什么?
  17. Failed to launch wechat web devTools, please make sure http port is open【自动化测试】
  18. JDK的下载,配置环境变量,JDK百度云盘链接
  19. 【区块链】数字货币-CCCX
  20. linux中who命令显示的pts/0和(:0)(:0.0)是什么意思?

热门文章

  1. 如何优雅地跟老板请假?
  2. WordPress树叶飘落特效插件1.2
  3. Pinyin4j导读
  4. 抗衰老秘方盘点:枸杞子可养肝防衰老
  5. fsleyes -- 一款多功能影像数据查看器
  6. Android做3D旋转动画,Android编程实现3D旋转效果实例
  7. 中兴ZXQ10排队机出现问题了...
  8. 4.输入10个字符,统计里面大写英文的个数
  9. linux socket write()函数阻塞卡住线程问题(线程无法结束)write()非阻塞代码
  10. python基础——文件与IO