在上一篇文章中,我们介绍了如何借助 百度开放云的文档转码服务 来方便的处理各种文档格式,同时还可以借助跨平台的文档播放器来方便的查看转码之后的效果。

在这篇文章里面,我们继续介绍,如何借助百度开放云的视频转码服务,方便的处理各种视频格式,同时借助跨平台的播放器,方便的查看视频转码之后的效果

安装 bce-bos-uploader

我们不直接使用 bce-sdk-js,因为默认情况下,bce-sdk-js 只能支持现代浏览器,不过我们在 bce-bos-uploader 里面对于网络交互的部分,进行了适配,因此可以在比较低版本的IE下面运行。

bower install bce-bos-uploader

页面中引用相关的资源

<!--[if lt IE 8]><script src="bower_components/json3/lib/json3.min.js"></script><![endif]-->
<!--[if lt IE 9]><script src="bower_components/js-polyfills/es5.js"></script><![endif]-->
<!--[if lt IE 10]><script src="bower_components/moxie/bin/js/moxie.min.js"></script><![endif]-->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bce-bos-uploader/bce-bos-uploader.bundle.min.js"></script>

默认配置

var AK = 'your ak';
var SK = 'your sk';
var VOD_ENDPOINT = 'http://vod.baidubce.com';
var BOS_ENDPOINT = 'https://bj.bcebos.com';
var CHUNK_SIZE = '1m';

初始化 VodClient

视频转码的流程如下:

  1. 调用 vod 的 API,获取文件需要存储到 bos 上面的 bucket 和 object 名称

  2. 调用 uploader 的 API,把文件上传到 bos

  3. 调用 vod 的 API,启动转码任务

var vod = new baidubce.sdk.VodClient({endpoint: DOC_ENDPOINT,credentials: {ak: AK, sk: SK}
});

我们把文件上传到 BOS 之前,需要调用 vod 的 API,获取应该文件的存在位置:

