• 沒有找到結果。

创建水印模板_视频点播 VOD_API参考_水印模板管理_华为云

N/A
N/A
Protected

Academic year: 2022

Share "创建水印模板_视频点播 VOD_API参考_水印模板管理_华为云"

Copied!
247
0
0

加載中.... (立即查看全文)

全文

(1)

API 参考

文档版本 01

发布日期 2022-02-17

(2)

版权所有 © 华为技术有限公司 2022。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

(3)

目 录

1 使用前必读... 1

2 API 概览... 5

3 如何调用 API...9

3.1 构造请求...9

3.2 认证鉴权... 13

3.3 返回结果... 14

4 应用示例...17

4.1 示例 1:媒资上传(20M 以下)... 17

4.2 示例 2:媒资分段上传(20M 以上)...21

4.3 示例 3:获取媒资详情... 29

4.4 示例 4:视频处理...32

5 媒资上传...35

5.1 创建媒资:上传方式... 35

5.2 获取分段上传授权... 42

5.3 确认媒资上传...46

5.4 桶授权...48

5.5 创建媒资:OBS 转存方式... 50

5.6 创建媒资:OBS 托管方式... 56

5.7 创建媒资:URL 拉取注入... 59

5.8 上传检验... 65

6 媒资处理...69

6.1 视频更新... 69

6.2 媒资处理... 73

6.3 取消媒资转码任务... 77

6.4 音频提取... 79

6.5 取消提取音频任务... 81

6.6 创建审核媒资任务... 83

6.7 设置封面... 86

7 媒资管理...89

7.1 删除媒资... 89

7.2 媒资发布... 92

(4)

7.3 媒资发布取消... 100

7.4 查询媒资信息... 108

7.5 修改媒资属性... 119

7.6 查询指定媒资的详细信息... 121

7.7 查询媒资列表... 133

8 OBS 托管管理...141

8.1 查询托管任务... 141

8.2 查询托管任务详情... 144

8.3 查询托管媒资详情... 152

9 媒资预热... 162

9.1 CDN 预热... 162

9.2 查询 CDN 预热... 164

10 媒资分类... 168

10.1 创建媒资分类...168

10.2 修改媒资分类...171

10.3 删除媒资分类...173

10.4 查询指定分类信息... 175

11 密钥查询... 178

11.1 密钥查询... 178

12 统计分析... 181

12.1 查询 CDN 统计信息... 181

12.2 查询源站统计信息... 185

12.3 查询 TopN 媒资信息... 188

12.4 查询域名播放日志... 191

13 转码模板组管理... 195

13.1 创建自定义转码模板组... 195

13.2 查询转码模板组列表...200

13.3 修改自定义转码模板组... 205

13.4 删除自定义转码模板组... 209

14 水印模板管理... 212

14.1 创建水印模板...212

14.2 修改水印模板...216

14.3 查询水印列表...218

14.4 删除水印模板...222

14.5 确认水印图片上传... 224

15 附录... 227

15.1 状态码...227

15.2 错误码...228

15.3 获取项目 ID... 235

(5)

15.4 获取账号 ID... 236 15.5 生成 MD5 值... 237

16 修订记录... 239

(6)

1 使用前必读

概述

视频点播服务(Video on Demand)是集视频上传、自动化转码处理、媒体资源管 理、分发加速、视频播放于一体的一站式解决方案。借助华为云提供灵活弹性解决方 案,您无需关注服务依赖的底层基础设施,只需要依托高质量的媒体处理服务来快速 搭建安全、弹性的点播平台。

您可以使用本文档提供API对视频点播进行相关操作,如音视频上传、转码、分类、管 理等。支持的全部操作请参见API概览。

在调用视频点播API之前,请确保已经充分了解视频点播相关概念,详细信息请参见产 品介绍。

调用说明

视频点播提供了REST(Representational State Transfer)风格API,支持您通过 HTTPS请求调用,调用方法请参见如何调用API。

同时视频点播还提供多种编程语言的SDK供您使用,SDK的使用方法请参见VOD SDK。

终端节点

终端节点即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和 终端节点中查询服务的终端节点。

约束与限制

视频点播服务设置了API流控限制,避免因短时间内重复调用API导致服务中断的情况 出现。API流控限制说明如表1-1所示。

(7)

1-1 API 流控限制

接口分类 接口名称 单租户接口流控

(单位:次数/

分钟)

接口总体流控

(单位:次数/

分钟)

媒资上传 ● 创建媒资:上传方式

● 获取分段上传授权

● 确认上传

● 桶授权

● 创建媒资:OBS转存方 式

● 创建媒资:OBS托管方 式

● 创建媒资:URL拉取注 入

● 上传检验

1500 12000

媒资管理 ● 删除媒资

● 媒资发布

● 媒资发布取消

● 修改媒资属性

100 1000

● 查询媒资信息

● 查询指定媒资的详细信 息

● 查询媒资列表

1500 12000

OBS托管 ● 查询托管任务

● 查询托管任务详情

● 查询托管媒资详情

1500 12000

媒资预热 ● 媒资预热

● 查询预热结果

100 1000

媒资处理 ● 视频处理

● 视频更新

● 音频提取

● 视频审核

● 设置封面

100 1000

媒资分类 ● 创建媒资分类

● 修改媒资分类

● 删除媒资分类

● 查询指定分类信息

100 1000

(8)

接口分类 接口名称 单租户接口流控

(单位:次数/

分钟)

接口总体流控

(单位:次数/

分钟)

密钥查询 密钥查询 1500 12000

统计分析 ● 查询CDN统计信息

● 查询源站统计信息

● 查询TopN媒资信息

● 查询域名播放日志

100 1000

转码模板组管理 ● 创建自定义转码模板组

● 查询转码模板组列表

● 修改自定义转码模板组

● 删除自定义转码模板组

1500 12000

水印模板管理 ● 创建水印模板

● 查询水印模板

● 修改水印模板

● 删除水印模板

● 确认水印图片上传

1500 12000

基本概念

● 账号

用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以 重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建 议您不要直接使用账号进行日常管理工作,而是创建用户并使用创建的用户进行 日常管理工作。

● 用户

由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问 密钥)。

在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需 要用到账号、用户和密码等信息。

● 区域

指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互 通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户的要 求,或满足不同地区的法律或其他要求。

● 可用区

一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上 再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高 速光纤相连,以满足用户跨AZ构建高可用性系统的需求。

● 项目

区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计 算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您

