返回流水线

视频重构图

用 AI 主讲人取景,将横版视频自动裁剪为竖版。一次调用即可产出 TikTok 就绪的成片,在每个镜头中都取景到讲话者,并在每个镜头边界处干净切换。

2

还需填写:视频, 目标宽高比

最适合

  • 将 16:9 的播客/访谈/纪录片素材重构图为 9:16 的 TikTok/Reels/Shorts
  • 当内容有多个焦点时追踪特定主体(主持人、产品、屏幕)
  • 通过主讲人追踪,从横版母版制作 1:1 的 Instagram 方形视频
  • 与 video-trim 和 captions 串联时,闭合从长视频到短视频的流程

使用时机

  • 在 video-trim 之后,trim 挑选时刻,reframe 挑选取景
  • 在 captions 之前,先重构图,好让字幕文字契合 9:16 画布
  • 对于已剪辑好、需要竖版的横版片段的用户,可独立使用

提示

  • 为访谈和圆桌提供带说话人分离的转录文本,它比单靠视觉更可靠地驱动每镜头的主讲人取景
  • 没有明确单一主体的镜头(屏幕共享、大远景定场镜头)按设计会加黑边,这是安全选择,而非失误
  • 没有横摇/缩放/平滑参数可调,镜头调度器是确定性的锁定并切换

使用此流水线的配方

关于此流水线的文章

视频重构图 API

从你自己的代码调用此流水线。一次请求即可发起运行;模型是一个输入字段,而不是独立的接口。

3 个输入
2 必填
2 to 5 积分
bun add @pipe2-ai/sdk
import { createClient } from "@pipe2-ai/sdk";

const client = createClient(process.env.PIPE2_TOKEN!);

const { run_pipeline } = await client.RunPipeline({
  pipeline_slug: "video-reframe",
  input: {
    video_url: "https://example.com/interview.mp4",
    target_aspect_ratio: "9:16",
  },
});
pip install pipe2
import asyncio
import os

from pipe2 import Pipe2Client

client = Pipe2Client(token=os.environ["PIPE2_TOKEN"])

run = asyncio.run(client.run_pipeline(
    pipeline_slug="video-reframe",
    input={
        "video_url": "https://example.com/interview.mp4",
        "target_aspect_ratio": "9:16",
    },
))
go get github.com/pipe2-ai/sdk-go
client := pipe2.NewClient(os.Getenv("PIPE2_TOKEN"))

input := json.RawMessage(`{
  "video_url": "https://example.com/interview.mp4",
  "target_aspect_ratio": "9:16"
}`)

run, err := pipe2.RunPipeline(context.Background(), client, "video-reframe", input)
if err != nil {
    log.Fatal(err)
}
brew install pipe2-ai/tap/pipe2
pipe2 pipelines run \
  --pipeline video-reframe \
  --input-json '{"video_url": "https://example.com/interview.mp4", "target_aspect_ratio": "9:16"}' \
  --wait

获取 API 令牌 →

参数

target_aspect_ratio 必填

Aspect ratio to reframe to — vertical for shorts, square for feeds.

9:161:14:516:9 默认 9:16
video_url 必填

Public URL of the video to reframe.

string
transcript_url

Public URL of a transcript. Used to keep the speaker in frame.

string

在 AI 智能体中使用

将任意 MCP 客户端指向 pipe2,你的智能体就能获得这些工具。它会找到这条流水线,读取上方相同的 schema,然后运行它。

  • list_pipelines
  • get_pipeline_schema
  • run_pipeline
  • get_pipeline_run_status
  • request_upload
https://mcp.pipe2.ai/mcp
{
  "mcpServers": {
    "pipe2ai": {
      "url": "https://mcp.pipe2.ai/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

完整 API 参考 MCP 设置 CLI 参考

视频重构图: 带讲话者追踪的横版转竖版

大多数爆款视频以 9:16 呈现(TikTok、Reels、Shorts),但大多数素材是以 16:9 拍摄的。视频重构图弥合了这一差距:它在每个镜头中找到正在讲话的人,并将其框进干净的竖版裁剪,在整个镜头中保持完全静止,仅在源视频切换处切换。无需手动剪辑,也没有运镜参数需要调节。

工作原理

  1. 检测镜头边界: FFmpeg 场景切换检测器会对源视频进行分割,使每个取景决策都限定在一个连续镜头之内。
  2. 定位人脸并识别人物: 一次视觉分析加上一个 CV 人脸检测器,会在每个镜头的关键帧中查找并聚类人脸,为每个人赋予稳定的身份。
  3. 为每个镜头确定焦点主体: 音频优先:带说话人分离的转录文本会指明正在讲话的人;否则由每镜头单标签的视觉分析和 CV 人脸来决定。讲话者获得画面;含糊不清的镜头会加黑边(展示所有人)而非妄加猜测。
  4. 确定性地规划镜头: 一个纯粹的规划器会将每个镜头的焦点转化为"锁定并切换"方案:每个镜头一个静态裁剪,在边界处硬切,不足一秒的镜头并入相邻镜头。没有横摇、没有漂移、没有运动伪影,相同的输入总是产出相同的方案。
  5. 渲染: FFmpeg 会应用每个镜头的静态裁剪(对整帧镜头则采用居中黑边),并保持音频不变。

提供转录文本以实现多讲话者追踪

对于访谈和圆桌,请传入一份与视频时间范围一致的、带说话人分离的转录文本(SRT)。它的说话人轮次会驱动焦点选择,因此双人镜头会跟随真正在讲话的人,而不仅仅是画面上最大的那张脸。没有转录文本时,规划器仍然有效,会回退到每镜头的视觉标签和 CV 人脸位置。

常见问题

支持哪些宽高比?
9:16(TikTok/Reels/Shorts)、1:1(Instagram 方形)、4:5(Instagram 纵向),以及 16:9(透传,不做重构图)。
如果我的源视频已经是竖版怎么办?
流水线会检测到这一点,并原样返回源视频,附带 meta.skipped=already_target_aspect。
它如何决定跟随谁?
音频优先。如果你提供带说话人分离的转录文本,它会在每个镜头中取景到正在讲话的人;否则由每镜头的视觉标签加上 CV 人脸检测器来决定。没有明确单一主体的镜头,屏幕共享、大远景定场镜头,会加黑边展示整帧,而非妄加猜测。
它会横摇或缩放吗?
不会。每个镜头都采用一个保持完全静止的静态裁剪;镜头只会在镜头边界处切换。这从结构上杜绝了抖动横摇/镜头来回搜寻这一类伪影。
它的费用是多少?
2 to 5 积分,随片段长度而变化:短片段处于低端,较长片段处于高端。
我可以将它与 video-trim 串联吗?
可以,典型的链路是 video-trim(长度)→ video-reframe(宽高比)→ captions(烧录)。大多数用户会想要这三者来完成一条成片短视频。

探索更多流水线

查看全部 →
视频生成器
from 9.5
视频生成器
图像生成器
0.2-6.4
图像生成器
音频生成器
0.7-1.3
音频生成器
音乐生成器
2.5-45.1
音乐生成器