跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C#AI算法

C# 调用豆包 AI 模型实现首尾帧视频生成

介绍如何使用 C# 调用火山引擎豆包 AI 模型(Doubao-Seedance-1.0-pro)实现基于首尾帧的视频生成功能。内容包括获取 API Key、创建异步任务、轮询任务状态及查询任务列表的完整流程,并提供了相关代码示例与参数说明。

星星泡饭发布于 2026/4/6更新于 2026/7/2057 浏览
C# 调用豆包 AI 模型实现首尾帧视频生成

环境准备

本文介绍如何使用 C# 调用火山引擎豆包 AI 模型(Doubao-Seedance-1.0-pro)实现基于首尾帧的视频生成功能。调用 API 前需要注册火山引擎帐号并获得 API 开发密钥。

选择火山方舟 -> API Key 管理 -> 创建 API Key 即可,请注意编辑权限以保证能够调用对应功能的 API。

创建视频生成任务

模型生成视频属于异步操作,首先要向模型申请创建视频生成任务。Doubao_CreateVideo 方法提供了创建视频任务的能力。

序号参数名类型说明
1saystring对话描述内容
2ApiKeystringAPI 访问令牌
3first_ImageUrlOrBase64string首帧图片的 URL 或 Base64
4last_ImageUrlOrBase64string尾帧图片的 URL 或 Base64
5rsstring分辨率,默认 720p (480p, 720p, 1080p)
6rtstring宽高比,默认 16:9
7durint时长,默认 5 秒,最长 12 秒
8fpsint帧率,默认 24
9wmbool是否包含水印,默认 true
10seedint随机种子,默认 11
11cfbool固定摄像头,默认 false
12modelstring模型 ID,默认 doubao-seedance-1-0-pro-250528

方法示例代码如下:

public void Doubao_CreateVideo(string say, string ApiKey, string first_ImageUrlOrBase64, string last_ImageUrlOrBase64, string rs = "720p", string rt = "16:9",  dur = ,  fps = ,  wm = ,  seed = ,  cf = ,  model = )
{
     para = .Format(, rs, rt, dur, fps, wm, seed, cf);
     ApiUrl = ;
    WebService ws =  WebService();
    [] headers =  [];
    headers[] = ;
    headers[] = ;
    headers[] =  + ApiKey;
    StringWriter sw =  StringWriter();
     (Newtonsoft.Json.JsonWriter writer =  Newtonsoft.Json.JsonTextWriter(sw))
    {
        writer.Formatting = Newtonsoft.Json.Formatting.Indented;
        writer.WriteStartObject();
        writer.WritePropertyName();
        writer.WriteValue(model);
        writer.WritePropertyName();
        writer.WriteStartArray();
        writer.WriteStartObject();
        writer.WritePropertyName();
        writer.WriteValue();
        writer.WritePropertyName();
        writer.WriteValue(say + para);
        writer.WriteEndObject();
        writer.WriteStartObject();
        writer.WritePropertyName();
        writer.WriteValue();
        writer.WritePropertyName();
        writer.WriteStartObject();
        writer.WritePropertyName();
        writer.WriteValue(first_ImageUrlOrBase64);
        writer.WriteEndObject();
        writer.WritePropertyName();
        writer.WriteValue();
        writer.WriteEndObject();
        writer.WriteStartObject();
        writer.WritePropertyName();
        writer.WriteValue();
        writer.WritePropertyName();
        writer.WriteStartObject();
        writer.WritePropertyName();
        writer.WriteValue(last_ImageUrlOrBase64);
        writer.WriteEndObject();
        writer.WritePropertyName();
        writer.WriteValue();
        writer.WriteEndObject();
        writer.WriteEndArray();
        writer.WriteEndObject();
        writer.Flush();
    }
    sw.Close();
     postData = sw.GetStringBuilder().ToString();
     rs2 = ws.GetResponseResult(ApiUrl, Encoding.UTF8, , postData, headers);
    ErrorMessage = ws.ErrorMessage;
    ResultJson = rs2;
}
int
5
int
24
bool
true
int
11
bool
false
string
"doubao-seedance-1-0-pro-250528"
string
string
" --rs {0} --rt {1} --dur {2} --fps {3} --wm {4} --seed {5} --cf {6}"
string
"https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks"
new
string
new
string
3
0
"Content-Type:application/json"
1
"Accept:application/json"
2
"Authorization:Bearer "
new
using
new
"model"
"content"
"type"
"text"
"text"
"type"
"image_url"
"image_url"
"url"
"role"
"first_frame"
"type"
"image_url"
"image_url"
"url"
"role"
"last_frame"
string
string
"POST"

其中 WebService 类用于处理 HTTP 请求,示例如下:

