Назад к пайплайнам

Обрезка видео

Детерминированная обрезка видео с учётом транскрипта: нарезает SRT по вашему явному окну [начало, конец] и режет исходник через ffmpeg под него. Привязывает срезы к границам предложений и возвращает оконный транскрипт, пересчитанный под клип, для последующего субтитрирования. Без LLM, редакторский выбор относится к предыдущему шагу (обычно к пайплайну highlights).

0.1

Осталось заполнить: Видео, Транскрипт (SRT), Начало (секунды), Конец (секунды)

Лучше всего для

  • Нарезка длинных видео по явному окну, уже выбранному на предыдущем шаге
  • Постановка после highlights: highlights выбирает момент, video-trim его нарезает
  • Создание клипа с привязкой к границам предложений плюс его пересчитанный оконный SRT за один вызов

Когда использовать

  • Всегда после transcription + highlights (или любого вызывающего, который уже знает окно)
  • Перед captions, пересчитанный оконный SRT в выводе напрямую питает шаг captions

Советы

  • Сочетайте с highlights (count=N, style=...), чтобы получить авторитетный редакторский выбор
  • Срезы привязываются к границам сегментов SRT, передавайте чуть более узкое окно и позвольте привязке расширить его до целого предложения
  • Ссылка на транскрипт в выводе уже пересчитана к 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 обязательно

Начало окна. Обычно задаётся предыдущим этапом отбора (напр. highlights).

number
transcript_url обязательно

SRT-транскрипт исходника, обязателен. Окно привязывается к границам его сегментов, а обрезанный SRT возвращается для дальнейшего добавления субтитров.

string
video_url обязательно

Исходное видео для обрезки.

string

Использование из ИИ-агента

Направьте любой MCP-клиент на pipe2, и ваш агент получит эти инструменты. Он найдёт этот пайплайн, прочитает ту же схему выше и запустит его.

  • 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

Video Trim: детерминированная нарезка с учётом транскрипта

Передайте исходное видео, его SRT-транскрипт и явное окно [start_sec, end_sec]. Пайплайн привязывает окно к реальным границам сегментов, чтобы срезы никогда не попадали в середину предложения, обрезает исходник через ffmpeg и возвращает оконный транскрипт, пересчитанный к t=0, готовый к использованию на шаге captions без повторной транскрипции.

Как это работает

  1. Привязка к сегментам: начало/конец подгоняются к ближайшим границам сегментов SRT
  2. Нарезка SRT: сохранённые сегменты пересчитываются к t=0 и загружаются как оконный транскрипт
  3. Обрезка FFmpeg: исходник режется по привязанному окну с чистыми покадрово точными краями

Почему здесь нет LLM

  • Редакторское решение (какой момент стоит нарезать) относится к предыдущему шагу, обычно к пайплайну highlights
  • Повторный вызов LLM после highlights лишь добавляет расхождение между выбранным окном и отрендеренным
  • Биллинг за один вызов: фиксированные 0,1 кредита за обрезку, без пересчёта по токенам

Часто задаваемые вопросы

Как выбирается окно?
Вы его задаёте. Пайплайн highlights (или любой другой предшествующий подбор) выдаёт start_sec и end_sec; эта обрезка использует их детерминированно. В самой обрезке нет LLM, редакторское решение живёт в подборе.
Почему требуется транскрипт?
Именно транскрипт заставляет срез привязываться к целому предложению, а не попадать в середину слова. Пайплайн сохраняет каждый сегмент, пересекающийся с вашим окном, берёт границы сохранённого набора и обрезает видео под них, затем тот же SRT нарезается и пересчитывается к t=0 и возвращается для повторного использования на шаге captions.
Может ли она работать без транскрипта?
Больше нет. Прежний запасной вариант на основе vision по ключевым кадрам был удалён, когда highlights взял на себя редакторский выбор, он стабильно расходился с выбранным окном. Сначала транскрибируйте исходник (пайплайн транскрипции кэширует по хэшу исходника, так что повторные запуски бесплатны).
Стоит ли это кредитов?
0.1 кредита за обрезку, фиксированно.
Что если start_sec/end_sec окажутся за пределами транскрипта?
Окно сопоставляется с вашим транскриптом, а не с исходным видео. Если оно выходит за конец, срез сдвигается назад к последнему предложению транскрипта.

Другие пайплайны

Смотреть все →
Генератор видео
from 9.5
Генератор видео
Генератор изображений
0.2-6.4
Генератор изображений
Генератор аудио
0.7-1.3
Генератор аудио
Генератор музыки
2.5-45.1
Генератор музыки