function getVodKey(file) {return vod.buildRequest('POST', null, 'apply').then(function (response) {var mediaId = response.body.mediaId;var bucket = response.body.sourceBucket;var key = response.body.sourceKey;file.__mediaId = mediaId;return {bucket: bucket,        // 文件会上传到这个 bucketkey: key               // 文件路径是 key};});
}

初始化 Uploader

在页面中放置一个上传控件:

<input type="file" id="file" />

然后初始化 bce-bos-uploader

var uploader = new baidubce.bos.Uploader({browse_button: '#file',multi_selection: true,bos_endpoint: BOS_ENDPOINT,bos_ak: AK,bos_sk: SK,auto_start: true,max_file_size: '1Gb',flash_swf_url: 'bower_components/moxie/bin/flash/Moxie.swf',init: {Key: function (_, file) {// 这里需要调用刚才实现的 getVodKey 这个方法return getVodKey(file);},FileUploaded: function (_, file, info) {// 调用 转码服务的接口,提交转码请求vod._internalCreateMediaResource(file.__mediaId, file.name, '测试文件').then(function () {// 转码任务提交成功,可以考虑在页面显示 file.__mediaId});},Error: function (_, error, file) {// 处理错误}}
});

查看当前转码的视频列表

提交了视频转码请求之后,我们可以通过调用 vod.listMediaResources() 接口获取所有的视频转码任务,如果某个任务的状态是 PUBLISHED 了,那么就可以播放视频了:

vod.listMediaResources().then(function (response) {console.log(response.body. media);
});

获取播放器地址

如果某个转码任务的状态是 PUBLISHED,那么就可以调用 doc.getPlayerCode(mediaId, width, height, autoStart) 的接口获取播放器的代码:

var mediaId = 'the PUBLISHED media id';
var width = 600;
var height = 300;
var autoStart = true;
doc.getPlayerCode(mediaId, width, height, autoStart).then(function (response) {console.log(response.body.codes);
});

最终可以在浏览器里面播放转码之后的视频:http://resource.bcevod.com/vod/v1/online/Player.swf?media_id=mda-gd1hbi22ka1fm4s5&auto_start=true

百度开放云 视频转码服务相关推荐

  1. 百度开放云 文档转码服务

    在上一篇文章中,我们介绍了如何通过 bce-bos-uploader 来往 BOS 直传文件,在这篇文章中,我们主要介绍如何使用 百度开放云的 文档转码服务,方便的处理各种文档格式,同时可以获取跨平台 ...

  2. 探秘百度开放云—数字媒体解决方案

    百度开放云数字媒体解决方案,集合了多媒体转码MMT.对象存储BOS.内容分发网络CDN等云计算产品,提供对元视频进行存储.转码.多端设备适配.加密/版权管理.多节点分发等全流程一站式服务.用户使用百度 ...

  3. 百度开放云·10大解决方案

    百度开放云 在昨天结束的百度世界大会·开放云论坛上,百度开放云对外开放了六款通用解决方案,以及面向物联网领域.教育领域.大数据领域.移动互联网领域的四套行业解决方案. 网站及部署方案 结合百度生态专属 ...

  4. 【百度开放云开讲啦】全民TV、罗辑思维、百度揭秘直播核心技术

    启智创新 云领未来 7月30日,百度开放云全国巡讲北京站 正式开讲啦~ 现场照片 呃--光顾着盯茶点 差点错过了主持人的开场~ 认真听讲~认真听讲~ 至目前视频直播平台在全国近300家,直播用户近2亿 ...

  5. 云资讯 | 百度开放云出席可信云大会,解析“新常态”的动力引擎

    9月1日,在今年的可信云大会上,百度开放云副总经理唐进指出"智能云计算是新常态下的动力引擎".与会的工业和信息化部总工程师张峰也表示"云计算作为近些年来信息通信领域发展最 ...

  6. 百度开放云·智能图像云解决方案

    百度的图像处理技术已在百度内部成熟运用,百度开放云智能图像云解决方案基于百度精湛的图像处理技术,为开发者提供百度海量的图片存储.高速的图片上传/下载,多样灵活的图片转码和深度智能化的人脸识别.图片审核 ...

  7. 百度开放云·网站及部署解决方案

    百度世界大会·开放云论坛上,百度开放云共对外发布10套解决方案,覆盖建站部署.视频.图像.存储分发.大数据分析.移动APP以及数字营销.在线教育.物联网.政企等领域. 首先来剖析网站及部署解决方案! ...

  8. 百度开放云首席架构师徐串:架构师对架构的理解

    百度开放云首席架构师徐串:架构师必须理解程序员的痛 时间 2016-05-18 13:19:49  CSDN 原文  http://geek.csdn.net/news/detail/74783 主题 ...

  9. 在百度开放云平台上构建Web App

    在3月23日的百度开发者大会上,百度推出了开放云计算平台来帮助开发者构建分布式网络应用.它包括云存储.云环境.关系服务.消息服务等组成部分,开发者可以利用云平台方便的编写分布式网络应用,无需考虑集群扩 ...

最新文章

  1. 初探莫比乌斯反演及欧拉反演
  2. Swift3.0语言教程删除字符与处理字符编码
  3. C语言中自动变量栈的分配
  4. python数据清理的实践总结_Python数据清洗实践
  5. python 参数收集_Python基础教程第六章 6.4.4 收集参数
  6. 第七期:Python 从入门到精通:一个月就够了!
  7. vba 自动排序_给VBA字典键值排序,并提取需要的数据
  8. 虚拟机是ubuntu,windows映射盘符方式访问虚拟机
  9. 头歌 1.Pandas安装与对象使用
  10. 软件测试面试必问问题
  11. 请假通知(8-17~8-19)
  12. 数据可视化的基本流程
  13. 笔记本(无线网卡)配置虚拟机上网
  14. 标题您的主机不满足在启用 Hyper-V 或 Device/Credential Guard 的情况下运行 VMware Workstation 的最低要求
  15. 如何在线查询学历证书
  16. mysql 重做日志原理_MySQL-重做日志 redo log -原理
  17. ICS课程学习(1)——概述
  18. 概率复习 第一章 基本概念
  19. Linux 下 N 卡 GPU 测试
  20. $monitor用法

热门文章

  1. 如何在IDEA中创建Web项目
  2. Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集
  3. 【原理图】电路中的VCC VDD VSS VEE GND含义 以及STM32电源
  4. MapReducer 取前五的案列Top n
  5. VScode快捷键格式化代码失效,可能解决方法
  6. java数据类型有哪几种_Java数据类型有哪些?Java数据类型包括几种?
  7. 计算机高级职称有哪些专业,计算机专业的高级职称有什么呀?
  8. 企业微信—JS-SDK使用(例:预览文件接口)
  9. 设计模式之 State(状态模式)通俗理解
  10. 软件设计模式学习(十四)外观模式