腾讯云媒体处理MPS对接使用完全指南:从零基础到生产级集成
1. 媒体处理MPS是什么
腾讯云媒体处理(Media Processing Service,简称MPS)是一项智能且强大的多媒体数据处理服务,在业内支持最全面的音视频编码标准。基于自研编码内核和AI视觉大模型,MPS具备音视频转码、增强、媒体AI、质检评测等功能,能够助力提升媒体质量、降低成本,满足多样化的音视频处理需求。
MPS的核心能力涵盖以下几个维度:音视频转码(包括普通转码、极速高清转码、广电专业格式转码)、视频增强(超分辨率、画质增强、SDRtoHDR)、媒体AI(智能标签、智能分类、智能封面、智能字幕)、媒体质检(格式诊断、画质检测)、智能擦除(去水印、去字幕、隐私保护)等。这些能力可以通过控制台、API和自动触发三种方式灵活调用。
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
2. 接入前的准备工作
2.1 开通MPS服务
登录腾讯云媒体处理控制台,按照引导开通MPS服务。开通后,系统会自动创建服务角色,允许媒体处理对您的存储桶中的文件进行下载、转码和上传等读写操作。
2.2 开通对象存储COS
MPS需要将处理结果保存至COS Bucket,因此需要提前开通对象存储COS服务并创建存储桶。创建Bucket时,建议选择标准存储类型并设置为私有读写权限以保证数据安全。记录Bucket名称(如examplebucket-1250000000)与地域信息(如ap-guangzhou)。
2.3 获取API密钥
进入访问管理 > API密钥管理,获取云API密钥(SecretId、SecretKey),用于标识API调用者身份。请妥善保管SecretKey,切勿泄露给他人。
3. 三种任务发起方式详解
MPS支持三种发起任务的方式:控制台创建任务、API发起任务和自动触发任务。
3.1 控制台创建任务(零代码)
控制台创建任务适用于测试阶段或少量文件处理场景,每次可手动选择单个视频发起任务。操作路径为:进入控制台创建任务页面,单击创建离线文件处理任务。然后选择输入路径(支持从VOD Pro、COS或AWS S3存储桶中选择音视频文件,或提供文件下载URL地址)、配置处理流程和参数、指定输出路径,即可发起任务。
若需处理直播流,可单击创建直播流处理任务,输入直播流URL地址(支持rtmp、hls和flv等协议)。
3.2 API发起任务(适合批量处理与业务集成)
调用API接口发起任务,适用于与业务系统结合、批量处理等场景。主要的API接口包括:
- ProcessMedia:发起离线文件处理任务
- ProcessLiveStream:发起直播流处理任务
- CreateSchedule:创建编排(自动触发规则)
MPS的API接口均为API 3.0接口。推荐使用API Explorer工具在线调试,该工具提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。
3.3 自动触发任务(零代码自动化)
当指定存储桶路径下上传了新文件,按预设流程和参数自动发起任务,适用于批量自动化操作场景。目前支持COS或AWS S3触发。操作路径为:进入控制台编排管理页面,创建编排并启用自动触发。
4. 模板管理:参数配置的标准化
模板是MPS中用于配置各类功能详细参数的载体,便于后续复用。在发起处理任务时可以关联模板ID。MPS提供了丰富的系统预设模板,您也可以根据自身业务需求自定义模板。
4.1 模板类型
MPS支持多种模板类型,主要包括:
- 媒体处理模板:音视频转码、极速高清、画质增强、精彩集锦、视频截帧、视频转动图、智能封面、视频水印、音视频拼接、广电专业格式转码
- 智能语音模板:语音识别、人声分离、语音合成、音频降噪
- 图片处理模板:图片处理相关参数
- 内容识别模板:通用文字识别OCR、视频目标检测
4.2 创建自定义模板
登录媒体处理控制台,单击左侧导航栏的模板管理,选择需要配置的模板类型进入具体的模板页面,单击创建模板即可进行具体的模板配置。以音视频转码模板为例,可配置的参数包括:
- 基本信息:模板名称(不超过64字符,支持中文、英文、数字、下划线、中划线和点)、转码类型(视频转码/音频转码)、封装格式(MP4、FLV、HLS等)
- 视频参数:编码格式、码率(自适应/自定义)、分辨率、视频帧率、编码级别、旋转角度、视频颜色格式
- 音频参数:音频编码格式、采样率、码率等
- 高级设置:可根据需求自定义
创建成功后,可在自定义模板列表中对新建的模板进行查看、编辑、克隆、删除等操作。
5. 服务编排:多功能组合的自动化流程
编排是MPS的核心功能之一,它将多种媒体处理功能组合起来,形成自动处理流程。编排功能为用户提供了直观的可视化画布,可以将多个媒体处理功能模板连接起来,根据步骤顺序或条件来执行。
5.1 编排的构成
一个完整的编排包含以下配置项:
- 任务触发类型:腾讯云存储触发或AWS触发
- 服务编排名称:128个字符内,支持中文、英文、数字、下划线和短横线
- 触发Bucket:上传视频文件至此Bucket可自动触发编排
- 触发目录:以斜杠结尾,不填写则对Bucket下所有目录生效
- 触发格式:可指定扩展名列表,避免误触发
- 输出Bucket:处理完成后新生成文件的存储位置
- 输出目录:以斜杠结尾,不填写则与触发目录保持一致
- 事件通知:开启后转码过程及结果数据会通过配置的方式反馈
- 任务配置:编排中的流程节点及节点中模板的定义
5.2 编排中的任务节点
单击输入右侧的“+”可以添加各种任务节点。支持的功能节点包括:音视频转码(包括极速高清转码、广电专业格式转码)、视频截帧、视频转动图、智能封面、音视频拼接、人声分离、精彩集锦、自适应多码率、SDRtoHDR、视频增强、超分辨率、音视频分段、自定义函数、图片处理等。每个工作流至少配置一个任务节点。
您可以根据需求串行或并行组合这些功能。例如将质检和增强串联,系统将先对输入视频执行质检,然后根据质检结果对存在格式异常的视频继续使用后续转码功能进行修复。
5.3 创建编排的操作步骤
登录媒体处理控制台,单击编排管理 > 离线编排 > 创建离线服务编排。进入创建页面后,按照上述配置项依次填写,添加所需的处理节点并配置参数,最后保存并启用编排。
注意:创建编排成功后是禁用状态,需要手动启用。
6. Python SDK开发实战
腾讯云提供了官方的Python SDK,让开发者能够便捷地集成和使用MPS服务。
6.1 环境安装
pip install tencentcloud-sdk-python-common
pip install tencentcloud-sdk-python-mpsSDK适用于Python 3.x版本。
6.2 初始化客户端
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.mps.v20190612 import mps_client, models
# 实例化认证对象
cred = credential.Credential("您的SecretId", "您的SecretKey")
# 实例化HTTP配置
httpProfile = HttpProfile()
httpProfile.endpoint = "mps.tencentcloudapi.com"
# 实例化客户端配置
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化MPS客户端
client = mps_client.MpsClient(cred, "ap-guangzhou", clientProfile)6.3 发起转码任务
def process_media():
# 实例化请求对象
req = models.ProcessMediaRequest()
# 设置输入信息(以URL方式)
req.InputInfo = {
"Type": "URL",
"UrlInputInfo": {
"Url": "https://example.cos.ap-guangzhou.myqcloud.com/input/video.mp4"
}
}
# 设置输出存储
req.OutputStorage = {
"Type": "COS",
"CosOutputStorage": {
"Bucket": "your-bucket-1250000000",
"Region": "ap-guangzhou"
}
}
# 设置输出目录
req.OutputDir = "/output/transcode/"
# 设置转码任务(引用模板ID)
req.MediaProcessTask = {
"TranscodeTaskSet": [
{
"Definition": 100010, # 系统预设转码模板ID
"OutputStorage": req.OutputStorage,
"OutputDir": req.OutputDir
}
]
}
# 发起请求
resp = client.ProcessMedia(req)
# 打印任务ID
print("TaskId:", resp.TaskId)
return resp.TaskId6.4 发起智能标签任务
def process_with_ai_tag():
req = models.ProcessMediaRequest()
# 输入信息
req.InputInfo = {
"Type": "URL",
"UrlInputInfo": {
"Url": "https://example.cos.ap-guangzhou.myqcloud.com/input/video.mp4"
}
}
# 输出存储
req.OutputStorage = {
"Type": "COS",
"CosOutputStorage": {
"Bucket": "your-bucket-1250000000",
"Region": "ap-guangzhou"
}
}
req.OutputDir = "/output/ai/"
# 设置AI分析任务(智能标签)
req.AiAnalysisTask = {
"Definition": 100001, # 自定义智能分析模板ID,需提前创建
"ExtendedParameter": '{"tag":{"process_type":"1103"}}' # 高级版扩展参数
}
resp = client.ProcessMedia(req)
print("TaskId:", resp.TaskId)
return resp.TaskId智能标签功能基于大模型对视频内容进行深度理解与分析,自动为视频生成标签。基础版无需传扩展参数,高级版需要传入{"tag":{"process_type":"1103"}}。
6.5 查询任务详情
def describe_task(task_id):
req = models.DescribeTaskDetailRequest()
req.TaskId = task_id
resp = client.DescribeTaskDetail(req)
print("任务状态:", resp.Status)
print("任务进度:", resp.Progress)
if resp.Status == "FINISH":
print("输出文件:", resp.MediaProcessResultSet)
return resp7. 事件通知机制
媒体处理是异步过程,事件通知让业务系统能够实时获知任务的进展和状态。MPS支持三种回调通知方式。
7.1 HTTP回调通知
在发起任务时配置HTTP回调地址,MPS会在任务处理的流程中实时将任务的进展、状态、输出信息推送到指定URL。回调设计需考虑三件事:签名校验、重试幂等、时序一致。建议在业务侧用任务ID加时间戳去重,避免同一事件多次触发写库。
7.2 基于消息队列的可靠通知
MPS支持基于消息队列(CMQ/TDMQ)的可靠通知。这种方式的优势在于消息队列本身具备持久化和重试机制,可靠性更高。
7.3 云函数触发
可以在云函数控制台创建MPS触发器,当任务状态变更时自动触发云函数执行。这种方式适合需要进一步处理回调数据的场景。
7.4 回调配置示例
# 在ProcessMedia请求中配置回调
req.TaskNotifyConfig = {
"NotifyType": "URL", # 可选:URL、CMQ、TDMQ
"NotifyUrl": "https://your-domain.com/mps-callback",
"NotifyMode": "Finish" # 可选:Finish、Change、None
}8. 系统集成最佳实践
8.1 集成思路
企业引入媒体处理的常见误区是把它当作一套独立的新平台去部署。更务实的思路是把媒体处理当作可插拔的能力,接到现有系统的五个关键点上:内容入库、任务调度、状态回调、产物存储、运营审计。
8.2 内容入库与元数据同步
CMS上传成功后触发内置Webhook,调用媒体处理API创建转码任务。直播业务在开流时通过主动推流或回源拉流接入媒体处理平台。存量媒资通过批量脚本或任务队列以API方式提交点播转码。
8.3 任务调度与参数模板
建议把参数抽象成模板,例如:template_live_4k_h265(4K直播转码H.265)、template_vod_mobile_av1(移动端点播AV1)、template_archive_h266(长期存档H.266高压缩)。CMS或业务系统在提交任务时只需指定模板ID和源文件地址,避免把编码参数散落到各业务代码里。
8.4 成本优化策略
MPS目前支持的计费方式有按量计费和预付费资源包。成本优化可从以下维度考虑:
- 利用同地域COS内网访问免流量
- 将低频访问数据转为低频或归档存储
- 监控外网流量防止盗刷
- 合理选择存储类型和转码参数
- 使用极速高清转码在保证画质的同时降低码率
9. 常见问题解答
问1:MPS支持哪些输入源?
答:MPS支持从VOD Pro、COS或AWS S3存储桶中选择音视频文件,也可以直接提供文件下载URL地址。直播流处理支持rtmp、hls和flv等协议。
问2:如何配置自动触发任务?
答:在媒体处理控制台创建编排,设置触发Bucket、触发目录和触发格式,启用编排后,当符合条件的文件上传到指定路径时,会自动触发处理流程。
问3:MPS的API调用频率限制是多少?
答:ProcessMedia接口默认请求频率限制为100次/秒,CreateSchedule接口默认限制为20次/秒。
问4:任务处理完成后如何获取结果?
答:有两种方式:一是配置事件通知,MPS会通过HTTP回调、消息队列或云函数主动推送结果;二是主动调用DescribeTaskDetail接口查询任务详情。
问5:自定义模板有哪些命名规则?
答:模板名称仅支持中文、英文、数字、空格、下划线(_)、短横线(-)和句点(.),长度不能超过64个字符。
问6:如何排查任务失败的原因?
答:首先检查API返回的错误码和错误信息;其次确认源文件是否正常(如视频数据损坏);检查COS及CMQ相关资源是否已对媒体处理进行了授权;确认输入参数是否合法。




