介绍
什么是横转竖
横转竖不是单纯的旋转,而是通过识别感兴趣区域 (ROI,Region of Interest),将视频裁剪成一定比例的适合移动设备播放的视频。横转竖提供批量生成短视频的能力,能够将现有的横屏视频资源转换成竖屏视频资源。

免费体验
1. 打开 体验馆,进入横转竖体验页,在右侧选择点播文件,选择场景类型及画面比例,单击开始处理。
2. 等待处理完成后即可查看结果。
说明:
体验馆功能较简单,仅用于体验基础效果,测试完整效果请使用 API 接入。

输入及输出格式
输入视频文件支持以下格式:
编码标准:MPEG 、H.264、H.265。
封装格式:.mp4、.avi、.mkv、.mov、.mpg。
输出视频文件统一使用 H.264 编码、.mp4 格式。可以使用 Chrome 浏览器预览视频。如果需要转码和转封装格式,可以在本地处理或使用 MPS 提供的音视频转码功能。
接入方式一:API 发起任务
1. 调用 API
您可以直接向腾讯云发起 POST 请求,接口请求域名:mps.tencentcloudapi.com。调用 媒体处理接口 ,选择 AiAnalysisTask 任务,将 Definition 设置为 28(预设智能横转竖模板)。ExtendedParameter 为扩展参数,其值为转义后的 json 字符串,具体参数含义见下文 扩展参数说明 部分。