(9)

账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默 认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授 权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。

1-1 项目隔离模型

(10)

2 API 概览

视频点播服务对应的接口列表如下所示,在调用点播API前,您需要先获取用户 Token,Token可以用于调用其他API时鉴权,具体如何调用点播API请参考快速入门。

媒资上传

接口 说明

POST /v1.0/{project_id}/asset 创建媒资:上传方式 GET /v1.1/{project_id}/asset/authority 获取分段上传授权 POST /v1.0/{project_id}/asset/status/uploaded 确认媒资上传 PUT /v1.0/{project_id}/asset/authority 桶授权

POST /v1.0/{project_id}/asset/reproduction 创建媒资:OBS转存方式 POST /v1.0/{project_id}/asset/obs/host/stock/

task 创建媒资:OBS托管方式

POST /v1.0/{project_id}/asset/upload_by_url 创建媒资:URL拉取注入 GET /v1.0/{project_id}/asset/duplication 上传检验

媒资处理

接口 说明

PUT /v1.0/{project_id}/asset 视频更新 POST /v1.0/{project_id}/asset/process 媒资处理

DELETE /v1.0/{project_id}/asset/process 取消媒资转码任务 POST /v1.0/{project_id}/asset/extract_audio 音频提取

DELETE /v1.0/{project_id}/asset/extract_audio 取消提取音频任务 POST /v1.0/{project_id}/asset/review 创建审核媒资任务

(11)

接口 说明 PUT /v1.0/{project_id}/asset/cover 设置封面

媒资管理

接口 说明

DELETE /v1.0/{project_id}/asset 删除媒资 POST /v1.0/{project_id}/asset/status/publish 媒资发布 POST /v1.0/{project_id}/asset/status/unpublish 媒资发布取消 GET /v1.0/{project_id}/asset/info 查询媒资信息 PUT /v1.0/{project_id}/asset/info 修改媒资属性

GET /v1.0/{project_id}/asset/details 查询指定媒资的详细信息 GET /v1.0/{project_id}/asset/list 查询媒资列表

OBS 托管管理

接口 说明

GET /v1.0/{project_id}/asset/obs/host/stock/

task 查询托管任务

GET /v1.0/{project_id}/asset/obs/host/stock/

task/details 查询托管任务详情

GET /v1.0/{project_id}/asset/obs/host/task/

details 查询托管媒资详情

媒资预热

接口 说明

POST /v1.0/{project_id}/asset/preheating CDN预热 GET /v1.0/{project_id}/asset/preheating 查询CDN预热

媒资分类

接口 说明

POST /v1.0/{project_id}/asset/category 创建媒资分类

(12)

接口 说明

PUT /v1.0/{project_id}/asset/category 修改媒资分类 DELETE /v1.0/{project_id}/asset/category 删除媒资分类 GET /v1.0/{project_id}/asset/category 查询指定分类信息

密钥查询

接口 说明

GET /v1.0/{project_id}/asset/ciphers 查询密钥

统计分析

接口 说明

GET /v1.0/{project_id}/asset/cdn-statistics 查询CDN统计信息 GET /v1.0/{project_id}/asset/vod-statistics 查询源站统计信息 GET /v1.0/{project_id}/asset/top-statistics 查询TopN视频信息 GET /v1.0/{project_id}/vod/cdn/logs 查询域名播放日志

转码模板组管理

接口 说明

POST /v1.0/{project_id}/asset/template_group/

transcodings 创建自定义转码模板组

GET /v1.0/{project_id}/asset/template_group/

transcodings 查询转码模板组列表

PUT /v1.0/{project_id}/asset/template_group/

transcodings 修改自定义转码模板组

DELETE /v1.0/{project_id}/asset/

template_group/transcodings 删除自定义转码模板组

水印模板管理

接口 说明

POST /v1.0/{project_id}/template/watermark 创建水印模板

(13)

接口 说明

PUT /v1.0/{project_id}/template/watermark 修改水印模板 GET /v1.0/{project_id}/template/watermark 查询水印列表 DELETE /v1.0/{project_id}/template/watermark 删除水印模板 POST /v1.0/{project_id}/watermark/status/

uploaded 确认水印图片上传

(14)

3 如何调用 API

3.1 构造请求 3.2 认证鉴权 3.3 返回结果

3.1 构造请求

本节介绍REST API请求的组成,并以调用IAM服务的获取用户Token获取用户Token说 明如何调用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。

您还可以通过这个视频教程了解如何构造请求调用API:https://

bbs.huaweicloud.com/videos/102987。

请求 URI

请求URI由如下部分组成:

{URI-scheme}://{Endpoint}/{resource-path}?{query-string}

尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传 递它,所以在此单独强调。

3-1 URI 中的参数说明

参数 描述

URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。

Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的 Endpoint不同,您可以从管理员处地区和终端节点获取。

例如IAM服务在“华北-北京四 ”区域的Endpoint为“iam.cn- north-4.myhuaweicloud.com”。

resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如

“获取用户Token”API的resource-path为“/v3/auth/tokens”。

(15)

参数 描述

query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数 前面需要带一个“?”,形式为“参数名=参数取值”,例如“?

limit=10”,表示查询不超过10条数据。

例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域 的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部 分找到resource-path(/v3/auth/tokens),拼接起来如下所示。

https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

3-1 URI 示意图

说明

为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。

这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分 省略。

请求方法

HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。

3-2 HTTP 方法

方法 说明

GET 请求服务器返回指定资源。

PUT 请求服务器更新指定资源。

POST 请求服务器新增资源或执行特殊操作。

DELETE 请求服务器删除指定资源,如删除对象等。

HEAD 请求服务器资源头部。

PATCH 请求服务器更新资源的部分内容。

当资源不存在的时候,PATCH可能会去创建一个新的资 源。

在获取用户Token获取用户Token的URI部分,您可以看到其请求方法为“POST”,则 其请求为:

(16)

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens POST https://{{endpoint}}/v3/auth/tokens

请求消息头

附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请 求头“Content-Type”,请求鉴权信息等。

详细的公共请求消息头字段请参见表3-3。

3-3 公共请求消息头

名称 描述 是否必选 示例

Host 请求的服务器信

息,从服务API的 URL中获取。值为 hostname[:port]。

端口缺省时使用默 认的端口,https的 默认端口为443。

使用AK/SK认 证时该字段必 选。

code.test.com or

code.test.com:443

Content-Type 消息体的类型(格 式)。推荐用户使 用默认值application/json,

