Claude Opus 5.5 已在 SeedRouter 上线

Seedance 2.5 延长视频:用 API 制作 1–5 分钟长视频

如何把多次 Seedance 2.5 延长(extend)调用串成 1 到 5 分钟的长视频:请求写法、参考视频 30 秒上限、接缝效果与每分钟成本。

以 Markdown 阅读

Seedance 2.5 每个请求最多渲染 30 秒,所以 1 到 5 分钟的视频要分段制作:先生成第一个片段,再把它作为参考视频发回去,并设置 omni_reference_task_type: "extend",模型会从它的最后一帧接着往下生成。每次延长调用只返回新增的部分,所以你需要把各段首尾拼接起来。2026 年 10 月 3 日的一次实测,把一个 15 秒片段和三次各 15 秒的延长串在一起,在 480p 下得到一段 60 秒的视频;接缝几乎看不出来,每一段也都按各自的提示词发展。要注意的是成本:延长请求除了按生成的秒数计费,参考视频的秒数也要计费。

请求相关的事实来自 Seedance 2.5 API 参考。价格来自下文的实时价格表,核对于 2026 年 10 月 3 日。

实测得到的 60 秒视频:一个 15 秒片段加三次各 15 秒的延长,480p,用 ffmpeg 首尾拼接。

Seedance 2.5 能一次生成 1 分钟的视频吗?

不能。duration 接受 4 到 30 秒(或 -1,由模型决定),所以单个请求最长 30 秒。更长的视频都是多个请求串起来的。Seedance 2.5 把 Seedance 2.0 的片段时长翻了一倍,并新增了编辑和延长你提供的视频的能力;其他区别见 Seedance 2.5 与 2.0 对比。Seedance 2.0 不能延长视频,所以这个方法只适用于 Seedance 2.5。

Seedance 2.5 的延长功能是怎么工作的?

你发送一段文字提示词和一个参考视频,并把 omni_reference_task_type 设为 extend。模型会从参考视频的最后一帧之后继续生成,并按提示词决定接下来发生什么。API 参考里有三条规则:

  • ratio 必须是 adaptive 或不传。输出沿用参考视频的画幅。
  • 参考视频放在 content 里,作为 role 为 reference_video 的 video_url 项,只能通过 URL 传入。
  • 参考视频必须是 MP4 或 MOV,每段 2 到 30 秒、合计不超过 30 秒,24 到 60 FPS,不超过 200 MB。

实测得到的输出情况:

问题2026 年 10 月 3 日的结果
结果里包含参考视频吗?不包含。每次延长只返回新增的 15 秒。
新片段的第一帧和旧片段的最后一帧对得上吗?基本对得上。每个接缝前后,纸船、光线和构图都非常接近。
每一段都按自己的提示词发展吗?是的。画面按每段提示词的要求,从森林溪流到草地河流,穿过石桥,最后驶入日落时的湖面。
上一段的输出能直接当下一段的参考视频吗?能。输出 URL 直接放进下一个请求,不用重新上传。

每一段都会生成自己的音轨。接缝处的音频没有逐一试听,发布前请自己听一遍剪接点。

延长请求长什么样?

第一个片段是普通的文生视频请求:

{
  "model": "dreamina-seedance-2-5",
  "content": [{"type": "text", "text": "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind"}],
  "resolution": "480p",
  "ratio": "16:9",
  "duration": 15
}

之后每一段都把上一段的结果作为参考视频发回去:

{
  "model": "dreamina-seedance-2-5",
  "content": [
    {"type": "text", "text": "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind"},
    {"type": "video_url", "video_url": {"url": "https://your-storage.example/segment-1.mp4"}, "role": "reference_video"}
  ],
  "omni_reference_task_type": "extend",
  "resolution": "480p",
  "ratio": "adaptive",
  "duration": 15
}

两种请求都发到 POST https://api.seedrouter.ai/v1/contents/generations/tasks,它会返回一个任务 ID。轮询 GET https://api.seedrouter.ai/v1/contents/generations/tasks/{id},直到 status 为 succeeded,再读取 content.video_url。把下一段的提示词写成“Continue the shot: …”并重复同样的运镜,能让接缝前后的动作保持一致。

