Serverless 应用中心 部署融合媒体转码应用

利用综合转码能力,适配 PC、TV 以及移动终端等多平台播放,带来更好的视觉体验。

相关产品
Serverless 应用中心 产品页,含版本规格、价格与购买入口。

三、支持多种网络环境

不同网络带宽的用户可通过智能融合媒体转码能力选择最佳码率,流畅播放。

四、视频快速审核

视频在生产、发布的各个环节都有送审、评审需求,在保证相同画质质量的前提下,可通过提高视频压缩率、调整视频码率等方式降低带宽消耗,压缩成本,提升效率。

五、提升短视频用户体验

支持 K 歌等场景下的画质增强,综合利用多种视频加清技术进行处理,提升画质,进一步提升歌曲点唱率。

六、架构原理

腾讯多媒体实验室自研的智慧融合媒体处理技术,支持对包括视频、音乐、文字、图片等融合媒体内容进行理解、分析、处理、编创。可满足广电、文旅、教育、电商、政企、泛互等各行业场景的融合媒体处理需求。

通过 Serverless 应用和腾讯多媒体实验室智慧融合媒体(Intelligent Convergence Media)深度整合,你可快速部署一个基于 COS + API + SCF + ICM 的开箱即用、灵活便捷的高效视频转码应用。通过 API 网关进行事件触发,将用户原始视频进行转码处理,转码完成后上传到用户对应的 COS 平台进行存储。具体流程如下:

七、应用优势

·存储多样化
视频源文件支持 URL 和 COS 两种类型,满足客户源视频存在于不同位置的存储需求,避免资源冗余和浪费。

·开箱即用
提供转码应用,开箱即用,无需用户进行代码开发,零运维,弹性伸缩、按需付费。

·算力可配置
可根据视频大小,选择不同规格的函数计算资源,可显示支持多核、大内存、高 IO 等定制化需求。

·高压缩率
依托腾讯多媒体融合编解码引擎,可使同等画质下视频压缩率较传统压缩率平均提升50%。

八、应用资源

转码应用部署后,将为你创建以下资源:

·云函数 :读取 COS 文件,使用腾讯多媒体融合编解码引擎转码后流式输出回 COS 中,并将转码过程的实时日志输出到 CLS。

·API 网关:通过 API 网关触发器进行事件触发。

·CLS 日志 :存储转码过程的实时日志。CLS 日志可能会产生一定计费,详情请参见 CLS 计费规则。

九、前提条件

1. 配置部署账号权限。参考 账号和权限配置。

2. 配置 运行角色 权限。

十一、创建依赖资源

创建的过程中,需要依赖以下相关组件,请提前创建。具体创建流程请参见 VPC 创建、CFS 创建、COS 创建、Redis 创建、SecretId/SecretKey 创建。

十二、创建融合媒体转码应用

1. 登录 Serverless 控制台,选择左侧导航栏中的 Serverless 应用。

2. 在 “Serverless 应用” 页面,单击新建应用。

3. 在新建应用页面,根据页面相关信息提示进行配置。如下:


·创建方式:选择应用市场。

·模糊搜索:输入“转码”进行搜索,选择快速部署一个融合媒体转码应用。
单击模板中的查看详情,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。

4. 单击下一步,根据页面相关信息提示进行配置。如下:


·应用名:例如,“transcode-app”。

·地域:例如:“成都”。

·私有网络:按需选择。

·文件系统:按需选择。

·密钥 Secretld:按需选择。

·密钥 SecreKey:按需选择。

·链接地址:按需选择。

·链接密码:按需选择。

·数据库索引:按需选择。

5. 单击完成即可完成应用创建、函数创建以及 API 网关触发器创建。
如需根据业务场景修改函数配置,你可以在 Serverless 应用 > 应用名称 > 资源列表 中进行修改。如下:


6. 在“函数详情”页面中选择日志查询,可以查看到打印出的转码日志信息。如下:


7. 进入 COS 控制台,查询转码结果 。

十四、接口请求路径