有其他取值时会在 具体接口中专门说 明。

是 application/json

Content-

Length 请求body长度,单

位为Byte。 否 3495

X-Project-Id project id,项目编 号。请参考15.3 获 取项目ID章节获取 项目编号。

如果是专属云 场景采用AK/SK认证方 式的接口请求 或者多project 场景采用AK/SK认证的 接口请求,则 该字段必选。

e9993fc787d94b6c886cb aa340f9c0f4

(17)

名称 描述 是否必选 示例 X-Auth-Token 用户Token。

用户Token也就是调 用获取用户Token获 取用户Token接口的 响应值,该接口是 唯一不需要认证的 接口。

请求响应成功后在 响应消息头

(Headers)中包含 的“X-Subject- Token”的值即为 Token值。

使用Token认 证时该字段必 选。

注:以下仅为Token示例片 段

MIIPAgYJKoZIhvcNAQcCo ...ggg1BBIINPXsidG9rZ

说明

API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中 添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。

AK/SK认证的详细说明请参见3.2 认证鉴权的“AK/SK认证”。

对于获取用户Token获取用户Token接口,由于不需要认证,所以只添加“Content- Type”即可,添加消息头后的请求如下所示。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

POST https://{{endpoint}}/v3/auth/tokens Content-Type: application/json

请求消息体(可选)

该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中 Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中 文,则中文字符必须为UTF-8编码。

每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。

对于获取用户Token获取用户Token接口,您可以从接口的请求部分看到所需的请求参 数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填 写,其中

username

为用户名,

domainname

为用户所属的帐号帐号名称,

********

为 用户登录密码,

xxxxxxxxxxxxxxxxxx

为project的名称,如“cn-north-1”,您可以从 管理员处地区和终端节点获取。

说明

scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可 以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获 取用户Token获取用户Token。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens POST https://{{endpoint}}/v3/auth/tokens

Content-Type: application/json

(18)

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "********", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "xxxxxxxxxxxxxxxxxx"

} } } }

到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编 写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x- subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认 证调用其他API。

3.2 认证鉴权

调用接口支持使用Token认证。

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。

● Token认证:通过Token认证调用请求。

● AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。

推荐使用AK/SK认证,其安全性比Token认证要高。

Token 认证

说明

Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。

Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得 操作API的权限。Token可通过调用获取用户Token获取用户Token接口获取。

云服务存在两种部署方式:项目级服务和全局级服务。其中:

● 项目级服务需要获取项目级别的Token,此时请求body中auth.scope的取值为 project。

● 全局级服务需要获取全局级别的Token,此时请求body中auth.scope的取值为 domain。

调用本服务API需要项目级别的Token,即调用获取用户Token获取用户Token接口时,

请求body中auth.scope的取值需要选择project,如下所示。

{ "auth": {

(19)

"identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "********", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "xxxxxxxx"

} } } }

获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,

其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token:

ABCDEFJ....”加到请求消息头即可,如下所示。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects POST https://{{endpoint}}/v3/auth/projects

Content-Type: application/json X-Auth-Token: ABCDEFJ....

您还可以通过这个视频教程了解如何使用Token认证:https://

bbs.huaweicloud.com/videos/101333。

AK/SK 认证

说明

AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。

AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而 通过身份认证。

● AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密 钥ID和私有访问密钥一起使用,对请求进行加密签名。

● SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签 名,可标识发送方,并防止请求被修改。

使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门 的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。

说明

签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。

3.3 返回结果

状态码

请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。

(20)

状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码 列表请参见15.1 状态码。

对于获取用户Token获取用户Token接口,如果调用后返回状态码为“201”,则表示 请求成功。

响应消息头

对应请求消息头,响应同样也有消息头,如“Content-type”。

对于获取用户Token获取用户Token接口,返回如图3-2所示的消息头,其中“x- subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认 证调用其他API。

3-2 获取用户 Token 响应消息头

响应消息体(可选)

该部分可选。响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中 Content-Type对应,传递除响应消息头之外的内容。

对于获取用户Token获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示 部分内容。

{ "token": {

"expires_at": "2019-02-13T06:52:13.855000Z", "methods": [

"password"

],

"catalog": [ {

"endpoints": [ {

"region_id": "az-01", ...

当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所 示。

(21)

{ "error_msg": "The format of message is error", "error_code": "AS.0001"

}

其中,error_code表示错误码,error_msg表示错误描述信息。

(22)

4 应用示例

4.1 示例1:媒资上传(20M以下)

4.2 示例2:媒资分段上传(20M以上)

4.3 示例3:获取媒资详情 4.4 示例4:视频处理

4.1 示例 1:媒资上传(20M 以下)

场景描述

若您需要将存储在本地的音视频文件上传到点播服务,并在上传后,自动处理音视 频,如发布、转码等,您可以调用VOD API进行媒资创建,并通过OBS API将音视频文 件上传到VOD的存储桶中。

本章节指导用户如何使用API调用的方式上传一个大小20M以下的视频文件。

前提条件

● 已明确需要上传媒资的点播服务所在的区域信息,并获取该区域的Endpoint,您 可以从地区和终端节点获取。

● 已获取需要上传到对应点播服务所在区域的项目ID,具体获取方法请参见15.3 获 取项目ID。

(23)

总体流程

4-1 媒资上传流程

1. 调用创建媒资:上传方式接口创建媒资。

2. 使用PUT方法将本地媒资文件上传。

3. 调用确认媒资上传接口完成媒资创建确认。

操作步骤

步骤1 获取用户Token,用于调用点播接口时进行认证鉴权。

详细信息请参见3.1 构造请求。以“华北-北京四”为示例,若您需要调用其它区域的 点播接口,请替换成对应区域的IAM终端节点。

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "password", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "projectname"

(24)

} } }}

如图4-2所示,红框中的信息为获取用户Token。

4-2 获取用户 Token

步骤2 调用创建媒资:上传方式接口,创建媒资,在请求头中增加“X-Auth-Token”字段,

其中“Value”为步骤1获取的。

POST https://vod.cn-north-4.myhuaweicloud.com/v1.0/{project_id}/asset { "title": "test",

"description": "test", "category_id": 87748, "video_name": "test.mp4", "video_type": "MP4", "cover_type": "PNG", "tags":"mytags,test", "auto_publish": 0,

"template_group_name":"test", "subtitles":[

{ "id":1,

"language":"CN", "type": "SRT",

"md5": "SqcyFjJZoDZaP8oKIY6rgQ==", "description":"AAAAA" ,

"name":"cc.srt"

} ],

"thumbnail":{

"type":"time", "cover_position":1 },

"review":{

"interval":10, "politics":-1, "terrorism":-1, "porn":-1 } }

“vod.cn-north-4.myhuaweicloud.com”为点播服务的终端节点,您可以在VOD终端 节点中获取。

(25)

说明

调用IAM接口的区域需与调用点播接口的区域一致,如调用“cn-north-4”区域的IAM接口获取 用户Token,则该Token仅能用于调用“cn-north-4”区域点播接口的鉴权。

步骤3 在返回参数中获取“video_upload_url”,“cover_upload_url”和

“subtitle_upload_urls”。

{ "asset_id": "3f40a2c7c60454f5f84381e0313ca230",

"video_upload_url": "https://vod-bucket-81.obs.cn-north-4.myhuaweicloud.com:

443/474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/

cdeda86cd1b7b3dd760a3ff28a5ee497.mp4?

AWSAccessKeyId=BG923RWHL4HFXOGKCVAL&Expires=1560420274&Signature=9f

%2BZcdD6SwjIU5ARHYiP6YY1Lyw%3D",

"cover_upload_url": "https://vod-bucket-81.obs.cn-north-4.myhuaweicloud.com:

443/474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/cover/Cover0.png?

AWSAccessKeyId=BG923RWHL4HFXOGKCVAL&Expires=1560420274&Signature=4Aa88NK%2By

%2By1Xo0RvLpOvuaFCoE%3D", "subtitle_upload_urls": [

"https://vod-bucket-81.obs.cn-north-4.myhuaweicloud.com:

443/474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/subtitle/1.srt?

AWSAccessKeyId=BG923RWHL4HFXOGKCVAL&Expires=1560420274&Signature=l0UclE9yfaVrxkl0kaNnr

%2BemG98%3D"

], "target": {

"bucket": "vod-bucket-81", "location": "cn-north-4",

"object": "474bcff2992f4be5b883a2fb9cec7343/3f40a2c7c60454f5f84381e0313ca230/

cdeda86cd1b7b3dd760a3ff28a5ee497.mp4"

}}

