
Sora是什么 - OpenAI视频生成AI完整指南
想要用AI生成高质量视频?Sora 是 OpenAI 推出的革命性视频生成模型,能够根据文字描述生成逼真的视频内容。本文将全面介绍 Sora 的功能、使用方法和 API 接入教程。
本文内容:
- Sora 是什么及其核心功能
- Sora 2 的技术规格和限制
- 如何通过 API 使用 Sora
- 完整的代码示例
- 价格对比和成本分析
Sora 是什么?#
Sora 是 OpenAI 于 2024 年发布的文本到视频(Text-to-Video)AI 模型。它能够根据用户提供的文字描述,生成长达 1 分钟的高清视频。
Sora 的核心能力#
- 文本生成视频:输入文字描述,AI 自动生成对应的视频内容
- 图片生成视频:将静态图片转换为动态视频
- 视频扩展:延长现有视频的时长
- 视频混剪:将多个视频片段智能融合
Sora 2 技术规格#
| 规格 | 参数 |
|---|---|
| 最大分辨率 | 1920×1080 (1080P) |
| 视频时长 | 4秒、8秒、12秒 |
| 支持比例 | 16:9(横屏)、9:16(竖屏) |
| 输出格式 | MP4 |
Sora 2 可用模型#
Crazyrouter 提供多个 Sora 2 模型变体,满足不同场景需求:
| 模型名称 | 分辨率 | 适用场景 | 价格 |
|---|---|---|---|
sora-2 | 1280×720 / 720×1280 | 通用视频生成 | $0.11/次 |
sora-2-pro | 最高 1792×1024 | 专业级高清视频 | $1.98/次 |
sora-2-landscape | 1280×720 | 横屏视频 | $0.08/次 |
sora-2-landscape-hd | 1280×720 HD | 横屏高清 | $0.08/次 |
sora-2-portrait | 720×1280 | 竖屏视频(短视频) | $0.08/次 |
sora-2-portrait-hd | 720×1280 HD | 竖屏高清 | $0.08/次 |
价格说明:以上价格已包含 Crazyrouter 折扣(55% off),实际价格以 Crazyrouter 定价页面 为准。
如何使用 Sora API#
前提条件#
- 注册 Crazyrouter 账号
- 获取 API Key
- 安装 Python 或 Node.js 环境
API 参数说明#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | ✅ | 模型名称,如 sora-2 |
prompt | string | ✅ | 视频描述文本 |
size | string | ✅ | 分辨率:1280x720(横屏)或 720x1280(竖屏) |
seconds | string | ❌ | 视频时长:"4"、"8"、"12",默认 4 秒 |
Python 代码示例#
import requests
import time
API_KEY = "your-crazyrouter-api-key"
BASE_URL = "https://crazyrouter.com"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# 1. 创建视频生成任务
def create_video(prompt, size="1280x720", seconds="4"):
response = requests.post(
f"{BASE_URL}/v1/videos",
headers=headers,
json={
"model": "sora-2",
"prompt": prompt,
"size": size,
"seconds": seconds
}
)
return response.json()
# 2. 查询任务状态
def get_video_status(task_id):
response = requests.get(
f"{BASE_URL}/v1/videos/{task_id}",
headers=headers
)
return response.json()
# 3. 完整流程
def generate_video(prompt):
# 创建任务
result = create_video(prompt)
task_id = result.get("id")
print(f"任务已创建: {task_id}")
# 轮询状态
while True:
status = get_video_status(task_id)
print(f"状态: {status.get('status')}, 进度: {status.get('progress', 0)}%")
if status.get("status") == "completed":
video_url = f"{BASE_URL}/v1/videos/{task_id}/content"
print(f"视频生成完成: {video_url}")
return video_url
elif status.get("status") == "failed":
print(f"生成失败: {status.get('error')}")
return None
time.sleep(10) # 每10秒检查一次
# 使用示例
video_url = generate_video("一只猫在海滩上漫步,夕阳西下,金色的阳光洒在海面上")
cURL 示例#
# 创建视频生成任务
curl -X POST https://crazyrouter.com/v1/videos \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "一只猫在海滩上漫步,夕阳西下",
"size": "1280x720",
"seconds": "4"
}'
# 返回示例
# {
# "id": "video_xxx",
# "object": "video",
# "model": "sora-2",
# "status": "queued",
# "progress": 0,
# "created_at": 1769407259,
# "seconds": "4",
# "size": "1280x720"
# }
# 查询任务状态
curl https://crazyrouter.com/v1/videos/video_xxx \
-H "Authorization: Bearer your-api-key"
Node.js 示例#
const axios = require('axios');
const API_KEY = 'your-crazyrouter-api-key';
const BASE_URL = 'https://crazyrouter.com';
const headers = {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
};
async function generateVideo(prompt) {
// 创建任务
const createResponse = await axios.post(
`${BASE_URL}/v1/videos`,
{
model: 'sora-2',
prompt: prompt,
size: '1280x720',
seconds: '4'
},
{ headers }
);
const taskId = createResponse.data.id;
console.log(`任务已创建: ${taskId}`);
// 轮询状态
while (true) {
const statusResponse = await axios.get(
`${BASE_URL}/v1/videos/${taskId}`,
{ headers }
);
const status = statusResponse.data;
console.log(`状态: ${status.status}, 进度: ${status.progress || 0}%`);
if (status.status === 'completed') {
const videoUrl = `${BASE_URL}/v1/videos/${taskId}/content`;
console.log(`视频生成完成: ${videoUrl}`);
return videoUrl;
} else if (status.status === 'failed') {
console.log(`生成失败: ${status.error}`);
return null;
}
await new Promise(resolve => setTimeout(resolve, 10000));
}
}
// 使用示例
generateVideo('一只猫在海滩上漫步,夕阳西下');
Prompt 写作技巧#
好的 Prompt 是生成高质量视频的关键。以下是一些技巧:
1. 描述具体场景#
❌ 不好的 Prompt: "一只猫"
✅ 好的 Prompt: "一只橘色的猫在阳光明媚的花园里追逐蝴蝶,背景是盛开的玫瑰花"
2. 包含动作描述#
❌ 不好的 Prompt: "城市街道"
✅ 好的 Prompt: "繁忙的东京街头,行人匆匆走过,霓虹灯闪烁,雨滴落在湿润的路面上"
3. 指定镜头风格#
✅ "航拍视角下的山脉,云雾缭绕,阳光穿透云层"
✅ "特写镜头:一滴水珠从树叶上滑落"
✅ "慢动作:运动员跳跃的瞬间"
价格对比#
| 服务 | 价格 | 说明 |
|---|---|---|
| OpenAI 官方 | $0.20/次 | 需要 ChatGPT Plus 订阅 |
| Crazyrouter | $0.11/次 | 按量付费,无需订阅 |
| Runway Gen-3 | $0.25/秒 | 按秒计费 |
| Pika Labs | $0.10/次 | 质量较低 |
价格说明:价格可能随时变动,请以实际计费为准。
常见问题#
Sora 是免费的吗?#
Sora 不是免费的。OpenAI 官方需要 ChatGPT Plus 订阅(0.08/次。
Sora 生成的视频有水印吗?#
OpenAI 官方生成的视频会带有水印。通过 Crazyrouter API 生成的视频可以选择无水印版本。
Sora 支持中文 Prompt 吗?#
是的,Sora 支持中文 Prompt。你可以直接用中文描述想要生成的视频内容。
视频生成需要多长时间?#
通常 4 秒视频需要 1-3 分钟生成,8 秒视频需要 2-5 分钟,12 秒视频需要 3-8 分钟。实际时间取决于服务器负载。
Sora 2 和 Sora 1 有什么区别?#
Sora 2 是 2024 年底发布的升级版本,主要改进包括:
- 更高的视频质量和分辨率
- 更好的物理模拟效果
- 更长的视频时长支持(最长 12 秒)
- 更快的生成速度
开始使用#
- 注册账号:访问 Crazyrouter 注册
- 获取 API Key:在控制台创建 API Key
- 充值余额:按需充值,无最低消费
- 开始生成:使用上面的代码示例开始生成视频
相关文章:
如有问题,请联系 support@crazyrouter.com
Available in other languages:


