点播服务开发指南 微吼云
服务介绍
基本描述
微吼云视频点播基于微吼多年的技术和经验积累,为有点播服务需求的用户提供点播上传、音视频转码、音视频存储、CDN加速、iOS/Android/PC多终端播放的一体化解决方案。点播服务提供控制台上传,iOS、Android、Javascript端的播放器SDK,web端管理控制台及服务端API接口,帮助用户快速完成点播平台的搭建。
目前,微吼云点播服务面向微吼云注册用户开放。
服务架构
主要功能
类别 | 功能名称 | 详细内容 |
---|---|---|
视频上传 | 控制台上传 | 进入点播控制台页面,可选择本地视频文件进行上传 |
SDK上传 | 支持微吼云提供的Java 、Javascript 上传 SDK |
|
上传格式 | 视频:RMVB、MP4、AVI、WMV、MKV、FLV、MOV;音频:MP3、WAV;文件大小:5G内 | |
视频转码 | 转码设置 | 支持转码设置,转码输出支持720P、480P、360P、音频 |
点播观看 | 观看协议 | 支持MP4 、HLS 三种播放协议 |
观看方式 | 支持微吼云提供的iOS 、Android 、Javascript 播放 SDK |
|
点播回调 | 回调设置 | 设置回调URL,主动将回放转码状态返回给用户 |
视频管理 | 管理方式 | 支持通过控制台和API两种方式对视频进行管理 |
控制台管理 | 支持点播视频上传、点播视频查询、点播视频预览和点播视频删除 | |
API管理 | 支持生成点播文件、删除点播、获取点播视频列表、配置点播转码、指定回放文件转码 | |
数据统计 | 控制台统计 | 查询空间、流量、观众访问数据 |
API统计 | 查询流量、观众访问数据 |
服务优势
1.视频上传
支持控制台本地上传、支持直播录制转点播,适应不同场景下的上传需求;支持多种音视频格式上传。
2.极致加速体验
具备大规模全网分发能力,支持百万级并发直播观看需求,为音视频点播提供加速服务,带来更快速、更流畅的视听体验。
3.支持多平台播放
提供多终端播放器SDK,支持Android/iOS/Web平台,开发者可通过集成SDK快速接入点播服务。
4.数据统计
提供多维度的数据统计分析,用户可快速查看服务的使用量和服务访问统计的情况。
快速开始
点播流程
点播前准备
1 前提条件
-
上传与播放工具
完成一次点播需要具备上传点播和观看点播的工具,微吼云提供上传/播放器SDK及体验Demo,可以通过Demo进行视频的推流与播放
通过微吼云提供的下载页,下载安装上传/播放器SDK及Demo。
2 操作步骤
2.1 登录
登录微吼云控制台
2.2 创建应用
详情参考如何创建应用
2.3 获取app_id
详情参考如何获取app_id
2.4 设置包名&签名
如需集成移动端SDK,则需设置包名&签名,详情参考设置包名&签名
2.5 添加服务
创建应用后,点击添加服务,弹出添加服务对话框,选择点播服务,点击确定,点播服务添加成功。
2.6 获取record_id
record_id即为点播文件的视频ID,用户可通过控制台查询视频ID,也可通过接口和API在线测试工具进行查询。
2.6.1 控制台查询
在点播管理视频管理页面可查询点播文件的视频ID,具体如下图
2.6.2 接口查询
可通过接口获取record_id,具体参考生成点播接口
2.6.3 API在线测试工具查询
参考通过在线测试接口工具完成获取record_id。
2.7 获取access_token
access_token即权限,调用接口生成access_token将传入SDK,SDK在请求时会附带access_token,具体方式参考生成access_token接口和API在线测试工具。
注: access_token过期时间,默认为一天,最大为一天,过期后需要重新生成access_token。
2.7.1 接口获取
可通过接口获取access_token,具体参考生成access_token接口。
2.7.2 API在线测试工具获取
参考通过在线测试接口工具完成获取access_token。
上传点播
上传点播可通过微吼云提供的推流SDK(包含JAVA、JS)、控制台进行上传,同时还支持通过接口将直播录制文件生成点播文件,以下分别以SDK Demo和控制台为例进行说明。
JS SDK Demo
1 演示地址
地址中需传入app_id和secret_key
2 上传点播
选择需要上传的视频文件,点击保存,视频文件上传成功。
JAVA SDK Demo
具体参考Demo使用指南
控制台
点击视频上传按钮,本地选择视频文件,点击上传,视频文件上传成功。
观看点播
观看点播可通过微吼云提供的播放器SDK(包含iOS、Android、JS),以下以SDK Demo为例进行说明。
JS SDK Demo
1 演示地址
https://static.vhallyun.com/jssdk/vhall-jssdk-live/test/demo.html
2 接口配置
接口配置页面依次输入app_id(应用ID)、record_id(点播ID)、accountId(第三方用户ID:开发者自有用户系统里用户的唯一标识),详情参考:第三方用户ID(third_party_user_id)是什么?、token(access_token),点击保存,跳转至观看页面。
3 观看
进入观看页面选择PC点播点击播放即可进行点播观看。
注:观看还可通过点击页面的观看演示,不进行接口设置,直接进入观看页面。
iOS SDK Demo
具体参考Demo使用指南
Android SDK Demo
具体参考Demo使用指南
控制台使用指南
成为开发者
详情参考如何成为开发者
创建应用
详情参考如何创建应用
添加服务
创建应用后,点击添加服务,弹出添加服务对话框,选择点播服务,点击确定,点播服务添加成功。
点播管理
点击点播服务的直播管理,进点播管理页面,页面中包含点播配置、视频管理、流量空间、统计分析几部分,用户可分别通过这几个部分来对点播服务进行管理。
点播配置
点播服务添加成功后,可对服务进行配置,点播配置包含应用信息、转码设置两部分
应用信息
应用信息包含app_id、回调URL
app_id的含义,参考什么是app_id
回调URL:设置回调URL,填写完成,点击保存,回调URL设置成功。
点播回调URL设置成功后,会主动将视频转码&点播文件生成状态通过配置的URL通知用户。
转码设置
点击配置,可选择需要转码的码率,支持720P、480P、360P、音频。
转码设置还可以通过API进行控制,具体操作参考配置点播转码接口。
规格说明:
720P:分辨率720P 码率650kb
480P:分辨率480P 码率450kb
360P:分辨率360P 码率330kb
音频:AAC
提醒:开启转码后会产生对应费用,请根据实际情况留意相关成本支出。
视频管理
视频管理支持对视频进行上传、查询、删除、预览、下载操作。
视频上传
点击视频上传按钮,本地选择视频文件,点击上传,视频文件上传成功。
规格说明:
上传视频:RMVB、MP4、AVI、WMV、MKV、FLV、MOV
上传音频:MP3、WAV
文件大小:5G内
提醒:上传视频时会产生空间存储费用,请根据实际情况留意相关成本支出。
视频查询
搜索框中输入视频ID/视频文件名称,列表中依照搜索条件将检索出的视频文件显示在列表中
视频删除
选中需要删除的视频,点击删除或批量删除按钮,视频文件被彻底删除。
视频预览
选择某个视频,点击预览,可预览该视频文件,观看视频效果。
视频下载
可下载一条视频记录下的全部文件,也可以下载视频记录中的每个文件,下载时先点击生成下载,进行下载文件生成,文件生成完毕,按钮会变为下载,此时即可进行视频下载。
流量空间
支持用户在指定时间范围内查询空间、流量信息,颗粒度为1个小时。
统计分析
支持用户在指定时间范围内对观众人数、观看次数、观众的地理位置分布、观看终端分布、观看浏览器分布信息进行查询,数据颗粒度为1个小时。
客户端集成
客户端SDK下载:
客户端SDK集成文档:
服务端集成
点播API
API名称 | 功能 |
---|---|
create | 生成点播 |
delete | 删除点播 |
lists | 点播列表 |
set-trans-code-info | 配置点播转码 |
get-stream-flow | 获取点播流量数据 |
trans-record | 指定回放文件转码 |
get-record-info | 获取点播详情 |
get-room-use-info | 获取点播属性信息 |
get-room-join-info | 获取点播访问记录 |
live-record | 获取直播房间下的点播列表 |
如何通过接口完成点播准备
通过接口测试工具
本文将引导通过接口测试工具,获取access_token
。
进入接口测试页面
为使 SDK 可以在无需服务端代码即可运行,微吼云提供了API 请求工具为 SDK 完成准备工作。 点击这里 进入 API 请求工具页面。
生成 AccessToken
通过接口获取 AccessToken (注:播放点播无需特殊权限,仅填必选参数即可
)
- 选择服务 : Base , API 名称 :create-access-token
- 按 生成AccessToken接口文档 填写参数
- 返回数据中 的 access_token 即为 SDK 观看点播所需要的
access_token
如下图 :
参考链接
完成本页的步骤后,您可能需要阅读以下文档。
通过服务端代码
本文将引导通过服务器端代码请求微吼云 API,获取access_token
。
获取 app_id 和 secret_key
微吼云 API 使用app_id
来标识应用,使用secret_key
来作为双方通讯的传输秘钥,两者为使用微吼云 API 的必要参数。
点击这里 查看如何获取app_id
和secret_key
。
PHP代码实现
引入公共代码
我们对调用 API 过程中一些公用代码做了简单封装,作为工具库,您可以 点击这里 获取。然后在代码中引用。
/**
* 引入公共代码
*/
include_once("vhall_paas.php");
本文后面的 PHP 示例代码将以此工具库为基础。
运行服务端代码
当微吼云代码工具库引入到项目中后,您可以开始运行下列 API 调用代码来获取 access_token
。
获取 access_token
// 引用微吼云PHP代码工具库
include 'vhall_paas.php';
/**
* 初始化应用&秘钥信息
* 获取方式 微吼云控制台 -> 应用 -> 设置 -> 应用信息
* http://www.vhallyun.com/console/app/index
*/
VhallPaas::$app_id = '';
VhallPaas::$secret_key = '';
// 生成AccessToken接口请求地址
$accessTokenAddress = 'api.yun.vhall.com/api/v1/base/create-access-token';
/**
* 生成 AccessToken 参数
* AccessToken 为 SDK 中鉴别用户权限使用,针对不同的服务需要不同的参数来生成 AccessToken
* 当前例子无需特殊权限
* 您可以通过阅读 www.vhallyun.com/docs/show/1013 来获取不同权限的 AccessToken 生成方式
*/
$createAccessTokenParams = [
// 第三放用户ID,根据实际情况编写 (这里使用当前时间)
'third_party_user_id' => 'vhall_paas_test_' . time(),
// 过期时间,最大时间为一天,默认一天 (这里使用10小时做例子)
'expire_time' => date("Y-m-d H:i:s", time() + (10 * 3600)),
];
// 加载公共参数&运算签名
$createAccessTokenParams = VhallPaas::createRealParam($createAccessTokenParams);
// 获取accessToken
try {
$result = VhallPaas::request($accessTokenAddress, $createAccessTokenParams);
$accessToken = $result['access_token'];
} catch (Exception $e) {
exit("请求发生错误 错误信息为 {$e->getMessage()} . 错误码为 {$e->getCode()}");
}
var_dump($accessToken);
参考链接
完成本页的步骤后,您可能需要阅读以下文档。
如何通过接口生成回放
通过接口测试工具完成
本文将引导通过接口测试工具,生成回放。
进入接口测试页面
为使 SDK 可以在无需服务端代码即可运行,微吼云提供了API 请求工具为 SDK 完成准备工作。 点击这里 进入 API 请求工具页面。
生成回放
通过接口生成回放、获取回放 ID(注:直播房间正在推流时无法调用该接口
)
- 选择服务 : Record , API 名称 :create
- 按 生成回放接口文档 填写参数
- 返回数据中的 record_id 即为 回放 ID
如下图 :
参考链接
完成本页的步骤后,您可能需要阅读以下文档。
通过服务端代码完成
本文将引导通过服务器端代码请求微吼云 API,生成回放
获取 app_id 和 secret_key
微吼云 API 使用 app_id 来标识应用,使用 secret_key 来作为双方通讯的传输秘钥,两者为使用微吼云 API 的必要参数。
点击这里 查看如何获取 app_id 和 secret_key。
PHP代码实现
引入公共代码
我们对调用 API 过程中一些公用代码做了简单封装,作为工具库,您可以 点击这里 获取。然后在代码中引用。
/**
* 引入公共代码
*/
include_once("vhall_paas.php");
本文后面的 PHP 示例代码将以此工具库为基础。
运行服务端代码
当微吼云代码工具库引入到项目中后,您可以开始运行下列 API 调用代码,来生成回放
生成回放
// 引用微吼云PHP代码工具库
include 'vhall_paas.php';
/**
* 初始化应用&秘钥信息
* 获取方式 微吼云控制台 -> 应用 -> 设置 -> 应用信息
* http://www.vhallyun.com/console/app/index
*/
VhallPaas::$app_id = '';
VhallPaas::$secret_key = '';
// 创建点播接口请求地址
$createRecordAddress = 'api.yun.vhall.com/api/v1/record/create';
// 创建点播参数
$createRecordParams = [
// 通过创建房间拿到房间ID(直播推流结束后)
'room_id' => 'lss_45978ec6',
// 开始时间&结束时间(按实际的开始直播时间传入,这里取前10分钟作为测试)
'start_time' => date("Y-m-d H:i:s", time() - 600),
'end_time' => date("Y-m-d H:i:s")
];
// 加载公共参数&运算签名
$createRecordParams = VhallPaas::createRealParam($createRecordParams);
// 创建点播
try {
$result = VhallPaas::request($createRecordAddress, $createRecordParams);
$recordId = $result['record_id'];
} catch (Exception $e) {
exit("请求发生错误 错误信息为 {$e->getMessage()} . 错误码为 {$e->getCode()}");
}
var_dump($recordId);
参考链接
完成本页的步骤后,您可能需要阅读以下文档。
如何通过SDK上传视频
如何通过JS SDK上传视频
使用微吼云JS SDK,只需简单几步,就能快速上传视频。
跟随本文的步骤,即使你对Javascript语言不熟悉,也完全可以做到。
其中,一、二步为准备工作,第三步为代码接入,下面,就分步来说明。
一.上传准备
二.引入sdk文件
接下来,我们正式接入sdk: 将下面sdk引入代码,插入页面的head标签里。
<script src="http://cnstatic01.e.vhall.com/3rdlibs/jquery/1.11.2/jquery.min.js" type="text/javascript"></script><!--依赖的JQuery库-->
<script src="https://static.vhallyun.com/demand-upload-jssdk-vhallcloud/dist/1.0.0/vhallDemandSDK-vhallcloud.js"></script>
注意:
- 直接用本地网页(file协议,地址栏以file:///开头)是调试不了的,需要运行在Server上(https或http协议,地址栏以https:// 或http:// 开头)才能正常调试。
- 上面两个文件都需要引用,而且顺序需要保持与上面一致。
- 建议直接复制上面代码
三.代码对接
至此,你已完成所有观看点播上传的准备工作,距离完成,只差以下4步:
1.页面创建相关容器
在需要web上传的页面位置加入如下dom结构作为容器,也就是放几个页面元素,然后给每个对应的元素起个名字,示例代码如下:
<input type="file" id="upload"/> <!--文件上传域 -->
<input type="text" id='rename'> <!--用于承载文件名称的input 可用于修改上传文件标题 若用不到可设置为隐藏 -->
<button id="confirm" class="saveBtn">保存</button> <!--上传成功后用于保存文件的按钮 -->
2.初始化SDK配置
接下来需要传入相关参数,初始化配置:
/**
* 初始化SDK配置
*/
vhallCloudDemandSDK('#upload',{
params: {
confirmBtn:'#confirm', //保存按钮的ID
name:'#rename',//用于修改文件名称的input的ID
sign:signTag.str, //生成的鉴权信息
signed_at:signTag.time, //鉴权信息生成的时间戳
app_id:appId //用户的appid
}
})
注意:
- appId获取方式:登陆微吼云>>进应用管理>>取得对应AppId
- sign和signed_at:通过API生成,生成sign接口说明
- confirmBtn:保存按钮的ID,需要开发者自己创建一个dom,然后给Id命名,再将id名称写入此参数
- name:用于修改文件名称的input的ID,需要开发者自己创建一个input标签,然后给Id命名,再将id名称写入此参数
3.监听回调函数
代码如下:
/**
* 监听回调函数
*/
vhallCloudDemandSDK('#upload',{
params: {
confirmBtn:'#confirm', //保存按钮
name:'#rename',//用于修改文件名称的input
sign:signTag.str, //生成的鉴权信息
signed_at:signTag.time, //鉴权信息生成的时间戳
app_id:appId //用户的appid
},
/**
* 初始化完成的回调函数
*/
ready: function() {
},
/**
* 准备中...(文件进行MD5转换过程)
* 可以已loader形式展现该过程
*/
beforeUpload:function() {
},
/**
* 上传中...'
* 'percent 上传进度百分比'
* 'file 上传文档具体信息
*/
progress:function(percent, file){
},
/**
* 上传成功!'
*/
uploadSuccess: function(res){
},
/**
* 点击保存按钮后保存成功'
* res返回record_id
*/
saveSuccess:function(res) {
},
/**
* 上传出错'
* 'msg 错误返回的状态码信息'
*/
error: function(msg,file,e){
}
})
完整例子代码如下:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>点播上传</title>
<script src="http://cnstatic01.e.vhall.com/3rdlibs/jquery/1.11.2/jquery.min.js" type="text/javascript"></script><!--依赖的JQuery库-->
<script src="https://static.vhallyun.com/demand-upload-jssdk-vhallcloud/dist/1.0.0/vhallDemandSDK-vhallcloud.js"></script>
</head>
<body>
<input type="file" id="upload"/> <!--文件上传域 -->
<input type="text" id='rename'> <!--用于承载文件名称的input 可用于修改上传文件标题 若用不到可设置为隐藏 -->
<button id="confirm" class="saveBtn">保存</button> <!--上传成功后用于保存文件的按钮 -->
<script>
/**
* 监听回调函数
*/
vhallCloudDemandSDK('#upload',{
params: {
confirmBtn:'#confirm', //保存按钮
name:'#rename',//用于修改文件名称的input
sign:signTag.str, //生成的鉴权信息
signed_at:signTag.time, //鉴权信息生成的时间戳
app_id:appId //用户的appid
},
/**
* 初始化完成的回调函数
*/
ready: function() {
},
/**
* 准备中...(文件进行MD5转换过程)
* 可以已loader形式展现该过程
*/
beforeUpload:function() {
},
/**
* 上传中...'
* 'percent 上传进度百分比'
* 'file 上传文档具体信息
*/
progress:function(percent, file){
},
/**
* 上传成功!'
*/
uploadSuccess: function(res){
},
/**
* 点击保存按钮后保存成功'
* res返回record_id
*/
saveSuccess:function(res) {
},
/**
* 上传出错'
* 'msg 错误返回的状态码信息'
*/
error: function(msg,file,e){
}
})
</script>
其他相关文档
如何通过JAVA SDK上传视频
上传录播准备
集成过程:
- 复制commons-codec-1.9.jar到工程lib目录下
- 复制commons-logging-1.2.jar到工程lib目录下
- 复制hamcrest-core-1.1.jar到工程lib目录下
- 复制httpclient-4.4.1.jar到工程lib目录下
- 复制httpcore-4.4.1.jar到工程lib目录下
- 复制jdom-1.1.jar到工程lib目录下
- 复制json-20170516.jar到工程lib目录下
- 复制vhalluploadkit_pass-1.0-release.jar到工程lib目录下
对接流程:
1、获取VhallUploadKit实例
2、初始化
请先完成录播上传准备工作,完成录播上传准备工作后,会获取AppId和SecretKey,参数获取成功后在调用此方法。
3、是否可用
初始化成功后,VhallUploadKit才会处于可用状态,才能上传录播
4、上传视频并自动生成录播
5、停止上传
录播上传服务支持断点续传,上传过程中,本地会生成一个ucp文件,保存当前上传进度,如果上传操作被异常或手动中断,下次上传会自动定位到最后一次的上传位置继续上传。
6、取消上传
取消本次上传操作,取消操作会删除本地及服务器上传纪录和服务器上的文件碎片,重新从0开始上传
代码演示
如何通过SDK播放视频
如何通过iOS SDK观看视频
观看点播准备
-
获取 点播ID recordId
-
获取包含点播权限的access_token
工程配置
在开始使用sdk之前,我们要配置好IDE和创建基础的工程代码。相关内容在【工程配置】中有详细说明。
时序图

注:已知点播ID的情况下虚线框部分无需请求。
对接流程
1: 引入点播播放器头文件
#import "VHVodPlayer.h"
2: 创建点播播放器
SDK 中的 VHVodPlayer 模块负责实现直播播放功能。
_vodPlayer = [[VHVodPlayer alloc] init];
3: 设置 渲染View、delegate
- delegate 设置播放器代理
- 接下来我们要给播放器的视频画面找个地方来显示,iOS系统中使用 view 作为基本的界面渲染单位,所以您只需要准备一个 view 并调整好布局就可以了。
_vodPlayer.delegate = self;
_vodPlayer.view.frame = self.view.bounds;
[self.view insertSubview:_vodPlayer.view atIndex:0];
4: 开始播放
recordId 和 accessToken 参考页首观看点播准备
NSString* recordId = @"xxxxxx";
NSString* accessToken = @"xxxxxxxxxx";
[_vodPlayer startPlay:recordId accessToken:accessToken];
5: 画面调整
_vodPlayer.scalingMode = VHPlayerScalingModeAspectFit;
可选值 | 含义 |
---|---|
VHPlayerScalingModeFill | 将图像拉伸填充 |
VHPlayerScalingModeAspectFit | 将图像等比例缩放,适配最长边,缩放后的宽和高都不会超过显示区域,居中显示,画面可能会留有黑边 |
VHVPlayerScalingModeAspectFill | 将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不会留黑边,但可能因为部分区域被裁剪而显示不全 |
6: 清晰度切换
_vodPlayer.curDefinition = VHDefinitionOrigin;
可选值 | 含义 |
---|---|
VHDefinitionOrigin | 原画 |
VHDefinitionUHD | 超高清 |
VHDefinitionHD | 高清 |
VHDefinitionSD | 标清 |
VHDefinitionAudio | 纯音频 |
7: 暂停/恢复播放
// 暂停
[_vodPlayer pause];
// 恢复
[_vodPlayer resume];
8: 结束播放
结束当前直播,播放器资源并未释放
[_vodPlayer stopPlay];
9: 销毁播放器
释放播放器资源
[_vodPlayer destroyPlayer];
播放器皮肤
微吼云提供了设置播放器皮肤的Api和播放器皮肤源代码(见Demo),用户可自定义播放器皮肤,也可直接使用系统提供的开源皮肤。只需要设置皮肤到播放器即可实现播放控制等。
事件处理
- 播放状态监听
SDK 通过 VHVodPlayerDelegate 代理来监听播放器相关的状态和事件
具体 VHVodPlayerDelegate 中方法参考【发起直播参考手册】
状态 | 含义 |
---|---|
VHPlayerStatusLoading | 加载中 |
VHPlayerStatusPlaying | 播放中 |
VHPlayerStatusStop | 停止播放 |
VHPlayerStatusPause | 播放暂停 |
快速集成代码
可以把观看点播代码写到 ViewController.m 的 viewDidLoad 方法中测试观看,代码如下:
//
// ViewController.m
// TestProject
//
// Created by vhall on 2018/3/12.
// Copyright © 2018年 vhall. All rights reserved.
//
#import "ViewController.h"
#import "VHVodPlayer.h"
@interface ViewController ()<VHVodPlayerDelegate>
@property (nonatomic,strong)VHVodPlayer *vodPlayer;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//构造并初始化播放器
_vodPlayer = [[VHVodPlayer alloc] init];
//设置代理
_vodPlayer.delegate = self;
//设置显示区域
_vodPlayer.view.frame = self.view.bounds;
//加入显示view
[self.view insertSubview:_vodPlayer.view atIndex:0];
//开始播放
NSString* recordId = @"xxxxxxxxxx";//recordId 获得方式 参考页面开始处
NSString* accessToken = @"xxxxxxxxxx";//accessToken 获得方式 参考页面开始处
[_vodPlayer startPlay:recordId accessToken:accessToken];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewDidLayoutSubviews
{
//刷新播放器画面位置
_vodPlayer.view.frame = self.view.bounds;
}
#pragma mark - VHVodPlayerDelegate
/**
* 错误回调
* @param player 播放器实例
* @param error 错误
*/
- (void)player:(VHVodPlayer *)player stoppedWithError:(NSError *)error
{
NSLog(@"错误: %@",error );
}
@end
其他相关文档
如何通过Android SDK观看视频
观看点播准备
-
获取 点播ID recordId
-
获取包含点播权限的access_token
工程配置
在开始使用sdk之前,我们要配置好IDE和创建基础的工程代码。相关内容在【工程配置】中有详细说明。
时序图

注:已知点播ID的情况下虚线框部分无需请求。
播放器渲染View--VodPlayerView
1 构造方法
/**
* 获取View的布局方式,需要现在XML中定义
*/
mSurfaceView = this.findViewById(R.id.surfaceview);
/**
* XML中定义,代码展示
*/
<com.vhall.player.vod.VodPlayerView
android:id="@+id/surfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2 方法说明
/**
* 设置水印
*
* @param drawable
*/
public void setWaterMark(Drawable drawable){}
/**
* 设置水印的相对位置
*
* @param gravity Gravity.LEFT
*/
public void setWaterMarkGravity(int gravity) {}
/**
* 获取截图
* @return
*/
public Bitmap getBitmap() {}
/**
* 设置清晰度
* Constants.VideoMode.DRAW_MODE_NONE 默认,铺满全屏
* Constants.VideoMode.DRAW_MODE_ASPECTFIT 等比缩放居中;
* Constants.VideoMode.DRAW_MODE_ASPECTFILL 等比拉伸居中;
*/
public void setDrawMode(int mode){}
对接流程
1.1 创建 VHVodPlayer
VHVodPlayer 是SDK中负责点播的模块,需要传入上下文,和视频渲染的View,也就是播放画面的View,SDK使用的是系统自带的SurfaceView或者VodPlayerView,将创建的Surface的实例传入VHVodPlayer即可创建。
2 创建 VHDocument (如果没有文档可以忽略)
如果需要文档服务,请参考文档 【OPS-SDK集成】
3 开始观看
4 设置观看清晰度
从 IVHLivePlayer.EVENT_DPI_LIST 获取当前地址可用的分辨率,确定可用的情况下在切换
清晰度 | 描述 |
---|---|
IVHLivePlayer.DPI_SD | 低清 |
IVHLivePlayer.DPI_HD | 高清 |
IVHLivePlayer.DPI_XHD | 超清 |
IVHLivePlayer.DPI_AUDIO | 纯音频 |
IVHLivePlayer.DPI_SAME | 原画 |
5 暂停观看/ 恢复观看
停止拉流,而云端的视频源还在不断地更新着 , 当重新恢复时,会从最新的时间点播放
6 控制播放相关API
7 结束观看
8 销毁
销毁播放器的实例
事件处理
事件监听 | 描述 |
---|---|
VHVodPlayer.EVENT_STATUS_STARTING | 正在运行 |
VHVodPlayer.EVENT_STATUS_STARTED | 开始播放 |
VHVodPlayer.EVENT_STATUS_STOPED | 停止播放 |
VHVodPlayer.EVENT_STATUS_END | 播放结束 |
VHVodPlayer.EVENT_VIDEO_SIZE_CHANGED | 视频的宽高发生改变 |
IVHLivePlayer.EVENT_DPI_LIST | 可以的清晰度 |
IVHLivePlayer.EVENT_DPI_CHANGED | 清晰度发生改变 |
示例代码:
其他相关文档
如何通过JS SDK观看视频
使用微吼云JS SDK,只需简单几步,就能快速观看直播。
跟随本文的步骤,即使你对Javascript语言不熟悉,也完全可以做到。
其中,一、二步为准备工作,第三步为代码接入,下面,就分步来说明。
一.观看准备
-
获取 点播ID recordId
-
获取包含点播权限的access_token
时序图

注:已知点播ID的情况下虚线框部分无需请求。
二.引入sdk文件
接下来,我们正式接入sdk: 将下面sdk引入代码,插入页面的head标签里。
<link rel="stylesheet" href="https://static.vhallyun.com/jssdk/videojs.min.css?v=1.0.0"><!--播放器默认样式,需要引用在包含在页面的head标签里-->
<script src="https://static.vhallyun.com/jssdk/dvideo-plugin.js?v=1.0.0"></script><!--依赖的播放器资源-->
<script src="https://static.vhallyun.com/jssdk/vhall-jssdk-player-1.6.2.js"></script>
<script src="https://static.vhallyun.com/jssdk/vhall-jssdk-base-1.0.0.js"></script>
注意:
- 直接用本地网页(file协议,地址栏以file:///开头)是调试不了的,需要运行在Server上(https或http协议,地址栏以https:// 或http:// 开头)才能正常调试。
- 上面两个文件都需要引用,而且顺序需要保持与上面一致。
- 建议直接复制上面代码
三.代码对接
至此,你已完成所有观看直播准备工作,距离完成,只差以下4步:
1.页面创建播放器容器
在需要web播放的页面位置加入播放器对象容器,也就是放一个div,然后给它取个名字,比如: my-video 。之后推流回显画面都会在这个容器里渲染,容器的大小控制您可以使用div的属性进行控制,示例代码如下:
<div id="my-video" style="width:100%; height:450px;"></div>
2.注册ready事件
接下来,在页面里写javascript代码,调用sdk提供的接口,注册sdk ready事件,接口调用方法如下:
/**
* 注册ready事件
*/
Vhall.ready(function(){
//TODO
})
注意:所有观看逻辑需要写在此事件里。
3.初始化SDK配置
接下来需要传入相关参数,初始化配置:
/**
* 初始化配置
*/
Vhall.config({
appId :'',//应用 ID ,必填
accountId :'',//第三方用户唯一标识,必填
token:'',//token必填
})
4.播放器初始化
观看直播之前,需要初始化播放器对象VhallPlayer
/**
* 播放器初始化
*/
VhallPlayer.init({
roomId:'', //房间ID,直播必填,点播不写
recordId:'',//回放Id,点播必填,直播不写
type:'live',//播放类型,必填,live 直播, vod 为点播
videoNode:'',//推流视频回显节点id,必填
complete:function(){
}
});
5.播放
最后一步,播放。 示例:
/**
* 播放
*/
VhallPlayer.play();
注意: 此方法必需写在Vhall.ready事件里。
完整例子代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>观看直播</title>
<link rel="stylesheet" href="https://static.vhallyun.com/jssdk/videojs.min.css?v=1.0.0"><!--播放器默认样式,需要引用在包含在页面的head标签里-->
<script src="https://static.vhallyun.com/jssdk/dvideo-plugin.js?v=1.0.0"></script><!--依赖的播放器资源-->
<script src="https://static.vhallyun.com/jssdk/vhall-jssdk-player-1.0.0.js"></script>
<script src="https://static.vhallyun.com/jssdk/vhall-jssdk-base-1.0.0.js"></script>
<style>
body{
background-color: #000;
/* height: 800px;
line-height: 800px;*/
}
.video-box{
margin:0 auto;
width: 854px;
height: 480px;
}
</style>
</head>
<body>
<div class="video-box" >
<div id="myVideo" style="width:100%; height:450px;"></div>
</div>
</body>
<script>
/**
* 注册ready事件
*/
Vhall.ready(function(){
/**
* 播放器初始化
*/
VhallPlayer.init({
roomId:'lss_c063b5c9', //房间ID,直播必填,点播不写
recordId:'',//回放Id,点播必填,直播不写
type:'vod',//播放类型,必填,live 直播, vod 为点播
videoNode:'myVideo',//推流视频回显节点id,必填
complete:function(){
/**
* 播放
*/
VhallPlayer.play();
}
});
});
/**
* 初始化配置
*/
Vhall.config({
appId :'76043aaf',//应用 ID ,必填
accountId :'10000126',//第三方用户唯一标识,必填
token:'',//token必填
});
</script>
</html>
其他相关文档
JS SDK 集成
使用微吼云JS SDK,只需三大步再5小步,就能快速观看直播。
跟随本文的步骤,即使你对Javascript语言不熟悉,也完全可以做到。
其中,一、二步为准备工作,第三步为代码接入,下面,就分步来说明。
一.观看准备
-
创建直播间 获取roomId
-
获取直播间包含看直播权限的access_token
时序图

注:已知直播间ID的情况下虚线框部分无需请求。
二.引入sdk文件
接下来,我们正式接入sdk: 将下面sdk引入代码,插入页面的head标签里。
<script src="vhall-jssdk-player-VERSION.js"></script>
<script src="vhall-jssdk-base-1.0.0.js"></script>
- VERSION 为SDK版本号,当前版本号为2.0.0
- SDK 引用顺序与上面保持一致。
- 引用时务必使用HTTPS协议。
- JS基础SDK模块
- JS播放器SDK模块
注意:
1.直接用本地网页(file协议,地址栏以file:///开头)是调试不了的,需要运行在Server上(https或http协议,地址栏以https:// 或http:// 开头)才能正常调试。
2.上面两个文件都需要引用,而且顺序需要保持与上面一致。
3.建议直接复制上面代码
三.代码对接
至此,你已完成所有观看直播准备工作,距离完成,只差以下4步:
1.页面创建播放器容器
在需要web播放的页面位置加入播放器对象容器,也就是放一个div,然后给它取个名字,比如: my-video 。之后推流回显画面都会在这个容器里渲染,容器的大小控制您可以使用div的属性进行控制,示例代码如下:
<div id="my-video" style="width:100%; height:450px;"></div>
2.初始化SDK配置
接下来需要传入相关参数,初始化配置:
// 创建实例参数
var opt = {
appId:'',// 应用ID,必填
accountId: '', // 第三方用户ID,必填
token: '', // access_token,必填
type: '', // live 直播 vod 点播 必填
videoNode: "videoNode", // 播放器的容器, div的id 必填
poster: 'http://xxx.jpg', // 封面地址 仅支持.jpg
liveOption:{
type:'hls' // 直播播放类型 hls | flv
roomId: '', // 直播房间ID
} ,
vodOption: {
recordId:'' // 回放 ID
}
};
// 成功回调
var success = function (event) {
// 实例句柄
var vhallplayer= event.vhallplayer;
};
// 失败回调
var failure = function (event) {
console.log(event);
};
// 创建实例
VhallPlayer.createInstance(opt, success, failure);
注意:
1.appId获取方式,参考[推流准备]的“创建应用 获取AppID”
2.token生成方式,参考[推流准备]的“获取直播间 access_token”
3.此处的toekn,即为参考准备的access_token。
JS SDK 使用
- 播放器SDK主要分为: 实例创建与销毁、实例事件监听、实例接口使用、全局定义,四大部分。
播放器实例
- 此SDK可支持创建多个实例,每一个实例对应一个播放器实例。
创建实例
// 创建实例参数
var opt = {
appId:'', // 应用ID 必填
accountId: '', // 第三方用户ID 必填
token:'', // access_token 必填
type:'', // live 直播 vod 点播 必填
videoNode:'videoNode', // 播放器的容器
poster:"http://xxx.jpg", // 封面地址
liveOption:{
type:'hls' // 直播播放类型 hls | flv
roomId:'', // 直播房间ID 必填
},
vodOption:{
recordId:'' // 回放 ID
}
}
// 成功回调
var vhallplayer;
var success = function(event){
// 实例句柄
vhallplayer = event.vhallplayer;
};
// 失败回调
var failure = function(event){
console.log(event);
}
// 创建实例
VhallPlayer.createInstance(opt, success, failure);
- videoNode为Dom容器的id
- type为live时则使用liveOption,反之则使用vodOption
- VhallPlayer 为SDK全局句柄
- vhallplayer 为当前传入播放器实例句柄,故以下所有操作均必须在成功回调后执行。
销毁实例
vhallplayer.destroy(); // 销毁当前实例
实例事件监听
- 在调用实例接口前,建议全部监听以下事件
事件监听
vhallplayer.on(event , handler); // 事件监听
- event 为事件,参考:播放器事件参考表
- handler 为处理函数
实例接口使用
- 由于播放器内核原因,接口的成功或失败采用事件监听模式来判断。
- 接口中的failure回调为参数校验
设置循环状态(仅点播可用)
var isLoop = true; // true 为循环 false 为非循环
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.setLoop(isLoop , failure); // 设置循环状态
获取循环状态(仅点播可用)
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.getLoop(); // true 为循环状态 false为非循环状态
获取当前视频总时长(仅点播可用)
// 失败回调
var failure = function (event) {
console.log(event);
};
vhallplayer.getDuration(failure);
获取当前视频播放时间(仅点播可用)
// 失败回调
var failure = function (event) {
console.log(event);
};
vhallplayer.getCurrentTime(failure);
设置当前播放时间(仅点播可用)
var time = 0; // 秒
// 失败回调
var failure = function (event) {
console.log(event);
};
vhallplayer.setCurrentTime(time , failure);
设置seek限制(仅点播可用)
var opt = {
enable:true, // true为开启seek限制 , false为关闭seek限制
maxTime:60 // seek最大值 number类型
};
var failure - function(event){
console.log(event);
};
vhallplayer.setLimitSeek(opt , failure);
获取当前seek限制信息(仅点播可用)
var failure = function(event){
console.log(event);
};
vhallplayer.getLimitSeek(failure);
获取当前可选倍速(仅点播可用)
vhallplayer.getUsableSpeed(); // 可选倍速列表
设置倍速播放(仅点播可用)
var list = vhallplayer.getUsableSpeed(); // 可选倍速列表
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.setPlaySpeed(list[0] , failure);
-
该方法参数只能为倍速列表已存在的一项
播放
vhallplayer.play(); // 播放
暂停
vhallplayer.pause(); // 暂停
获取当前暂停状态
vhallplayer.getIsPause(); // true 为暂停状态 false为播放状态
获取视频清晰度列表
vhallplayer.getQualitys(); // 获取视频清晰度列表
- 该接口返回当前可用的视频清晰度列表。
获取当前视频清晰度
vhallplayer.getCurrentQuality(); // 获取当前视频清晰度
设置当前视频清晰度
var qualityList = vhallplayer.getQualitys(); // 获取清晰度列表
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.setQuality(qualityList[0] , failure); // 设置当前视频清晰度
-
传入的清晰度应为清晰度列表中的一项。
进入全屏
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.enterFullScreen(failure ); // 进入全屏
退出全屏
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.exitFullScreen(failure); // 退出全屏
获取当前是否是全屏
vhallplayer.isFullScreen(); // true为全屏状态 false为非全屏状态
设置静音
var isMute = true; // true为静音 false为取消静音
// 失败回调
var failure = function(event){
console.log(event);
};
vhallplayer.setMute(isMute , failure); // 设置静音
获取音量
vhallplayer.getVolume(); // 0~100
设置音量
var volume = 50; // 音量 0~100
// 失败回调
var failure = function (event) {
console.log(event);
};
vhallplayer.setVolume(volume , failure );
获取当前网络状态
vhallplayer.getNetworkState(); // 获取当前网络状态
- 0为 音频/视频尚未初始化
- 1为 音频/视频是活动的且已选取资源,但并未使用网络
- 2为 浏览器正在下载数据
- 3为 未找到音频/视频来源
视频截图
var imgBase64Data = vhallplayer.videoScreenshot(); // 视频截图
- 截图后生成Base64
全局定义
播放器事件参考表
可选值 | 事件 | 备注 |
---|---|---|
VhallPlayer.CURRENTTIME_CHANGE | 当前时间改变 | 点播当前播放时间被改变时触发 |
VhallPlayer.LOOP_CHANGE | 循环状态改变 | 点播循环状态被改变时触发 |
VhallPlayer.MUTE_CHANGE | 静音状态改变 | 静音状态被改变时触发 |
VhallPlayer.RATE_CHANGE | 倍速改变 | 倍速被改变时触发 |
VhallPlayer.VOLUME_CHANGE | 声音改变 | 声音被改变时触发 |
VhallPlayer.FULLSCREEN_CHANGE | 全屏状态改变 | 全屏状态改变时触发 |
VhallPlayer.DEFINITION_CHANGE | 当前清晰度改变 | 当前清晰度改变时触发(卡顿时自动切清晰度触发,手动切换不触发) |
VhallPlayer.LAG_REPORT | 卡顿 | 视频卡顿时触发 |
VhallPlayer.LAG_RECOVER | 卡顿恢复 | 视频卡顿恢复时触发 |
VhallPlayer.PALY | 开始播放 | 点播开始播放时触发 |
VhallPlayer.PAUSE | 暂停 | 点播暂停时触发 |
VhallPlayer.PROGRESS | 视频加载中 | 点播视频加载中时触发 |
VhallPlayer.LOADED | 视频加载完成 | 点播视频加载完成时触发 |
VhallPlayer.ERROR | 播放器出错 | 播放器自身出现错误时触发 |
VhallPlayer.ENDED | 播放完毕 | 点播视频播放完毕时触发 |
VhallPlayer.OPEN_BARRAGE | 开启弹幕 | 开启弹幕时触发 |
VhallPlayer.CLOSE_BARRAGE | 关闭弹幕 | 关闭弹幕时触发 |
VhallPlayer.CLEAR_BARRAGE | 清空弹幕 | 清空弹幕时触发 |
VhallPlayer.TIMEUPDATE | 播放时间改变 | 播放时间改变时触发 |
错误码
code | message |
---|---|
611000 | 初始化播放器失败 |
611001 | 无效的参数 |
611002 | 服务器返回错误 |
611004 | 此方法仅点播可用 |
611005 | 进入全屏失败 |
611006 | 退出全屏失败 |
611008 | appId不存在 |
611009 | roomId不存在 |
611010 | token不存在 |
611011 | recordId不存在 |
JS SDK v1.0集成(旧版)
使用微吼云JS SDK,只需三大步再5小步,就能快速观看直播。
跟随本文的步骤,即使你对Javascript语言不熟悉,也完全可以做到。
其中,一、二步为准备工作,第三步为代码接入,下面,就分步来说明。
一.观看准备
-
创建直播间 获取roomId
-
获取直播间包含看直播权限的access_token
时序图

注:已知直播间ID的情况下虚线框部分无需请求。
二.引入sdk文件
接下来,我们正式接入sdk: 将下面sdk引入代码,插入页面的head标签里。
<link rel="stylesheet" href="https://static.vhallyun.com/jssdk/videojs.min.css?v=1.0.0"><!--播放器默认样式,需要引用在包含在页面的head标签里-->
<script src="https://static.vhallyun.com/jssdk/dvideo-plugin.js?v=1.0.0"></script><!--依赖的播放器资源-->
<script src="https://static.vhallyun.com/jssdk/vhall-jssdk-player-1.6.2.js"></script>
<script src="https://static.vhallyun.com/jssdk/vhall-jssdk-base-1.0.0.js"></script>
注意:
1.直接用本地网页(file协议,地址栏以file:///开头)是调试不了的,需要运行在Server上(https或http协议,地址栏以https:// 或http:// 开头)才能正常调试。
2.上面两个文件都需要引用,而且顺序需要保持与上面一致。
3.建议直接复制上面代码
三.代码对接
至此,你已完成所有观看直播准备工作,距离完成,只差以下4步:
1.页面创建播放器容器
在需要web播放的页面位置加入播放器对象容器,也就是放一个div,然后给它取个名字,比如: my-video 。之后推流回显画面都会在这个容器里渲染,容器的大小控制您可以使用div的属性进行控制,示例代码如下:
<div id="my-video" style="width:100%; height:450px;"></div>
2.注册ready事件
接下来,在页面里写javascript代码,调用sdk提供的接口,注册sdk ready事件,接口调用方法如下:
/**
* 注册ready事件
*/
Vhall.ready(function(){
//TODO
})
注意:所有观看逻辑需要写在此事件里。
3.初始化SDK配置
接下来需要传入相关参数,初始化配置:
/**
* 初始化配置
*/
Vhall.config({
appId :'',//应用 ID ,必填
accountId :'',//第三方用户唯一标识,必填
token:'',//token必填
})
注意:
1.appId获取方式,参考[推流准备]的“创建应用 获取AppID”
2.token生成方式,参考[推流准备]的“获取直播间 access_token”
3.此处的toekn,即为参考准备的access_token。
Demo使用指南
点播上传
1 下载地址
https://github.com/vhall/VhalluploadkitForPaas
2 初始化Demo
参考初始化教程
3 上传
使用Demo进行点播上传,点击选择文件选择需要上传的文件,点击上传文件,文件上传成功。
上传点播文件格式支持(视频:RMVB、MP4、AVI、WMV、MKV、FLV、MOV;音频:MP3、WAV),文件大小在5G内
iOS Demo
1 下载地址
https://github.com/vhall/VHYun_SDK_iOS
2 填写app_id
进入iOS SDK Demo,弹出输入app_id对话框,对话框中填写应用管理页面获取到的app_id。
3 设置
点击设置,进入设置页面,可进行基础设置和点播设置
基础设置:填写第三方用户ID(是开发者自有用户系统里用户的唯一标识),详情参考:第三方用户ID(third_party_user_id)是什么?
点播设置:填写获取的record_id(点播ID)和access_token值
4 观看点播
设置完成,选择观看点播,即可进行点播观看
Android Demo
1 下载地址
https://github.com/vhall/VHYun_SDK_Android
2 填写app_id和用户ID
进入Android SDK Demo,页面中输入控制台应用管理中获取的app_id和用户ID(是开发者自有用户系统里用户的唯一标识),详情参考:第三方用户ID(third_party_user_id)是什么?,填写完毕点击进入,进入操作页面
3 填写互动直播房间ID和access_token
3 观看点播
操作页面中填写通过控制台、接口或API在线测试工具获取到的record_id和通过接口获取到的access_token值,点击看点播即可观看点播
JS Demo
1 演示地址
https://static.vhallyun.com/jssdk/vhall-jssdk-live/test/player_new.html
2 接口配置
接口配置页面依次输入上述方法中获得的app_id
(应用ID)、room_id
(直播房间ID)、accountId(第三方用户ID:开发者自有用户系统里用户的唯一标识),详情参考:第三方用户ID(third_party_user_id)是什么?、token(access_token),点击初始化播放器,跳转至观看页面。
- poster为播放器的封面图链接
- type可切换为观看点播或直播
- 点播需要传入recordId
3 观看
进入观看页面即可观看直播或点播
服务定价
1、计费类型及说明
微吼云点播服务采用后付费方式,即使用服务后扣费的计费方式。您需要先在微吼云账户预先充值,系统会按照不同的功能实时或按天从您的账户余额中扣除实际消费产生的金额。
2、计费方式说明
您可以通过控制台查看微吼云点播服务的实际使用量,具体计费方式如下。
计费项 | 计费方式 | 付费方式 |
---|---|---|
点播存储 | 按存储容量 | 后付费 |
点播流量 | 按下行流量 | 后付费 |
点播转码 | 按时长 | 后付费 |
点播下载 | 按下载流量 | 后付费 |
2.1 点播存储
计费规则
根据实际使用量收费,统计每天使用的存储空间(包含直播录制的视频文件、上传到微吼云点播服务的视频文件和转码后的视频文件占用的存储空间)量值为当天的计费值。统计一天内使用的存储空间,按照实际使用的存储空间乘以单价计费。
计费项 | 价格(元/G/天) | 付费方式 |
---|---|---|
点播存储 | 0.02 | 后付费 |
计费周期
按天扣费,按天出消费明细,按自然月出账单。每个月的账单会在次月1号生成。
计费公式:
存储空间(G/天) * 存储单价(元/G/天)
计费示例
当天使用的存储空间为100G,则收费为100*0.02=2元
计费说明
1.计费项为当天使用的点播存储空间。
2.按天进行扣费,请确保账户余额充足,以免影响您的业务。
2.2 点播流量
计费规则
统计观看产生的全网下行流量,实时进行扣费,按照实时消耗的流量乘以单价计费。
计费项 | 价格(元/G) | 付费方式 |
---|---|---|
点播流量 | 1.5 | 后付费 |
计费周期
实时扣费,按小时出消费明细,按自然月出账单。每个月的账单会在次月1号生成。
计费公式:
点播流量(G) * 流量单价(元/G)
计费示例
当天使用的流量为100G,则收费为100*1.5=150元
流量消耗示例:
点播流量消耗=(点播码率/8)*点播时长(秒)*观看人数
例如:点播码率为500kbps,观看人数为100人,点播时长为30分钟,则消耗的流量约为:11.25G。
计算方法: (500/8)*30*60*100=11250000K
11250000/1000/1000=11.25G
计算流量为观看点播过程中人数不发生变化的情况,点播过程中存在人员进入离开的情况,具体数据参考数据统计。
计费说明
1.计费点为观看过程中实际消耗的流量。
2.实时进行扣费,请确保账户余额充足,以免影响您的业务。
2.3 点播转码
计费规则
完成一个点播文件的转码后进行扣费,按照转码的时长乘以单价计费,时长精确到分钟,不足一分钟的不计入计费。
计费项 | 价格(元/分钟) | 计费方式 |
---|---|---|
转码时长 | 0.08 | 后付费 |
- 注意:多码率场景下,您可以添加多条线路(2~3条),例如其中有N条线路涉及转码计费,则价格为N*0.08元/分钟。
计费周期
完成一个点播文件的转码后进行扣费,按小时出消费明细,按自然月出账单。每个月的账单会在次月1号生成。
计费公式:
转码时长(分钟) * 转码单价(元/分钟)
*注:转码时长等于点播时长
计费示例
当转码时长为100分钟,则收费为100*0.08=8元
- 有N路转码流点播:总时长 = 所有点播的转码时长之和。
计费说明
1.功能默认关闭,可在微吼云控制台手动开启。
2.使用转码功能会相应的收取转码费用。
3.完成一个点播文件的转码后进行扣费,请确保账户余额充足,以免影响您的业务
2.4 点播下载
计费规则
统计下载产生的流量,实时进行扣费,按照实时消耗的流量乘以单价计费。
计费项 | 价格(元/G) | 付费方式 |
---|---|---|
点播下载流量 | 1.5 | 后付费 |
计费周期
实时扣费,按小时出消费明细,按自然月出账单。每个月的账单会在次月1号生成。
计费公式:
点播流量(G) * 流量单价(元/G)
计费示例
当天使用的下载流量为100G,则收费为100*1.5=150元
计费说明
1.计费点为下载实际消耗的流量。
2.实时进行扣费,请确保账户余额充足,以免影响您的业务。
3、欠费说明
1.欠费后工作人员会与您进行联系,如还未进行充值,将会停掉您的服务。
2.开通策略:账户充值余额为正后则会自动开通服务。
常见问题
1、如何开通点播服务?
创建应用后,点击添加服务,弹出添加服务对话框,选择点播服务,点击确定,点播服务添加成功。
2、如何上传点播文件?
登录控制台直接上传:适用于少量视频文件,且视频较小。
通过服务端进行上传: Java SDK,在服务器端上传。
通过网页端进行上传:JS SDK,可以通过网页直接上传。
3、点播文件支持格式?
上传视频:RMVB、MP4、AVI、WMV、MKV、FLV、MOV
上传音频:MP3、WAV
4、对上传视频文件的大小及上传速度有限制吗?
对视频上传速度没有限制,对视频大小有限制,上传视频文件不超过5GB。
5、视频上传成功后的转码操作是自动执行的吗?
是的,上传成功后,按照预设置的转码配置,自动进行转码。
6、录制下来的视频文件如何进行转码?
直播录制下来的视频不会自动转码,如果需要转码,可通过接口对指定的录制文件进行转码。
接口详情:http://www.vhallyun.com/document/detail/index?project_id=40&doc_id=1034。
7、转码规格如何规定的?
可以选择原画输出,也可以按照系统提供720P、480P、360P、音频几种转码规格进行转码设置。
转码设置 | 分辨率 | 码率 | 格式 |
---|---|---|---|
720P | 720P | 650kb | -- |
480P | 480P | 450kb | -- |
360P | 360P | 330kb | -- |
音频 | -- | 原码率 | AAC |
8、上传后多久可以发布成功?
上传完成后,会自动进行转码,转码时间与视频时长、码率、源视频是否标准等因素相关,因此每个视频转码时间略有差异,您可以根据实际情况,上传测试视频进行试验。
9、如何得知转码完成并发布成功?
可以在控制台设置回调地址,每个视频发布成功时,会将消息通知到回调地址中。
10、如何下载点播文件?
通过控制台/接口进行点播文件下载,可下载某个码率的视频文件,也可进行文件批量下载。下载需要先进行下载地址生成,地址生成后可进行下载,下载地址有效期为7天,过期后需重新请求生成下载地址。
11、如何获取视频播放地址?
目前只可通过控制台预览,以及集成JS SDK、Android SDK、iOS SDK的方式进行观看。
12、如何保障视频观看的安全性?
为确保观看安全,提供观看直播权限的access_token,在SDK集成时需要进行token验证,SDK将按您赋予的权限进行相关的权限验证,可设置access_token的有效期,有效期最长为1天,最小为1秒。
token生成可通过API在线测试工具,也可通过接口的方式。
13、支持哪些播放统计?
支持流量空间和点播视频:看分析方面的数据统计,具体数据信息可登录控制台进行查看:http://www.vhallyun.com/console/app/index
1、如何购买点播服务?
使用微吼云平台服务,需要预先在账户进行充值,账户中心中点击充值,输入充值金额,点击提交,订单完成后完成充值,或者联系您的客户经理。
账户充值链接:http://www.vhallyun.com/console/financing/index
2、点播服务的计费方式?
点播服务采用后付费的计费方式,计费项包含点播存储、点播流量、点播转码、点播下载几项。
具体的服务定价规则查看:http://www.vhallyun.com/document/detail/index?project_id=37&doc_id=887
3、账户余额不足时会进行提醒吗?
用户可在账户中心设置余额提醒,默认为0,低于设置的余额时会通过短信的方式对用户进行提醒,及时充值,确保服务的顺利使用。
4、欠费后会立刻停止服务吗?
欠费后工作人员会与您进行联系,如还未进行充值,将会停掉您的服务。 开通策略:账户充值余额为正后则会自动开通服务。