请求URL请求方式接口鉴权方式1. 登录 Serverless 控制台,选择左侧导航栏中的Serverless 应用。2. 在 Serverless 应用列表页,单击应用名称。3. 在应用详情页,获取触发器访问入口。如下:
 POST
Content-Type: application/json融合转码服务接口由云函数实现,采用了 API 网关触发器方式对外提供服务,鉴权采用应用认证方式(ApiAppKey 和 ApiAppSecret),详情请参见 应用鉴权。

十五、创建融合媒体转码任务接口

通过此接口可以发起转码任务,在接口参数中指定视频输入源、输出配置以及CFS等参数。

十六、请求参数说明

参数名 类型 必选 描述
Action String 是 本产品固定 CreateTransCodeJob
CreateTransCodeJobRequest Object 是 包含 Inputs、Outputs
Inputs Input[] 是 转码文件的获取来源,目前应用仅处理数组的第一项
Outputs Output[] 是 转码文件的输出配置,目前应用仅处理数组的第一项

参数详情如下:

InputOutputVideoDescriptorCosConfig

参数名 类型 必选 描述
Url String 否 待转码视频的 Url 地址,支持视频格式(mp4,avi,mkv,mov)
Source Object 是 视频转码配置,用于转码

注意:Url 和 Source 必填一个,同时都有,优先使用 Url 。

Source 说明:

参数名 类型 必选 描述
Path String 否 COS 路径,支持视频格式(mp4,avi,mkv,mov),例如 /video/1.mp4
CosConfig CosConfig 是 COS 存储配置,用于存储转码后的文件
参数名 类型 必选 描述
Destination String 否 COS 路径(不含文件名),例如/video
VideoDescriptor VideoDescriptor 是 视频转码配置,用于转码
CosConfig CosConfig 是 COS 存储配置,用于存储转码后的文件
参数名 类型 必选 描述
OutputName String 是 输出文件名,后缀代表封装格式(mp4,avi,mkv,mov),例如 test.mp4
Codec String 是 输出编码格式(H264,H265,VP9)
Width Int 否 输出视频宽,正整数,取值范围[0,7680],默认0(输入视频宽度),必须为偶数
Height Int 否 输出视频高,正整数,取值范围[0,7680],默认0(输入视频高度),必须为偶数
MaxBitrate Int 否 输出视频最大码率,范围[10,200000],单位Kbps,默认输入视频码率
OutputAudioVideoSync String 是 是否进行音频和视频帧率同步,取值范围为 on off
参数名 类型 必选 描述
Bucket String 是 COS 桶名称,例如 test-12345678
Region String 是 COS 所在的地域,例如 ap-guangzhou

说明:

·转码函数运行时需要读取 COS 资源进行转码,并将转码后的资源写回 COS。CosConfig 将使用模板创建时填入的 SecretId 和 SecretKey 信息,需要给已提供的SecretId 和 SecretKey配置一个授权 COS 全读写的运行角色。更多参考 函数运行角色。

·转码输出桶与应用建议配置在同一区域,因为跨区域配置转码应用稳定性及效率都会降低,并且会产生跨区流量费用。

十七、返回参数说明

参数名 类型 描述
CreateTransCodeJobRequest Object 异步调用固定返回格式,指示请求是否成功
job Object –
id String 任务 id,可以通过任务查询接口查询任务当前状态
status String 任务状态。PENDING 队列中;RUNNING 运行中;TERMINATED 已终止;SUCCESS 成功;FAIL 失败

十八、请求示例

输入源为 Url输入源为 COS{ "Action": "CreateTransCodeJob", "CreateTransCodeJobRequest": { "Inputs": [{ "Url": "https://tencent" }], "Outputs": [{ "CosConfig": { "Bucket": "media", "Region": "ap-guangzhou" }, "Destination": "/transcode", "VideoDescriptor": { "OutputName": "output.mp4", "Codec": "H264" , "Width":640, "Height" :360, "MaxBitrate": 1024, "OutputAudioVideoSync": "off" } }]}}{ "Action": "CreateTransCodeJob", "CreateTransCodeJobRequest": { "Inputs": [{ "Source": { "Path":"/enhance.mp4", "CosConfig":{ "Bucket": "media", "Region": "ap-guangzhou" } } }], "Outputs": [{ "CosConfig": { "Bucket": "media", "Region": "ap-guangzhou" }, "Destination": "/transcode", "VideoDescriptor": { "OutputName": "output.mp4", "Codec": "H264" , "Width":640, "Height" :360, "MaxBitrate": 1024, "OutputAudioVideoSync": "off" } }]}}