步骤4 使用PUT请求分别向“video_upload_url”,“cover_upload_url”和

“subtitle_upload_urls”中上传视频文件、封面图片和字幕文件。

其中,请求头“Content-Type”需要根据上传的文件类型分别设置,如下所示:

● 视频文件:video/视频格式,如:“video/mp4”。更多视频文件格式对应的请求 头填写规则,请参见表4-1。

● 图片文件:image/图片格式,如:“image/png”。

● 字幕文件:application/octet-stream。

4-1 请求头填写说明

文件后缀 Content-Type

MP4 video/mp4

MOV video/quicktime

MXF application/mxf

TS video/mp2t

MPG video/mpeg

FLV video/flv

WMV video/x-ms-wmv

AVI video/x-msvideo

(26)

文件后缀 Content-Type

M4V video/m4v

F4V application/f4v

MPEG video/mpeg

M3U8 application/octet-stream

_3GP/3GP video/3gpp

ASF video/x-ms-asf

MKV video/x-matroska

WEBM video/webm

MPD video/dash

步骤5 调用接口确认媒资上传接口,完成媒资上传。

POST https://vod.cn-north-4.myhuaweicloud.com/v1.0/{project_id}/asset/status/uploaded { "asset_id": "0f4d3f1f32ec353d8866f2d84a036124",

"status":"CREATED"

}

----结束

媒资上传成功后,您可以在视频点播控制台查看媒资相关详细信息。

4.2 示例 2:媒资分段上传(20M 以上)

场景描述

4.1 示例1:媒资上传(20M以下)已介绍了如何将小于20M大小的音视频文件上传到 点播服务。若您需要上传的音视频文件的大小大于20M,您可以调用VOD API进行分 段上传。

本章节指导用户如何使用API调用的方式上传一个文件大小大于20M的视频文件。

前提条件

● 已明确需要上传媒资的点播服务所在的区域信息,并获取该区域的Endpoint,您 可以从地区和终端节点获取。

● 已获取需要上传到对应点播服务所在区域的项目ID,具体获取方法请参见15.3 获 取项目ID。

● 待上传的视频文件已完成二进制流分割,每个分段的大小不能超过20M。

(27)

总体流程

4-3 媒资上传流程

1. 获取用户Token

2. 创建点播媒资

3. 获取初始化上传任务的授权

4. 初始化上传任务

(28)

5. 获取上传分段的授权 6. 上传分段

7. 参考5-6,将所有视频分段上传

8. 获取列举已上传分段的授权

9. 获取已上传的分段

10. 获取合并段的授权

11. 合并上传的分段

12. 确认媒资上传

操作步骤

步骤1 获取用户Token,用于调用点播接口时进行认证鉴权。

详细信息请参见3.1 构造请求。以“华北-北京四”为示例,若您需要调用其它区域的 点播接口,请替换成对应区域的IAM终端节点。

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "password", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "projectname"

} } }}

如图4-4所示,红框中的信息为获取用户Token。

(29)

4-4 获取用户 Token

步骤2 调用创建媒资:上传方式接口,创建媒资。

1. 选择POST请求方法并输入URI。

https://vod.cn-north-4.myhuaweicloud.com/v1.0/{project_id}/asset

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入参数如下:

{ "title": "testVideo", "description": "test", "category_id": 87748, "video_name": "test.mp4", "video_type": "MP4", "auto_publish": 0 }

说明

示例仅设置了部分媒资参数,您可以根据实际需求参考创建媒资:上传方式接口的请求参 数设置。

4. 请求响应成功后,返回处理媒资ID、视频上传地址及存储视频文件的OBS桶信 息。{

"asset_id": "fea62a2845e43c37b4cbfb017c0d0821",

"video_upload_url": "https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596700132&Signature=GiHTcO2avO9B84sH8A 5wL2GieCI%3D",

"cover_upload_url": null, "subtitle_upload_urls": [], "target": {

"bucket": "vod-bucket-65-cn-north-4", "location": "cn-north-4",

"object": "05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4"

} }

步骤3 调用获取分段上传授权接口,向OBS获取初始化上传任务的授权。

1. 选择GET请求方法并输入URI。

https://vod.cn-north-4.myhuaweicloud.com/v1.1/{project_id}/asset/authority?

