视频生成
通过 Rivus AI 网关代理调用 OpenAI Sora 视频生成接口
使用 OpenAI Sora 模型生成视频内容。Rivus AI 支持完整的视频生成工作流,包括任务创建、状态查询和内容下载。Documentation Index
Fetch the complete documentation index at: https://docs.rivus.cn/llms.txt
Use this file to discover all available pages before exploring further.
创建视频任务
通过提供文本提示词来生成视频:请求参数
model:模型名称,支持sora-2和sora-2-proprompt:视频生成的文本描述seconds:视频时长(秒,字符串传递更兼容)。常见可用档位:sora-2:10、15sora-2-pro:15、25- OpenAI 官方 API 仅支持:
4、8、12
size:视频分辨率,如1280x720、1920x1080
- 快速预览:优先 10 秒(若使用 OpenAI 官方 API,请按其仅支持的 4/8/12 秒档位)
- 正式成片:
sora-2-pro的 25 秒可以呈现更完整叙事,但生成与下载时间也更长
角色视频(Character)扩展(特定上游)
当 OpenAI 渠道的上游支持 Sora 角色扩展能力时,平台会对/v1/videos 进行扩展,支持官方文档中的角色相关参数。典型用法是先通过 /sora/v1/characters 创建一个角色,再在视频提示词或参数中引用该角色。
额外参数(仅在支持该扩展能力的上游生效)
character_url:包含目标角色的视频 URL(通常与/sora/v1/characters中的url一致)character_timestamps:角色在视频中的时间片段范围,单位秒,格式如1,3(表示 1~3 秒)private:是否为私有角色,字符串"true"或"false"(不填时由上游按默认策略处理)
JSON 调用示例(支持角色扩展的上游)
- JSON 请求会在网关层自动转换为
multipart/form-data,并透传上述字段到上游; - multipart 请求则保持原样透传,你也可以直接使用
-F character_url=...的形式提交。
响应示例
状态说明
任务创建后会经历以下状态:queued:任务已排队,等待处理processing:正在生成视频completed:生成完成,可以下载视频failed:生成失败
completed_at(完成时间)和 expires_at(过期时间)字段。视频文件会在过期时间后自动删除。完整示例
创建任务并等待完成:status 字段取值为 queued、processing、completed、failed 等。视频完成后会包含 completed_at 和 expires_at 时间戳。计费模型与升级说明
- 计费模式:Sora 视频任务采用“终态实扣,失败不扣”的模式:
- 创建阶段:仅记录任务与预估信息,不对用户/Token 实际扣费;
- 终态结算:当任务进入
completed或failed时,由后台轮询器根据最终时长与价目表一次性结算; - 失败任务:不扣费,仅更新计费状态。
- 新旧版本兼容:
- 老版本曾采用“创建阶段先扣,失败时退款”的策略,部分历史任务的计费记录可能存在“预扣 + 退款”;
- 新版本仅对创建时
Quota=0的任务启用终态计费;历史数据的对账与核对可以通过logs.metadata.platform_task_id与tasks.platform_task_id进行关联审计。
脚本示例(Python,本地文件参考图)
仓库提供了基于 openai Python SDK 的本地验证脚本,可通过input_reference 上传参考图并自动轮询与下载:
参考图生视频(Image-to-Video)
除纯文本生视频外,Rivus AI 也支持“带参考图”的视频生成。按照 OpenAI Sora 的接口规范,在创建任务时以 multipart/form-data 方式上传参考图文件字段input_reference。
curl 示例(multipart)
seconds 必须是 4、8 或 12 且需在 multipart 表单中显式提供。请确保 -F seconds=8 使用的是纯数字,不要加引号,也不要误用 Bash/Zsh 的保留变量 SECONDS。Python SDK 示例(openai-python)
- curl 版本:
scripts/validate_image2video.sh(自动下载示例参考图、轮询并下载成片) - SDK 版本:
scripts/sora2_image_to_video_sdk.py(基于 openai Python SDK,支持--image/--seconds/--size参数)
Authorizations
使用 API Key 作为 Bearer Token
Body
模型名称
sora-2, sora-2-pro "sora-2"
视频生成的文本描述,最多 1000 个字符
1000"百事可乐宣传片"
视频时长(秒)。sora-2 支持 4、8、10、12、15 秒,默认 10;sora-2-pro 支持 4、8、12、15、25 秒,默认 15
4, 8, 10, 12, 15, 25 4
视频分辨率
1280x720, 1920x1080, 720x1280, 1080x1920 "720x1280"
Response
任务创建成功
视频任务的唯一标识符
"video_691209aab0a08198a4e78870277f7e3d0215e09cec47a737"
对象类型
video "video"
创建时间戳(Unix 时间)
1762789802
任务完成时间戳(仅在 completed 状态下存在)
1762789891
视频过期时间戳(仅在 completed 状态下存在)
1762793491
使用的模型名称
"sora-2"
任务状态
queued, processing, completed, failed "queued"
生成视频的文本描述
"一个无人机从海滩升空拍摄夕阳"
处理进度(0-100)
0 <= x <= 1000
视频时长(字符串格式)
"10"
视频分辨率
"1280x720"
生成的视频资源数组,仅在 completed 状态下存在(部分供应商可能不返回此字段,需通过 /content 端点下载)
父视频 ID(仅 Remix 任务返回)
"video_691209aab0a08198a4e78870277f7e3d0215e09cec47a737"
错误信息,仅在 failed 状态下存在