十九、响应示例

{ "CreateJobResponse": { "job": { "id": "ecjsxdesrprc9f8235", "state": "PENDING" } }}

20、查询融合媒体转码任务状态接口

此接口可以通过创建融合媒体任务得到的任务 id 来查询任务状态。

21、请求参数说明

参数名 类型 必选 描述
Action String 是 本产品固定 DescribeJob
DescribeJobRequest Object 是 包含 id
DescribeJobRequest Input[] 是 转码文件的获取来源,目前应用仅处理数组的第一项
id String 是 创建融合媒体任务得到的任务 id

22、响应说明

参数名 类型 必选 描述
RequestId String 是 请求唯一 RequestId
DescribeJobResponse Object 是 包含job 对象
job Object 是 任务状态结构体
id String 是 任务 id
state String 是 任务状态。PENDING 队列中;RUNNING 运行中;TERMINATED 已终止;SUCCESS 成功;FAIL 失败
ApplyParam String 是 已经提交的任务参数
applyTime String 是 提交时间
startTime String 是 开始时间
endTime String 是 任务结束时间
EngineRequestId String 是 引擎 RequestId,可以查询实际的引擎运行情况
ErrorMessage String 是 若引擎运行失败,可以看到根据错误信息判断错误来源

23、请求示例

{ "Action": "DescribeJob", "DescribeJobRequest": { "id": "ecjsxdesrprc9f8235" }}

24、响应示例

{ "RequestId": "f0mn4teo68pjvn4eujawwcpz52vsiplf", "DescribeJobResponse": { "job": { "id": "g2ads4bgms1wwqv244", "state": "SUCCESS", "ApplyParam": "{}", "applyTime": "1630929363223", "startTime": "1630932002511", "endTime": "1630965618361", "EngineRequestId": "f8344d37-10c1-4a33-95eb-920337dacb8a" } }}

25、取消融合媒体转码任务状态接口

此接口可以通过创建融合媒体任务得到的任务 id 来取消转码任务,只有 PENDING 状态任务可取消。

26、请求参数说明

参数名 类型 必选 描述
Action String 是 本产品固定 CancelJob
CancelJobRequest Object 是 包含 id
id String 是 创建融合媒体任务得到的任务 id

27、响应参数说明

参数名 类型 必选 描述
RequestId String 是 请求唯一 id
Result Object 是 包含 IsSuccess
IsSuccess Boolean 是 取消任务是否成功,取值范围为 true false

28、请求示例

{ "Action": "CancelJob", "CancelJobRequest": { "id": "9rv9zx15idweviq2" }}

29、响应示例

{ "RequestId": "yqsrrgh6t1097k6cqd8cpnw5y26xkone", "Result": { "IsSuccess": true }}

30、中止融合媒体转码任务状态接口

此接口可以通过创建融合媒体任务得到的任务 id 来中止转码任务,只有 RUNNING 状态任务可中止,此操作为尝试中止,最终是否中止以结果为准。

31、请求参数说明

参数名 类型 必选 描述
Action String 是 本产品固定 TerminateJob
TerminateJobRequest Object 是 包含 id
id String 是 创建融合媒体任务得到的任务 id

32、响应参数说明

参数名 类型 必选 描述
RequestId String 是 请求唯一 id
Result Object 是 包含 IsSuccess
IsSuccess Boolean 是 中止任务是否成功,取值范围为 true false

33、请求示例

{ "Action": "TerminateJob", "TerminateJobRequest": { "id": "m2y3isjca9ew9w54" }}

34、响应示例

{ "RequestId": "yqsrrgh6t1097k6cqd8cpnw5y26xkone", "Result": { "IsSuccess": true }}

赞 (0)
上一篇 4天前
下一篇 4天前