http_verb=POST&content_type=video/mp4&bucket=vod-bucket-65-cn-

(30)

north-4&object_key=05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4

– http_verb:分段上传时调用OBS接口的HTTP方法,具体操作需要的HTTP方 法请参见OBS API参考。

– content_type:文件类型对应的HTTP Content-type,您需要根据上传的视频 格式进行设置,如MP4格式对应的是“video/mp4”。

– bucket:存储视频文件的OBS桶,步骤2.d中返回的对应“bucket”字段。

– object_key:OBS桶中的对象名,步骤2.d中返回的对应“object”字段。

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. 请求响应成功后,返回授权信息。

{ "sign_str": "https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

uploads&AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596706429&Signature=5D15iJUcTko WLpE2vn54FQZskXA%3D"

}

步骤4 调用OBS的初始化上传段任务接口,初始化视频分段上传任务。

1. 选择POST请求方法并输入步骤3.c返回的已授权URI。

https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

uploads&AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596706429&Signature=5D15iJUcTko WLpE2vn54FQZskXA%3D

2. 请求消息头中增加“Content-Type”,值设置为文件类型,请根据实际上传,如 MP4格式设置为“video/mp4”。

3. 请求成功,返回初始化信息。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<InitiateMultipartUploadResult xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">

<Bucket>vod-bucket-65-cn-north-4</Bucket>

<Key>05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4</Key>

<UploadId>00000173C2ED862344C835374DFE33C8</UploadId>

</InitiateMultipartUploadResult>

步骤5 调用获取分段上传授权接口,获取分段上传的授权。

1. 选择GET请求方法并输入URI。

https://vod.cn-north-4.myhuaweicloud.com/v1.1/{project_id}/asset/authority?

http_verb=PUT&content_type=video/mp4&bucket=vod-bucket-65-cn-

north-4&object_key=05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4&content_md5=hHZXtgjYL2fmLpu%2byQ%2bXgg%3d

%3d&upload_id=00000173C2ED862344C835374DFE33C8&part_number=1

– http_verb:分段上传的HTTP方法为PUT。

– content_type:文件类型对应的HTTP Content-type,您需要根据上传的视频 格式进行设置,如MP4格式对应的是“video/mp4”。

– bucket:存储视频文件的OBS桶,步骤2.d中返回的对应“bucket”字段。

– object_key:OBS桶中的对象名,步骤2.d中返回的对应“object”字段。

– content_md5:每个视频分段的MD5值,该值为可选设置,具体生成方法可 以参考15.5 生成MD5值。

– upload_id:上传任务的id,步骤4.c返回的“UploadId”字段。

– part_number:每一个上传段的段号。

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

(31)

3. 请求响应成功后,返回分段上传的授权信息。

{ "sign_str": "https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596708691&partNumber=1&uploadId=000001 73C2ED862344C835374DFE33C8&Signature=cjw3CmUFeNBFAuLWBTsPRp9NfsQ%3D"

}

步骤6 调用OBS的上传段接口,上传视频文件的第一个分段。

1. 选择PUT请求方法并输入步骤5.c返回的已授权URI。

https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596708691&partNumber=1&uploadId=000001 73C2ED862344C835374DFE33C8&Signature=cjw3CmUFeNBFAuLWBTsPRp9NfsQ%3D

2. 请求消息头中增加“Content-Type”,值设置为“application/octet-stream”。

若步骤5.a设置了“content_md5”参数,则请求消息头中必须增加“Content- MD5”,值设置为对应分段的MD5值,否则将会导致上传失败。

3. 请求Body中使用二进制方式上传视频文件的第一个分段。

4. 请求成功,返回状态码“200 OK”。

步骤7 参考操作步骤5-步骤6,上传视频文件的所有分段。

步骤8 调用获取分段上传授权接口,获取列举已上传段的授权。

1. 选择GET请求方法并输入URI。

https://vod.cn-north-4.myhuaweicloud.com/v1.1/{project_id}/asset/authority?

http_verb=GET&bucket=vod-bucket-65-cn-north-4&object_key=05041fffa4002****f6dc009cc6f8f33/

fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4&upload_id=000001717E28524B44CEFF2C2CE1B06A

– http_verb:合并段的HTTP方法为GET。

– bucket:存储视频文件的OBS桶,步骤2.d中返回的对应“bucket”字段。

– object_key:OBS桶中的对象名,步骤2.d中返回的对应“object”字段。

– upload_id:上传任务的id,步骤4.c返回的“UploadId”字段。

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. 请求响应成功后,返回列举已上传段的授权信息。

{ "sign_str": "https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596710054&uploadId=000001717E28524B44C EFF2C2CE1B06A&Signature=G5EOUr488cyPIretp8lgQZmpPw0%3D"

}

步骤9 调用OBS的列举已上传的段接口,获取视频文件所有上传段的相关信息。

1. 择GET请求方法并输入步骤8.c返回的已授权URI。

https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596710054&uploadId=000001717E28524B44C EFF2C2CE1B06A&Signature=G5EOUr488cyPIretp8lgQZmpPw0%3D

2. 请求成功,返回已上传段的相关信息。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<ListPartsResult xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">

<Bucket>vod-bucket-65-cn-north-4</Bucket>

<Key>05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4</Key>

<UploadId>00000173C2ED862344C835374DFE33C8</UploadId>

(32)

<Initiator>

<ID>d9235b9f3cf549499924f6de095241af:a96ecebcb3994e34b074e48f3dfc8237</ID>

<DisplayName>xxx</DisplayName>

</Initiator>

<Owner>

<ID>d9235b9f3cf549499924f6de095241af</ID>

<DisplayName>xxx</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

<PartNumberMarker>0</PartNumberMarker>

<NextPartNumberMarker>4</NextPartNumberMarker>

<MaxParts>1000</MaxParts>

<IsTruncated>false</IsTruncated>

<Part>

<PartNumber>1</PartNumber>

<LastModified>2020-08-06T09:05:10.192Z</LastModified>

<ETag>"847657b608d82f67e62e9bbec90f9782"</ETag>

<Size>10000000</Size>

</Part>

<Part>

<PartNumber>2</PartNumber>

<LastModified>2020-08-06T08:02:02.821Z</LastModified>

<ETag>"9a6a36ed9086a3a2fea130220e1e809c"</ETag>

<Size>10000000</Size>

</Part>

<Part>

<PartNumber>3</PartNumber>

