返回流水线

视频裁剪

确定性的、基于转录文本的视频裁剪:将 SRT 切分到你明确指定的 [start, end] 窗口,并用 ffmpeg 裁剪源视频以匹配。它会将切点吸附到句子边界,并返回相对于该片段重新校准时间的窗口转录文本,供下游加字幕使用。无 LLM,编辑性挑选应在上游完成(通常是 highlights 流水线)。

0.1

还需填写:视频, 字幕文稿 (SRT), 开始(秒), 结束(秒)

最适合

  • 将长视频裁剪到上游已选定的明确窗口
  • 接在 highlights 之后串联:highlights 挑选时刻,video-trim 将其切出
  • 一次调用即产出按句子边界吸附的片段,外加其重新校准时间的窗口 SRT

使用时机

  • 始终在 transcription + highlights 之后(或任何已知晓窗口的调用方之后)
  • 在 captions 之前,输出中重新校准时间的窗口 SRT 会直接供给 captions 步骤

提示

  • 搭配 highlights(count=N、style=...)以获得权威的编辑性挑选
  • 切点会吸附到 SRT 片段边界,传入一个略微偏紧的窗口,让吸附将其扩展为完整句子
  • 输出的转录文本 URL 已以 t=0 重新校准时间;可直接供给 captions

使用此流水线的配方

关于此流水线的文章

视频裁剪 API

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

4 个输入
4 必填
0.1 积分
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-trim",
  input: {
    video_url: "https://example.com/interview.mp4",
    transcript_url: "https://example.com/interview.vtt",
    start_sec: 12,
    end_sec: 48,
  },
});
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-trim",
    input={
        "video_url": "https://example.com/interview.mp4",
        "transcript_url": "https://example.com/interview.vtt",
        "start_sec": 12,
        "end_sec": 48,
    },
))
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",
  "transcript_url": "https://example.com/interview.vtt",
  "start_sec": 12,
  "end_sec": 48
}`)

run, err := pipe2.RunPipeline(context.Background(), client, "video-trim", input)
if err != nil {
    log.Fatal(err)
}
brew install pipe2-ai/tap/pipe2
pipe2 pipelines run \
  --pipeline video-trim \
  --input-json '{"video_url": "https://example.com/interview.mp4", "transcript_url": "https://example.com/interview.vtt", "start_sec": 12, "end_sec": 48}' \
  --wait

获取 API 令牌 →

参数

end_sec 必填

窗口结束时间(不含)。必须大于 start_sec。

number
start_sec 必填

窗口开始时间。通常由上游挑选器提供(例如精彩片段)。

number
transcript_url 必填

源视频的 SRT 字幕文稿,必填。窗口会对齐到其分段边界,并返回切分后的 SRT 供下游添加字幕使用。

string
video_url 必填

要裁剪的源视频。

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 参考

视频裁剪: 确定性的、基于转录文本的切割

传入源视频、其 SRT 转录文本,以及一个明确的 [start_sec, end_sec] 窗口。流水线会将该窗口吸附到真实的片段边界,使切点绝不落在句子中间,用 ffmpeg 裁剪源视频,并返回以 t=0 重新校准时间的窗口转录文本,可供 captions 步骤直接使用,无需重新转录。

工作原理

  1. 吸附到片段: 起点/终点会被收拢到最近的 SRT 片段边界
  2. 切分 SRT: 保留的片段会以 t=0 重新校准时间,并作为窗口转录文本上传
  3. FFmpeg 裁剪: 源视频会被裁剪到吸附后的窗口,边缘干净且帧精确

此处为何不用 LLM

  • 编辑性决策(哪个时刻值得剪辑)应在上游完成,通常是 highlights 流水线
  • 在 highlights 之后再次调用 LLM 只会在所选窗口与所渲染窗口之间引入偏移
  • 单次调用计费:每次裁剪统一 0.1 积分,无需按 token 结算

常见问题

窗口是如何选定的?
由你提供。highlights 流水线(或任何其他上游挑选器)会给出 start_sec 和 end_sec;本裁剪会确定性地消费它们。裁剪本身没有 LLM,编辑性决策存在于挑选器中。
它为什么需要转录文本?
转录文本正是让切点吸附到完整句子、而不落在词语中间的关键。流水线会保留与你的窗口重叠的每个片段,取所保留集合的跨度,并据此裁剪视频,随后同一份 SRT 会被切分并以 t=0 重新校准时间,返回供 captions 步骤复用。
它可以在没有转录文本的情况下运行吗?
不再可以。当 highlights 接管编辑性挑选后,先前基于关键帧视觉的回退方案已被移除,它总是偏离所选窗口。请先转录源视频(transcription 流水线按源哈希缓存,因此重复运行是免费的)。
这需要积分吗?
每次裁剪 0.1 积分,统一计费。
如果 start_sec/end_sec 落在转录文本之外怎么办?
该窗口是与你的转录文本而非原始视频进行匹配的。如果超出结尾,切割会回退到转录文本中的最后一句。

探索更多流水线

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