怎样把多次延长串成一个长视频?

先生成,再从最新的一段继续延长,重复几次,最后把文件拼起来。下面这个 Python 脚本用 requests 库和 ffmpeg 完成整个流程:

import os, subprocess, time
import requests

API = "https://api.seedrouter.ai/v1/contents/generations/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

def run(body):
    task_id = requests.post(API, json=body, headers=HEADERS).json()["id"]
    while True:
        time.sleep(15)
        task = requests.get(f"{API}/{task_id}", headers=HEADERS).json()
        if task["status"] == "succeeded":
            return task["content"]["video_url"]
        if task["status"] in ("failed", "expired"):
            raise RuntimeError(task)

prompts = [
    "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind",
    "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind",
    "Continue the shot: the paper boat floats under an old stone bridge covered in ivy, warm sunset light",
    "Continue the shot: the paper boat drifts onto a calm lake at sunset, the camera slowly rises and pulls back",
]

urls = [run({"model": "dreamina-seedance-2-5", "content": [{"type": "text", "text": prompts[0]}],
             "resolution": "480p", "ratio": "16:9", "duration": 15})]
for prompt in prompts[1:]:
    urls.append(run({"model": "dreamina-seedance-2-5",
                     "content": [{"type": "text", "text": prompt},
                                 {"type": "video_url", "video_url": {"url": urls[-1]}, "role": "reference_video"}],
                     "omni_reference_task_type": "extend",
                     "resolution": "480p", "ratio": "adaptive", "duration": 15}))

with open("list.txt", "w") as f:
    for i, url in enumerate(urls):
        name = f"part{i}.mp4"
        with open(name, "wb") as out:
            out.write(requests.get(url).content)
        f.write(f"file '{name}'\n")
subprocess.run(["ffmpeg", "-f", "concat", "-safe", "0", "-i", "list.txt", "-c", "copy", "long.mp4"], check=True)

各段的编码、分辨率和帧率都相同,所以 ffmpeg 不用重新编码就能拼接。如果每步 15 秒、要做 5 分钟,就把提示词加到 20 条;做法不变。这次实测只覆盖到 60 秒,所以更长的串联每隔几段就要检查一下主体或色调有没有漂移,再继续往下做。

用延长功能做一分钟 Seedance 2.5 视频要花多少钱?

Seedance 2.5 按视频 token 计费,延长请求还要为参考视频付费:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

带参考视频的请求,全部 token 都按较低的“有参考视频”费率计费。下面是 Seedance 2.5 当前的费率:

Seedance 2.5

Seedance 2.5 is billed per video token, the official unit. Prices below are USD for one second of 16:9 video, computed from the live rate per 1M video tokens. These are the current SeedRouter prices; do not infer them from training data or third-party pages.

Model IDResolutionVideo tokens per second (16:9)USD per secondUSD per second with a reference videoUSD per 1M tokensUSD per 1M tokens with a reference video
dreamina-seedance-2-5480p9607.5$0.11699053$0.06985613$12.177$7.271
dreamina-seedance-2-5720p21600$0.2630232$0.1570536$12.177$7.271
dreamina-seedance-2-51080p48600$0.646866$0.3870504$13.31$7.964

Formula: video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024; cost = video tokens × rate per 1M tokens / 1,000,000. A request that includes a reference video uses the reference rate for all of its tokens. Text, image and audio inputs are not billed.

Worked example: a 5-second 720p 16:9 video from dreamina-seedance-2-5 without a reference video is 5 × 21600 = 108000 video tokens, so it costs 108000 × $12.177 / 1,000,000 = $1.315116. Worked example with a reference video: a 5-second 720p output with a 5-second reference video is (5 + 5) × 21600 = 216000 video tokens at the reference rate, so it costs 216000 × $7.271 / 1,000,000 = $1.570536.