<LastModified>2020-08-06T08:04:19.711Z</LastModified>

<ETag>"3a3afe552832bee0faf081c1e720067e"</ETag>

<Size>10000000</Size>

</Part>

<Part>

<PartNumber>4</PartNumber>

<LastModified>2020-08-06T07:23:17.160Z</LastModified>

<ETag>"6335af859c20ccef26b27ea691e7ecf7"</ETag>

<Size>7472445</Size>

</Part>

</ListPartsResult>

步骤10 调用获取分段上传授权接口,获取合并段授权。

1. 选择GET请求方法并输入URI。

https://vod.cn-north-4.myhuaweicloud.com/v1.1/{project_id}/asset/authority?

http_verb=POST&bucket=vod-bucket-65-cn-north-4&object_key=05041fffa4002****f6dc009cc6f8f33/

fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4&upload_id=00000173C2ED862344C835374DFE33C8

– http_verb:合并段的HTTP方法为POST。

– bucket:存储视频文件的OBS桶,步骤2.d中返回的对应“bucket”字段。

– object_key:OBS桶中的对象名,步骤2.d中返回的对应“object”字段。

– upload_id:上传任务的id,步骤4.c返回的“UploadId”字段。

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. 请求响应成功后,返回合上传段的授权信息。

{ "sign_str": "https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596709340&uploadId=000001717E28524B44C EFF2C2CE1B06A&Signature=Pa6IaMbH1Ofa0Vi%2BCbkdgmWzm70%3D"

}

步骤11 调用OBS的合并段接口,将上传的分段合并成一个视频文件。

1. 选择POST请求方法并输入步骤10.c返回的已授权URI。

https://vod-bucket-65-cn-north-4.obs.cn-north-4.myhuaweicloud.com:

443/05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

(33)

d1f221f09f6bffefb882c8f9e167483a.mp4?

AWSAccessKeyId=MZH0LUL329N1SSXNB3S4&Expires=1596708691&partNumber=1&uploadId=000001 73C2ED862344C835374DFE33C8&Signature=cjw3CmUFeNBFAuLWBTsPRp9NfsQ%3D

2. 请求消息头中增加“Content-Type”,值设置为“application/xml”。

3. Request Body中传入参数如下:

<CompleteMultipartUpload>

<Part>

<PartNumber>1</PartNumber>

<ETag>"847657b608d82f67e62e9bbec90f9782"</ETag>

</Part>

<Part>

<PartNumber>2</PartNumber>

<ETag>"9a6a36ed9086a3a2fea130220e1e809c"</ETag>

</Part>

<Part>

<PartNumber>3</PartNumber>

<ETag>"3a3afe552832bee0faf081c1e720067e"</ETag>

</Part>

<Part>

<PartNumber>4</PartNumber>

<ETag>"6335af859c20ccef26b27ea691e7ecf7"</ETag>

</Part>

</CompleteMultipartUpload>

– PartNumber:上传的段号。

– ETag:上传段成功后返回的ETag值,步骤9.b中的返回信息有每个段对应的 ETag值。

4. 请求成功,返回合并段的相关信息。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<CompleteMultipartUploadResult xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/

2015-06-30/">

<Location>05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4</Location>

<Bucket>vod-bucket-65-cn-north-4</Bucket>

<Key>05041fffa4002****f6dc009cc6f8f33/fea62a2845e43c37b4cbfb017c0d0821/

d1f221f09f6bffefb882c8f9e167483a.mp4</Key>

<ETag>"87f450dd18b666dfcdf902ac6b162b5a-4"</ETag>

</CompleteMultipartUploadResult>

步骤12 调用确认媒资上传接口,完成媒资上传确认。

1. 选择POST请求方法并输入URI。

https://vod.cn-north-4.myhuaweicloud.com/v1.0/{project_id}/asset/status/uploaded

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入参数如下:

{ "asset_id": "fea62a2845e43c37b4cbfb017c0d0821", "status":"CREATED"

}

4. 请求响应成功后,返回媒资ID。

{ "asset_id": "fea62a2845e43c37b4cbfb017c0d0821"

}

----结束

(34)

4.3 示例 3:获取媒资详情

场景描述

若您需要查询一个或多个媒资的基本信息、转码文件生成信息、截图信息及审核信 息,您可以调用VOD API进行查询。

本章节指导用户如何使用API调用的方式获取存储在VOD中的媒资的详情信息。

前提条件

● 已明确需要查询的媒资所在区域信息,并获取该区域的Endpoint,您可以从地区 和终端节点获取。

● 已获取需要查询的媒资所在区域的项目ID,具体获取方法请参见15.3 获取项目 ID。

总体流程

1. 获取用户Token

2. 查询媒资详细信息

操作步骤

步骤1 获取用户Token,用于调用点播接口时进行认证鉴权。

详细信息请参见3.1 构造请求。以“华北-北京四”为示例,若您需要调用其它区域的 点播接口,请替换成对应区域的IAM终端节点。

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "password", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "projectname"

} } }}

如图4-5所示,红框中的信息为获取用户Token。

(35)

4-5 获取用户 Token

步骤2 调用查询媒资信息接口,查询媒资详情信息。

1. 选择GET请求方法并输入URI。

https://{endpoint}/v1.0/{project_id}/asset/details?

asset_id=41cff636d5b12a51e7eb2838bbf45201&categories=base_info,transcode_info&thumbnail_info,r eview_info

“categories”为查询媒资信息的类型,您可以选择一个或者多个类型进行查询,

具体取值如下所示:

– base_info:查询媒资基本信息,包含媒资标题、分类、描述、文件类型、原 始文件地址等。

– transcode_info:查询媒资转码文件信息,包含使用的转码模板、转码后的媒 资信息等。

– thumbnail_info:查询截图信息,包含截图状态、截图存储地址等。

– review_info:审核信息,包含审核是否通过,文本审核结果、封面审核结果 和视频审核结果等。

说明

仅转码、截图或审核成功时,才可查询到对应的转码信息、截图信息和审核信息。

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. 请求响应成功后,返回媒资详情信息。