请求示例
说明:
{"Action": "ProcessMedia","Version": "2019-06-12","InputInfo": {"Type": "URL","UrlInputInfo": {"Url": "https://..." // 替换成需要横转竖的 URL,或者参考“发起媒体处理”接口文档}},"OutputStorage": {"CosOutputStorage": {"Bucket": "BucketName","Region": "BucketRegion"},"Type": "COS"},"OutputDir": "/mycos/htv_test/result/","AiAnalysisTask": {"Definition": 28, // 预设横转竖模版 ID"ExtendedParameter": "{\\"htv\\": {\\"AlgorithmType\\": 1}}"}"TaskNotifyConfig": {"NotifyType": "URL","NotifyUrl": "http://callback_url"}}
2. API Explorer 快速验证


注意:
API explorer 会自动转换,ExtendedParameter 填写对应 json 即可,不用转换成字符串。如果是直接调用 API,那么需要对 json 字符串转义。
3. 扩展参数说明
扩展参数可以实现特定的能力。由于媒体处理接口无法解析扩展参数,因此 ExtendedParameter 其值为序列化的 json 字符串。传入智能横转竖的 ExtendedParameter 需要放在 htv 下面。以下是一个序列化前的 json 示例,使用 API 时请注意传入转义后的参数:
{"htv": {"AlgorithmType": 3,"Ratio": "16:9","ModelName": "sport","FaceDetect": 1,"FaceDetectConfig": {"FaceScoreThd": 80,"FaceAccuracy": "Efficiency","FallbackConfig": {"NoFaceDetect": "Scale","DoubleFace": "SplitScreenVertical",},},"OutputPattern": "{sessionId}-{timestamp}""BlurWeight": 41,"SmoothWeight": 0.75, //}}// 转义前(可在API explorer中使用): {"htv": {"AlgorithmType": 3, "FaceDetectConfig": {"FaceScoreThd": 80}, \\"OutputPattern\\": \\"htv-{sessionId}-{timestamp}\\"}}// 转义后(直接调用API时需传入转义后参数): {\\"htv\\": {\\"AlgorithmType\\": 3, \\"FaceDetectConfig\\": {\\"FaceScoreThd\\": 80}, \\"OutputPattern\\": \\"htv-{sessionId}-{timestamp}\\"}}
名称 | 类型 | 描述 |
AlgorithmType | Integer | 指定算法类别: 1:处理速度较快的通用模型。 2:支持多种模型的算法和定制优化。 3:使用精确的人脸检测算法,两个人脸出现时,上下分割显示人脸,尽可能将人脸居中显示。 5:直接缩放视频,居中放在竖屏。使用毛玻璃模糊处理后的图片作为背景。 |
Ratio | String | 视频横竖比,字符串类型,内部进行解析。如果解析失败会取默认值 9:16 的比例进行裁剪。(例如:"9:16",转换成横比竖 9:16 视频,高度取原视频高度) |
FaceDetectConfig | Object | 人脸检测相关配置。 |
OutputPattern | String | 用于自定义文件名, timestamp , sessionId 为可用替换参数。例如: "htv-{sessionId}-{timestamp}" ,则输出文件命名为 htv-xxxx-202412250000,其中xxxx 是任务的真实 sessionId。如不指定,默认输出文件名为 "htv-{sessionId}" 。 |
BlurWeight | Integer | 模糊参数,数值越大模糊效果越重。参数数值过大会影响处理速度。 |
SmoothWeight | Float | 0-1 之间的浮点数,控制平滑速度参数。数值越小镜头移动越快。 |
FaceDetectConfig
名称 | 类型 | 描述 |
FaceScoreThd | Integer | 人脸检测算法的识别阈值,仅当人脸识别评分超过该阈值时,才将其视为有效的人脸。 |
FaceAccuracy | String | 可选,人脸检测算法执行次数,默认使用 Balance,其他可选项 Efficiency,Precision。 |
FallbackConfig | Object | 人脸检测的兜底策略,包括无人脸,两个人脸的兜底策略。 |
FallbackConfig
名称 | 类型 | 描述 |
NoFaceDetect | String | 可选值:Scale,ScaleWithoutBlur。默认值 ScaleWithoutBlur。 |
DoubleFace | String | 可选值:Scale,ScaleWithoutBlur,SplitScreenVertical。默认值 SplitScreenVertical。 |
Scale:缩放居中该帧,背景使用毛玻璃效果处理后的图片替换。
ScaleWithoutBlur:缩放居中该帧,背景使用纯黑替换。
SplitScreenVertical:双人脸默认处理逻辑,上下分屏,两个人脸居中放在上下两个区域。
4. 查询任务结果
任务回调:在使用 ProcessMedia 发起媒体处理任务时,可以通过 TaskNotifyConfig 参数设置回调信息。当任务处理完成后,会通过配置的回调信息回调任务结果,您可以通过 ParseNotification 解析事件通知结果。下方列出了相关数据结构以供参考。
调用 DescribeTaskDetail 接口查询任务结果:
若您是直接使用 API 关联模板发起任务,即按上文接入方式一发起的任务, ProcessMedia 返回的
TaskId
中会包含“WorkflowTask”(例如:24000022-WorkflowTask-b20a8exxxxxxx1tt110253),此时您需要解析 DescribeTaskDetail 接口 -> WorkflowTask
->AiAnalysisResultSet
字段获取任务结果。下方列出了 相关数据结构 以供参考;若您在使用 ProcessMedia 发起任务时,不是按照上文接入方式一所述的在
AiAnalysisTask
-> Definition
中关联模板 ID,而是在 ScheduleId 字段中填入编排 ID(下文自动触发任务 描述了如何创建编排),则返回的 taskid 中会包含“ScheduleTask” (例如:24000022-ScheduleTask-774f101xxxxxxx1tt110253),此时您需要解析 DescribeTaskDetail 接口 -> ScheduleTask
-> ActivityResultSet
字段获取任务结果;若您从控制台发起任务,即按下文接入方式二发起的任务,在控制台任务管理列表中会显示任务 ID和任务结果,您也可以解析 DescribeTaskDetail 接口 ->
ScheduleTask
-> ActivityResultSet
字段获取任务结果。控制台查询任务:进入控制台 点播任务管理,任务列表中会展示刚发起的任务。


当子任务状态为“成功”时,您可以进入 COS Bucket > 输出 Bucket 中,找到您的输出目录,目录下htv-开头的文件即为智能横转竖处理后的输出视频。


相关数据结构
AiAnalysisTaskHorizontalToVerticalResult
智能横转竖结果类型。
被如下接口引用:DescribeTaskDetail, ParseNotification。
名称 | 类型 | 描述 |
Status | String | 任务状态,有 PROCESSING,SUCCESS 和 FAIL 三种。 |
ErrCode | Integer | 错误码,0:成功,其他值:失败。 |
Message | String | 错误信息。 |
Input | AiAnalysisTaskHorizontalToVerticalInput | 智能横转竖任务输入。 |
Output | AiAnalysisTaskHorizontalToVerticalOutput | 智能横转竖任务输出。
注意:此字段可能返回 null,表示取不到有效值。 |
AiAnalysisTaskHorizontalToVerticalInput
智能横转竖任务输入类型。
被如下接口引用:DescribeTaskDetail, ParseNotification。
名称 | 类型 | 描述 |
Definition | Integer | 视频智能横转竖模板 ID。 |
AiAnalysisTaskHorizontalToVerticalOutput
智能横转竖结果信息。
被如下接口引用:DescribeTaskDetail, ParseNotification。
名称 | 类型 | 描述 |
Path | String | 视频智能横转竖列表。 |
OutputStorage | TaskOutputStorage | 智能横转竖视频的存储位置。
注意:此字段可能返回 null,表示取不到有效值。 |
接入方式二:控制台发起任务(零代码)
1. 创建任务
1.1 进入 媒体处理控制台,依次点击创建任务 > 快速创建点播处理任务。


1.2 首先指定输入视频文件,目前智能横转竖功能支持两种输入来源:腾讯云对象存储(COS)、URL下载地址。暂不支持 AWS S3。
1.3 然后,在步骤“处理输入文件”处,加入智能分析节点。


在弹出的智能分析设置抽屉中,选择预设智能横转竖模板(模板ID:28)。
说明:
若您期望给自定义智能分析模板开启智能横转竖功能,可以联系我们并同步模板 ID,腾讯云媒体处理开发人员将为您配置并启动智能横转竖功能。


1.4 最后,指定输出视频保存路径后,即可单击创建发起任务。


2. 查询任务结果
3. 自动触发任务(可选能力)
若您希望实现:在 COS 桶中上传了视频文件,自动按照预设参数进行智能横转竖处理。您可以:
3.1 在创建任务时单击保存此编排,在弹出的窗口中配置触发 Bucket、触发目录等参数。


3.2 然后进入点播编排列表,找到刚创建好的编排,在启动处开启按钮即可。后续在触发目录下新增的视频文件,将自动按照该编排预设的流程和参数发起任务,并将处理后的视频文件保存到编排配置的输出路径中。
注意:
启用编排成功后,需要3~5分钟才会生效。

