Aerial orbit over a rain-slicked downtown intersection at night, neon signs reflecting on wet asphalt, traffic light trails, cinematic drone shot slowly circling, volumetric haze. Natural sound: distant traffic hum, rain drizzle, a faraway siren. Cinematic realistic motion, no text, no logos.
Sora 2 Pro Text to Video API
openai/sora-2-pro/text-to-videoSora 2 Pro(Text to Video)将文本提示词转化为最高 1080p 全高清电影质感视频,支持 4 至 20 秒固定时长、多分辨率切换与原生高动态立体声音轨。它能够在呈现细腻微表情与复杂三维光影的同时,保持极高的大幅运镜稳定性与时空物理连贯性。
生成的视频会显示在这里
填写提示词并添加所需素材,确认设置后点击“运行”。
示例
REST API
快速开始
配置 API Key,提交旗舰 1080p 文生视频请求,轮询获取带原生音频的成片。
第一步:配置 API 鉴权
在请求头中携带 Authorization: Bearer <VIDGO_API_KEY> 完成身份验证。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第二步:提交文生视频任务
向 /api/generate/submit 发起 POST 请求,指定 model 为 openai/sora-2-pro/text-to-video 并传入 input 参数。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "openai/sora-2-pro/text-to-video",
"input": {
"prompt": "Cinematic 1080p tracking shot: a vintage sports car speeds along an Amalfi coast highway at golden hour, waves crashing against coastal rocks below, sunlight glinting off metallic paint, dramatic lens flare, 35mm film grain, volumetric atmosphere. Audio: deep engine rumble, coastal wind gusts, rhythmic ocean surge.",
"duration": 4,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"第三步:轮询获取生成结果
使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
状态查询端点
GET https://api.vidgo.ai/api/generate/status/{task_id}使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "task-sora2-pro-t2v-109283",
"status": "running",
"created_time": "2026-09-17T10:00:00Z"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}完整代码示例
展开查看包含鉴权、提交、轮询与终态判断的完整脚本代码。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "openai/sora-2-pro/text-to-video",
"input": {
"prompt": "Cinematic 1080p tracking shot: a vintage sports car speeds along an Amalfi coast highway at golden hour, waves crashing against coastal rocks below, sunlight glinting off metallic paint, dramatic lens flare, 35mm film grain, volumetric atmosphere. Audio: deep engine rumble, coastal wind gusts, rhythmic ocean surge.",
"duration": 4,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数
向 /api/generate/submit 提交时需传递的 input 参数配置:
| 字段 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 必填 | — | 生成提示词,去除首尾空格后至少包含 1 个字符。 |
| duration | integer | 可选 | 4 | 视频时长(秒),支持 4, 8, 12, 16, 20。 |
| aspect_ratio | string | 可选 | 16:9 | 画幅比例,支持 16:9 或 9:16。 |
| resolution | string | 可选 | 1024p | 输出分辨率,支持 720p, 1024p, 1080p。 |
响应字段
提交任务成功后返回的数据结构,以及状态查询接口响应:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | integer | 业务状态码,200 表示成功。 |
| message | string | 业务返回消息或异常描述。 |
| data.task_id | string | 全局唯一的异步任务标识流水号。 |
| data.status | string | 当前状态:not_started(排队中)、running(生成中)、finished(已完成)、failed(失败)。 |
| data.created_time | string | 任务创建时间(ISO 8601 格式)。 |
| data.files[] | array | 任务成功生成的文件列表。 |
| data.files[].file_url | string | 成片 MP4 文件的下载播放链接。 |
| data.error_message | string | null | 任务失败时的详细错误说明。 |
任务状态流转
轮询过程中,依据 data.status 判断任务执行阶段:
not_started任务已被系统受理入队,正等待旗舰算力节点分配。
running正在执行 1080p 扩散去噪与高动态音轨合成,持续轮询此状态。
finished生成成功,从 data.files[0].file_url 读取成片链接,终止轮询。
failed任务执行异常终止,读取 data.error_message 查看原因并终止轮询。
轮询与重试建议
- 身份认证请求头必须携带 Bearer API Key,若收到 401 请检查密钥有效性。
- 参数校验核对 resolution 是否属于 720p/1024p/1080p,以及 duration 取值范围。
- 轮询频次1080p 全高清渲染算力消耗较大,建议以 2–3 秒间隔轮询,平稳跟踪进度。
- Webhook 回调支持在提交请求顶层配置 callback_url,成片完成后系统将主动推送任务结果。
端点规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 输入方式 | 纯文本 | 通过 prompt 描述场景、主体动作、摄影机运动与声音氛围。 |
| 输出形式 | MP4 视频(含原生音频) | 异步执行渲染,任务完成后提供成片链接。 |
| 可选时长 | 4 / 8 / 12 / 16 / 20 秒 | 默认预设为 4 秒。 |
| 画幅比例 | 16:9 / 9:16 | 默认预设为 16:9。 |
| 原生分辨率 | 720p / 1024p / 1080p | 默认预设为 1024p,最高支持 1080p 全高清。 |
| 计费基准 | 按分辨率每秒费率 × 时长 | 720p: 48 积分/秒;1024p: 80 积分/秒;1080p: 112 积分/秒。 |
Sora 2 Pro Text to Video
Sora 2 Pro Text to Video 是 OpenAI 研发的旗舰文本生成视频模型。它通过文字指令生成包含电影级画质、细腻光影反射与原生立体声音频的短视频,原生支持 720p、1024p 和 1080p 三档分辨率。适合用于高端影视概念分镜、品牌商业广告与沉浸式数字内容的高水准交付。
为什么选择此端点?
1080p 旗舰全高清画质提供 1080p 顶级视觉分辨率,深度还原微观材质肌理、发丝细节与复杂空间漫反射,成片达到直接商用标准。
高保真光影与电影级运镜精准遵循摄影光学原理,支持自然语言调度变焦、推拉、跟拍与航拍运镜,在大动态画面下保持画面稳定。
原生高动态立体声音轨在画面生成的同时联合渲染声场,将对白环境音、环境底噪与动作声效精确对齐画面节拍,无需二次配音。
多档超清分辨率灵活切换提供 720p、1024p 与 1080p 三档规格,可在前期创意验证与最终全高清渲染交付之间灵活平衡周期与成本。
长达 20 秒时空连续性提供 4s、8s、12s、16s、20s 精确阶梯时长,在长达 20 秒的连续镜头中维持主体特征、物理惯性与光影逻辑高度一致。
企业级可预测弹性计费按「秒数 × 分辨率系数」透明核算积分消耗,支持即用即付,助力专业制作团队与企业流水线精准控制生产预算。
参数说明
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 必填 | 字符串。详细描述主体形象、场景光线、多轴运镜、动态细节与环境声场设计;去除首尾空格后至少包含 1 个字符。 |
| duration | 可选 | 整数。设置生成视频的时长(秒);可选 4、8、12、16、20,体验区默认预设为 4 秒。 默认值 48121620 |
| aspect_ratio | 可选 | 字符串。设置视频画幅;可选 16:9(默认)或 9:16。 默认值 16:99:16 |
| resolution | 可选 | 字符串。设置输出分辨率;可选 720p、1024p 或 1080p,体验区默认预设为 1024p。 默认值 1024p720p1080p |
使用流程
获取 API Key 与鉴权在控制台申请 API Key,并在 HTTP 请求头中携带 Authorization: Bearer <API_KEY>。
选择分辨率与时长规格根据项目交付要求选择 720p、1024p 或 1080p 分辨率,以及 4 至 20 秒时长,积分将依据选定配置精准扣除。
提交请求并获取 1080p 成片向 /api/generate/submit 提交 prompt 及相关参数,依据 task_id 轮询状态至 finished 后读取 MP4 下载播放。
计费规则
Sora 2 Pro 旗舰版按「分辨率每秒费率 × 时长秒数」计费:720p 每秒 48 积分(4s=192 积分)、1024p 每秒 80 积分(4s=320 积分,默认档位)、1080p 每秒 112 积分(4s=448 积分)。换算口径基于 2,000 积分 / 10 美元标准套餐,即用即付,无需绑定月费套餐,大额套餐更享更低折算单价。
| 规格 | 费率 | 说明 |
|---|---|---|
| 720p 档位(4–20 秒) | 48 积分/秒(4 秒 192 积分起,约 $0.96) | 适合 Pro 旗舰模型的高速动态构图测试与中端成片输出。 |
| 1024p 档位(4–20 秒,默认) | 80 积分/秒(4 秒 320 积分起,约 $1.60) | 默认预选档位,兼顾顶尖画质细节与优良渲染吞吐率。 |
| 1080p 档位(4–20 秒) | 112 积分/秒(4 秒 448 积分起,约 $2.24) | 全高清最高分辨率输出,适用于院线概念预览与高端商业广告交付。 |
推荐应用场景
商业广告大片与品牌宣传以 1080p 超清分辨率与复杂多轴运镜,制作质感媲美实拍的品牌 TVC、概念短片与高质量社媒视觉大片。
电影工业概念分镜与动态预览为影视导演和摄影团队精准构建高保真动态分镜,验证复杂打光方案、特效场景与长镜头时空节奏。
超清数字艺术与沉浸式大屏生成具备细腻材质反射与原生宏大音场的 1080p 超高清艺术视频,完美适配展厅大屏与数字艺术装置。
高要求游戏与影视宣传物料快速渲染虚构世界观、复杂生物动态与激烈运动场景,高效率完成 1080p 宣发先导预告片制作。
创作技巧
- 在提示词中详细描绘光线源流(如清晨薄雾中的逆光轮廓光、霓虹湿地反射),以充分发挥 Pro 模型的光影渲染上限。
- 运用专业摄影机机位指令(如推镜头推进特写、低机位大仰角跟拍),可激发模型更强的三维空间透视稳定性。
- 前期快速测试建议选择 4 秒时长及 720p 或 1024p 规格,确认动作节奏完全符合预期后再使用 1080p 渲染 20 秒成片。
- 细化描述声效细节与空间混响感(如大理石厅堂中的皮鞋回响),能让内嵌的原生音频表现出极强的真实空间包裹感。
使用说明
- Sora 2 Pro 支持可选 resolution 参数(720p, 1024p, 1080p),默认预选为 1024p。
- 成片统一输出高质量 MP4 封装,内嵌原生多声道音频轨道。
- 支持在请求中配置 callback_url 接收任务终态 Webhook 通知,建议异步轮询间隔保持为 2–3 秒。
Sora 2 Pro Text to Video API — 常见问题
Sora 2 Pro Text to Video API 是什么?
Sora 2 Pro Text to Video 是 OpenAI 研发用于文本生成视频的旗舰模型。它根据文本提示词直接生成最高 1080p 全高清分辨率、包含原生高动态立体声音频的电影质感视频,支持专业级运镜控制与多画幅构图。基于 OpenAI 最强多模态架构,它在严格遵循真实物理规律与时空连续性的同时,提供细腻的光影漫反射与材质肌理表现。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Sora 2 Pro 文生视频支持哪些分辨率?
Sora 2 Pro 文生视频端点支持 720p、1024p 和 1080p 三档分辨率(体验区默认预设为 1024p)。1080p 模式专为大屏商业广告与院线级视觉物料打造,呈现极致锐利的人物面部毛孔、织物纤维与复杂光影变化。
Sora 2 Pro 文生视频与标准版有什么区别?
Sora 2 Pro 旗舰版相比 Sora 2 Standard 标准版,最大核心升级在于支持 1080p 全高清渲染,并在复杂光学运镜、三维动态一致性、面部微表情传神度以及立体声混响效果上具备显著的画质与质感优势,专为高端商用场景设计。
Sora 2 Pro 文生视频单次最长支持多少秒?
单次调用支持生成最长 20 秒视频,提供 4、8、12、16 与 20 秒五档精确时长选择(体验区默认预设为 4 秒)。即使在 20 秒的长镜头中,模型依然能稳定保持空间透视关系与物理动量连续性。
Sora 2 Pro 文生视频支持生成原生音效吗?
支持。模型在生成画面的同时随视频联合渲染原生音轨,可根据提示词精确合成环境背景声效、车辆声、气流呼啸或人物对白氛围,音轨具备高保真声场定位与动作同步特性。
如何引导 Sora 2 Pro 文生视频展现电影级光影?
建议在提示词中加入具体的光学与打光细节,例如“35mm 变形镜头光晕(anamorphic flare)”、“逆光轮廓光(backlit rim light)”或“阴天柔和漫射光”,Pro 旗舰版能高度敏感地还原这些专业灯光设定。
需要根据首帧图片生成 1080p 视频该选哪个端点?
推荐选择关联的 Sora 2 Pro Image to Video 旗舰图生视频端点。该端点不仅支持最高 1080p 输出,还支持 auto 智能画幅比例,以原图构图比例与主体质感为参考展开动态。