{ "asset_id": "41cff636d5b12a51e7eb2838bbf45201", "base_info": {

"title": "Avatar",

"video_name": "视频点播 VOD 视频.mp4",

"description": "Avatar, marketed as James Cameron's Avatar, is a 2009 American epic science fiction film directed, written, produced, and co-edited by James Cameron",

"category_id": -1, "category_name": "其他", "create_time": "20190612032250", "last_modified": "20190613075030", "video_type": "MP4",

"tags": "test1,test2", "meta_data": { "play_type": 0, "codec": "H.264", "duration": 131, "video_size": 4942645, "width": 1280,

(36)

"hight": 720, "bit_rate": 173, "frame_rate": 30 },

"video_url": "https://355.cdn-vod.huaweicloud.com/asset/

41cff636d5b12a51e7eb2838bbf45201/5597e59de70722eaeb9b18c274e249b2.mp4", "cover_info_array": [

{

"cover_url": "https://355.cdn-vod.huaweicloud.com/asset/41cff636d5b12a51e7eb2838bbf45201/

cover/Cover0.jpg"

} ] },

"transcode_info": {

"template_group_name": "system_template_group", "output": [

{

"play_type": "HLS",

"url": "https://355.cdn-vod.huaweicloud.com/asset/41cff636d5b12a51e7eb2838bbf45201/

play_video/index.m3u8", "encrypted": 0, "meta_data": { "play_type": 0, "codec": "H.264", "duration": 0, "video_size": 0, "width": 0, "hight": 0, "bit_rate": 0, "frame_rate": 0 }

}, {

"play_type": "HLS",

"url": "https://355.cdn-vod.huaweicloud.com/asset/41cff636d5b12a51e7eb2838bbf45201/

play_video/视频点播 VOD 视频_1_854X480_600_0.m3u8", "encrypted": 0,

"quality": "SD", "meta_data": { "play_type": 0, "codec": "H.264", "duration": 130, "video_size": 7976960, "width": 854,

"hight": 480, "bit_rate": 421, "frame_rate": 30000, "quality": "SD"

} }, {

"play_type": "DASH",

"url": "https://355.cdn-vod.huaweicloud.com/asset/41cff636d5b12a51e7eb2838bbf45201/

play_video/index.mpd", "encrypted": 0, "meta_data": { "play_type": 0, "codec": "H.264", "duration": 0, "video_size": 0, "width": 0, "hight": 0, "bit_rate": 0, "frame_rate": 0 }

}, {

"play_type": "DASH", "encrypted": 0,

(37)

"quality": "SD", "meta_data": { "play_type": 0, "codec": "H.264", "duration": 130, "video_size": 7976960, "width": 854,

"hight": 480, "bit_rate": 421, "frame_rate": 30000, "quality": "SD"

} } ],

"exec_desc": "Transcode success",

"transcode_status":"TRANSCODE_SUCCEED"

}}

----结束

4.4 示例 4:视频处理

场景描述

音视频上传时,可以设置媒资处理参数,上传完成后,自动根据设置的参数进行音视 频处理。若您需要对已上传的视频进行处理,您也可以调用VOD API实现。

本章节指导用户如何使用API调用的方式处理已上传的视频文件,包括视频转码、截 图、加密等,支持同时启动多种处理操作,也可以只启动一种处理操作。

前提条件

● 已明确需要处理的视频文件所在区域信息,并获取该区域的Endpoint,您可以从 地区和终端节点获取。

● 已获取需要处理的视频文件所在区域的项目ID,具体获取方法请参见15.3 获取项 目ID。

总体流程

1. 获取用户Token

2. (可选)创建转码模板

3. (可选)设置搭建的密钥管理服务的URL

4. 创建视频处理任务

5. 查询视频处理执行情况

操作步骤

步骤1 获取用户Token,用于调用点播接口时进行认证鉴权。

详细信息请参见3.1 构造请求。以“华北-北京四”为示例,若您需要调用其它区域的 点播接口,请替换成对应区域的IAM终端节点。

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{

(38)

"auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "password", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "projectname"

} } }}

如图4-6所示,红框中的信息为获取用户Token。

4-6 获取用户 Token

步骤2 在视频点播控制台创建自定义转码模板,具体操作请参见转码设置。

您也可以使用点播服务提供的系统转码模板。创建转码模板后,您可以在视频点播控 制台获取需要使用的转码模板的模板名称。

4-7 获取转码模板名称

步骤3 在视频点播控制台配置搭建的密钥管理服务的URL,具体操作请参见HLS加密设置。

仅能对转码输出格式为HLS的视频进行加密。若不需要进行加密操作,可以跳过该步 骤。

(39)

4-8 加密设置

步骤4 创建视频处理任务。

1. 选择POST请求方法并输入URI。

https://{endpoint}/v1.0/{project_id}/asset/process

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入参数如下:

{ "asset_id": "b4f39691d66cc0ef75d62ee567146e11", "template_group_name": "test",

"auto_encrypt":0, "thumbnail":{

"type":"time", "time":12

},

"subtitle_id":[1]

}

说明

仅在4.1 示例1:媒资上传(20M以下)时,请求参数设置了“subtitles”时,才可以在视 频处理时,更换字幕文件,设置的“subtitle_id”才有效。

4. 请求响应成功后,返回处理媒资ID。

{ "asset_id": "b4f39691d66cc0ef75d62ee567146e11"

}

步骤5 调用查询详细信息接口查询视频处理执行情况,具体调用方法请参见4.3 示例3:获取 媒资详情。

视频处理任务执行的时间与视频文件的大小、设置的处理操作个数等有关,建议视频 任务提交5-10分钟后再查询执行情况。

----结束

(40)

5 媒资上传

5.1 创建媒资:上传方式 5.2 获取分段上传授权 5.3 确认媒资上传 5.4 桶授权

5.5 创建媒资:OBS转存方式 5.6 创建媒资:OBS托管方式 5.7 创建媒资:URL拉取注入 5.8 上传检验

5.1 创建媒资:上传方式

功能介绍

调用该接口创建媒资时,需要将对应的媒资文件上传到点播服务的OBS桶中。

若上传的单媒资文件大小小于20M,则可以直接用PUT方法对该接口返回的地址进行 上传。具体使用方法请参考示例1:媒资上传(20M以下)。

若上传的单个媒资大小大于20M,则需要进行二进制流分割后上传,该接口的具体使 用方法请参考示例2:媒资分段上传(20M以上)。

调试

您可以在API Explorer中调试该接口。

URI

POST /v1.0/{project_id}/asset

(41)

5-1 路径参数

参数 是否必选 参数类型 描述

project_id 是 String 项目ID,获取方法请参考获取项 目ID

请求参数

5-2 请求 Header 参数

参数 是否必选 参数类型 描述

X-Auth-Token 否 String 用户Token,使用Token鉴权方 式时必选。

通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。

Authorization 否 String 使用AK/SK方式认证时必选,携 带的鉴权信息。

X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请 求的发生时间。

5-3 请求 Body 参数

参数 是否必选 参数类型 描述

title 是 String 媒资标题,长度不超过128个字

节,UTF-8编码。

description 否 String 视频描述,长度不超过1024个 字节。

video_name 是 String 音视频文件名,长度不超过128 个字节。

文件名后缀可选。

(42)

参数 是否必选 参数类型 描述

video_type 是 String 上传音视频文件的格式。

取值如下:

● 视频文件:MP4、TS、

MOV、MXF、MPG、FLV、

WMV、AVI、M4V、F4V、

MPEG、3GP、ASF、MKV、

HLS

● 音频文件:MP3、OGG、

WAV、WMA、APE、

FLAC、AAC、AC3、MMF、

AMR、M4A、M4R、WV、

MP2

若上传格式为音频文件,则不支 持转码、添加水印和字幕。

category_id 否 String 媒资分类ID。

您可以调用创建媒资分类接口或 在点播控制台的分类设置中创建 对应的媒资分类,并获取分类 ID。

说明若不设置或者设置为-1,则上传的 音视频归类到系统预置的“其它”

分类中。

video_md5 否 String 视频文件MD5值。

建议参考媒资上传和更新生成对 应的MD5值。

cover_type 否 String 封面图片文件类型。

取值如下:

● JPG

● PNG

上传后的封面名称是固定的,后 缀名为封面类型缩写。例如 cover0.jpg,cover1.png 若不指 定类型,则封面文件无后缀名。

说明

如果设置了图片格式,则不会执行 首帧截图作为封面动作,需自行上 传封面。

cover_md5 否 String 封面文件MD5值 subtitles 否 Array of

Subtitle objects

字幕文件信息

(43)

参数 是否必选 参数类型 描述

tags 否 String 视频标签。

单个标签不超过16个字节,最 多不超过16个标签。

多个用逗号分隔,UTF8编码。

auto_publish 否 Integer 是否自动发布。

取值如下:

● 0:表示不自动发布。

● 1:表示自动发布。

默认值:0。

template_gro

up_name 否 String 转码模板组名称。

若不为空,则使用指定的转码模 板对上传的音视频进行转码,您 可以在视频点播控制台配置转码 模板,具体请参见转码设置。

若同时设置了

“template_group_name”和

“workflow_name”字段,则

“template_group_name”字 段生效。

auto_encrypt 否 Integer 是否自动加密。

取值如下:

● 0:表示不加密。

● 1:表示需要加密。

默认值:0。

加密与转码必须要一起进行,当 需要加密时,转码参数不能为 空,且转码输出格式必须要为 HLS。

auto_preheat 否 String 是否自动预热到CDN。

取值如下:

● 0:表示不自动预热。

● 1:表示自动预热。

默认值:0。

thumbnail 否 Thumbnail

object 截图参数 review 否 Review object 媒资审核参数

(44)

参数 是否必选 参数类型 描述 workflow_na

me 否 String 工作流名称。

若不为空,则使用指定的工作流 对上传的音视频进行处理,您可 以在视频点播控制台配置工作 流,具体请参见工作流设置。

5-4 Subtitle

参数 是否必选 参数类型 描述

id 是 Integer 字幕id。

取值范围:[1,8]。

type 是 String 字幕文件类型,目前暂只支持

“SRT”。

language 是 String 字幕语音类型。

取值如下:

● CN:表示中文字幕。

● EN:表示英文字幕。

md5 否 String 字幕文件的MD5值。

description 否 String 字幕描述。

5-5 Thumbnail

参数 是否必选 参数类型 描述

type 是 String 截图类型。

取值如下:

● time:每次进行截图的间隔 时间。

● dots: 按照指定的时间点截 图。

time 否 Integer type取值为time时必填。根据 时间间隔采样时的时间间隔值。

取值范围:[1,12]之间的整数。

单位:秒。

dots 否 Array of

integers type取值为dots时必填。指定时 间截图时的时间点数组。

(45)

参数 是否必选 参数类型 描述

cover_position 否 Integer 该值表示指定第几张截图作为封 面。

默认值:1。

format 否 Integer 截图文件格式。

取值如下:

● 1:jpg。

默认值:1 。

aspect_ratio 否 Integer 纵横比,图像缩放方式。

取值如下:

● 0:自适应(保持原有宽高 比)。

● 1:16:9。

默认值:0。

max_length 否 Integer 截图最长边的尺寸。

单位:像素。

宽边尺寸按照该尺寸与原始视频 像素等比缩放计算。

5-6 Review

参数 是否必选 参数类型 描述

template_id 是 String 审核模板ID。您可以在视频点播 控制台配置审核模板后获取,具 体请参见审核设置。

响应参数

状态码: 200

5-7 响应 Body 参数

参数 参数类型 描述

asset_id String 媒体ID video_upload_

url String 视频上传URL

cover_upload_

url String 封面上传地址

(46)

参数 参数类型 描述 subtitle_uploa

d_urls Array of

strings 字幕文件上传url数组 target File_addr

object 媒资存储参数信息。

5-8 File_addr

参数 参数类型 描述

bucket String OBS的bucket名称。

location String 桶所在的区域名, 如“华北-北京四”的区域名 为“cn-north-4”,创建的桶所在区域必须和点 播服务所在区域保持一致。

object String 文件的存储路径。

状态码: 403

5-9 响应 Body 参数

参数 参数类型 描述

error_code String 错误码。

error_msg String 错误描述。

请求示例

POST https://{endpoint}/v1/{project_id}/asset { "title" : "Avatar test test",

"description" : "Avatar, test", "category_id" : 1,

"tags" : "mytags",

"video_name" : "Avatar_480P.mp4", "video_type" : "MP4",

"video_md5" : "a945d4b3d8fc317190a9332fe856f03d", "cover_type" : "JPG",

"cover_md5" : "a655d4b3d8fc758691a9332fe387f26c", "auto_publish" : 0,

"subtitles" : [ { "id" : 1,

"language" : "CN", "type" : "SRT",

"md5" : "SqcyFjJZoDZaP8oKIY6rgQ==", "description" : "AAAAA"

} ] }

數據

表 5-1 路径参数
表 5-11 Query 参数
表 5-12 请求 Header 参数
表 5-17 请求 Body 参数
+7

參考文獻

相關文件

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.