public sealed class WebService
{
    public string GetResponseResult(string url, System.Text.Encoding encoding, string method, string postData, string[] headers, string ContentType = "application/x-www-form-urlencoded", bool secValid = true)
    {
        // ... 省略部分内部实现细节,保持原有逻辑 ...
        // 设置安全协议
        System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
        // ... 构建请求与响应 ...
        return content;
    }
}

成功调用会返回 JSON,其中的 id 即为任务 ID:

{"id":"cgt-20251000000008-xxxbk"}

查询视频生成任务

根据任务 ID,可以通过轮询查询其生成状态。Doubao_QueryVideoTask 方法可查询任务详情。

序号参数名称参数类型说明
1taskidstring视频生成任务 ID
2ApiKeystringAPI 访问令牌

方法示例代码如下:

public void Doubao_QueryVideoTask(string taskid, string ApiKey)
{
    string ApiUrl = "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/" + taskid;
    WebService ws = new WebService();
    string[] headers = new string[2];
    headers[0] = "Content-Type:application/json";
    headers[1] = "Authorization:Bearer " + ApiKey;
    string rs2 = ws.GetResponseResult(ApiUrl, Encoding.UTF8, "GET", "", headers);
    ErrorMessage = ws.ErrorMessage;
    ResultJson = rs2;
}

成功后返回示例:

{"id":"cgt-2025108-whpbk","status":"succeeded","content":{"video_url":"xxx"},"usage":{"completion_tokens":103818,"total_tokens":103818}}

status 为状态码,succeeded 表示已完成。若存在 content.video_url 字段,即可访问或下载视频。

查询视频生成任务列表

可使用查询视频生成任务列表 API 实现批量查询,仅支持查询最近 7 天的历史数据。

序号参数名称参数类型说明
1page_numint起始页码,默认 1
2page_sizeint每页数量,默认 500
3filter_statusstring状态过滤,默认 succeeded
4ApiKeystringAPI 访问令牌

方法示例代码如下:

public void Doubao_QueryVideoTaskList(int page_num = 1, int page_size = 500, string filter_status = "succeeded", string ApiKey)
{
    string postData = "page_num=" + page_num.ToString() + "&page_size=" + page_size.ToString() + "&filter.status=" + filter_status;
    string ApiUrl = "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks?" + postData;
    WebService ws = new WebService();
    string[] headers = new string[2];
    headers[0] = "Content-Type:application/json";
    headers[1] = "Authorization:Bearer " + ApiKey;
    string rs2 = ws.GetResponseResult(ApiUrl, Encoding.UTF8, "GET", "", headers);
    ErrorMessage = ws.ErrorMessage;
    ResultJson = rs2;
}

遍历生成的 video_url 示例:

Newtonsoft.Json.Linq.JObject rs2 = Newtonsoft.Json.Linq.JObject.Parse(ResultJson);
for (int i = 0; i < rs2["items"].Count(); i++)
{
    list += rs2["items"][i]["content"]["video_url"].ToString() + "\r\n";
}

注意事项

生成视频会消耗较多的 tokens,请注意费用说明及消耗情况。API 相关文档请参考官方文档中心。

文档中心入口:https://www.volcengine.com/docs/82379 创建视频生成任务 API:https://www.volcengine.com/docs/82379/1520757 查询视频生成任务 API:https://www.volcengine.com/docs/82379/1521309 查询视频生成任务列表:https://www.volcengine.com/docs/82379/1521675

目录

  1. 环境准备
  2. 创建视频生成任务
  3. 查询视频生成任务
  4. 查询视频生成任务列表
  5. 注意事项
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • ToDesk 发布 ToClaw:AI 可直接操作电脑
  • Python 入门教程:环境搭建、基础语法与数据类型详解
  • C++ 进阶:unordered_set 与 unordered_map 原理及哈希表模拟实现
  • Spring Boot 实战:前端匹配界面与后端 WebSocket 通信实现
  • AIGC 检测率高怎么办?手动优化技巧与工具实测指南
  • Whisper 模型本地部署完全指南
  • Python+Agent 入门实战:从零搭建可复用 AI 智能体
  • 本地离线部署 Whisper 模型进行语音转写
  • CUDA 12.4 入门:GPU 优势与可扩展编程模型
  • 解读大模型(LLM)中的 Token 机制
  • AI Agent 中的 Skills 是什么?有什么用?
  • AI 产品经理核心技能体系与职业成长路径
  • AI产品经理核心能力与行业落地全景指南
  • Microi吾码:开源低代码,微服务开发的利器
  • FAIR plus 机器人全产业链接会:2026 深圳展会前瞻
  • AI 产品经理面试全攻略
  • Struts2 Action 获取 Session 的几种方式及优缺点对比
  • Python 中 == 与 is 操作符的本质区别与最佳实践
  • Unreal Engine 5 C++ 项目编译失败问题排查与解决
  • 高效邮件发送系统设计与实现:基于 Python 和 SQLAlchemy 的实践

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online