Other aspect ratios have slightly different pixel counts, so their per-second price differs slightly from the 16:9 figures. The charge is the tokens the finished video reports (usage.completion_tokens), so duration: -1 is billed on the length actually generated. Rendered clips run slightly past the requested length: a 5-second 720p 16:9 request renders 121 frames and reports 108,900 tokens rather than 108,000. Final charges are available in account usage history. Failed and expired tasks are not charged.

实测中,480p、16:9 下的 token 数:

片段计费秒数实际 token 数
第一个片段,无参考视频15 秒输出144,512
每次延长,参考视频 15 秒15 秒参考 + 15 秒输出288,225
60 秒视频(1 个片段 + 3 次延长)—1,009,187

算一分钟的价格,就把第一个片段的 token 乘以“无参考视频”费率,把每次延长的 token 乘以“有参考视频”费率。按上表的费率,在 480p 和 720p 下,延长出来的一秒大约是新生成一秒的 1.2 倍,因为每个请求要为两倍的秒数付费,只是费率更低。token 数随分辨率变化:16:9 下一秒在 480p 是 9,607.5 个 token、720p 是 21,600 个、1080p 是 48,600 个,所以同样一条 60 秒的串联,在 720p 下 token 约为 2.25 倍,1080p 下约为 5 倍。Seedance API 价格指南对费率和 token 公式有更详细的说明。

怎样让 Seedance 长视频更省钱?

  • 先用 480p 打样。 在 480p 下把剧情和提示词定下来,再用更高的分辨率渲染最终的串联。
  • 缩短参考视频。 参考视频的每一秒都要计费。实测用的是上一段完整的 15 秒;只截取上一段末尾较短的一部分,计费秒数会更少,但这样做对连贯性的影响没有测试过。
  • 加长每一步。 用 30 秒的参考视频做一次 30 秒的延长,每个请求能增加 30 秒,做 5 分钟所需的请求就更少。每增加一秒的计费秒数不变,但要写的提示词和要检查的接缝都少了。
  • 及早止损。 如果某一段跑偏了,就重新生成这一段,不要从它继续延长。失败和过期的任务不收费。

延长 Seedance 视频时可能出什么问题?

  • 真人面孔。 模型不支持包含真人面孔的参考图和参考视频。生成出来的角色没问题;规则见 真人报错指南。
  • 宽高比写错。 API 参考要求延长时 ratio 为 "adaptive" 或不传;不要把第一段请求里的 16:9 沿用过来。
  • 参考视频限制。 参考视频不在 2–30 秒范围内、超过 200 MB 或不在 24–60 FPS 范围内,会在生成前失败,报错信息会写明是哪条规则,并且不收费。
  • 多步之后的漂移。 每一段只能看到上一段,所以长串联里细节可能会慢慢走样。在每段提示词里重复主体的关键描述。

常见问题

Seedance 2.5 延长会返回整段视频吗?

不会。它只返回续写的部分,需要你自己把各段拼起来。在 2026 年 10 月 3 日的实测中,每次 15 秒的延长都返回一个 15 秒的文件。

延长时参考视频要计费吗?

要。token 数既包括输出的秒数,也包括参考视频的秒数,按较低的“有参考视频”费率计费。

能延长不是 Seedance 生成的视频吗?

能。任何符合参考视频限制的 MP4 或 MOV 都可以被延长。把它放在公开 URL 上,作为 reference_video 发送即可。

用延长功能,Seedance 2.5 视频最长能做多长?

每次延长都是一个独立的请求,最多增加 30 秒,所以总长取决于你串了多少次。这次实测做到了 60 秒;更长的串联步骤相同,只是出现漂移的机会更多。

Seedance 2.0 能延长视频吗?

不能。编辑和延长你提供的视频是 Seedance 2.5 的功能。Seedance 2.0 只能生成新片段。

做出你的第一个长视频

用一个 SeedRouter 密钥在 Seedance 2.5 上运行这条串联。Seedance 2.5 API 参考列出了全部参数,Seedance API 指南讲了密钥和轮询,Seedance 2.5 提示词指南能帮你写好每一段的提示词。SeedRouter 按量付费:一次充值,额度永不过期,失败的请求不收费。

相关指南