[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content-ai-media-content-automation-2026":3,"$f11ddcodupbd6d":24},{"id":4,"type":5,"slug":6,"title":7,"date":8,"category":9,"tags":10,"body_markdown":16,"permalink":17,"excerpt_src":17,"media_type":17,"media_title":17,"media_author":17,"media_url":17,"rating":17,"layout":17,"pv":18,"admin_only":18,"created_at":19,"updated_at":19,"deleted_at":17,"status":20,"html":21,"excerpt":22,"cover":23},141,"article","ai-media-content-automation-2026","记录2026年上半年的AI视频生成实践","2026-07-20 00:00:00","tech",[11,12,13,14,15],"AI","WorkBuddy","FFmpeg","video","automation","\n今年三四月份，我参加了一个实习项目，主题是用AI做自动化媒体内容生成。目标是搭建一条全自动的内容生产线——从选题策划、脚本撰写，到图像生成、视频合成，再到最后的发布上线。\n\n两个月下来，产出了两部成语故事动画短片《田忌赛马》和《守株待兔》，总共在YouTube上发布了三个版本。（见\u003Chttps:\u002F\u002Fwww.youtube.com\u002F@vivimemo>）\n\n\u003C!-- more -->\n\n## 流程概览\n\n最终沉淀的视频生产流程包含八个环节：\n\n1. 故事脚本撰写\n2. 角色图像生成\n3. 场景图像生成（可选）\n4. 分镜图像生成\n5. 旁白音频合成\n6. 视频片段生成\n7. 图像片段或视频片段合成\n8. 字幕叠加\n9. 成品输出\n\n每个环节都有多种工具可选，例如：\n\n- 脚本撰写：ChatGPT、Claude、豆包、WorkBuddy等\n- 图像生成：WorkBuddy（混元）、火山引擎文生图API、Seedream模型等\n- 视频生成：Seedance 2.0、可灵等\n- 语音合成：EdgeTTS、macOS系统语音等\n\n最终选择的组合是：\n\n- 基于静态图像的视频生成：火山引擎文生图API（图像）、EdgeTTS（语音）、FFmpeg（视频合成），由WorkBuddy负责统一调度。\n- 基于动态视频片段的视频生成：小云雀短剧一站式生成。\n\n## 图像生成\n\n使用火山引擎文生图API，模型为 `high_aes_general_v30l_zt2i`，分辨率固定为 1344×768（16:9），响应格式为 base64。\n\n提示词采用结构化模板：`风格前缀 + 场景 + 角色 + 动作 + 镜头 + 氛围`。\n\n## 语音合成\n\n使用 EdgeTTS，语音模型为 `zh-CN-XiaoxiaoNeural`（中文女声）。每段旁白独立生成 MP3，然后用 FFmpeg concat 分离器无损拼接：\n\n```bash\nffmpeg -f concat -safe 0 -i audio_list.txt -c copy output.mp3\n```\n\n每段音频的精确时长用 `ffprobe` 获取，用于后续视频片段的时长对齐。\n\n> 也是通过这个项目让我了解了 EdgeTTS，它原本是微软 Edge 浏览器的语音合成引擎，后来被逆向出来，成为一个很多人都在用的语音生成工具。整体来说，它的语音质量还是比较好的。\n\n## Ken Burns 动画\n\n对静态图像施加缓慢缩放效果，模拟摄像机运动。奇数片段放大，偶数片段缩小，交替进行：\n\n```\n奇数帧：zoompan=z='min(zoom+0.0008,1.08)':d=FRAMES:s=1280x720\n偶数帧：zoompan=z='max(zoom-0.0008,1.0)':d=FRAMES:s=1280x720\n```\n\n参数说明：每帧缩放 0.0008 倍，持续 FRAMES 帧后缩放 0.08 倍，输出分辨率 1280×720。\n\n## 字幕叠加\n\n字幕用 FFmpeg drawtext 滤镜实现。顺序问题：必须在所有视频处理完成后再叠加字幕。如果在 Ken Burns 动画之前添加字幕，字幕会随画面缩放变形，出现重影。\n\n中文字体需显式指定系统字体路径：\n\n```\nfontfile=\u002FSystem\u002FLibrary\u002FFonts\u002FSTHeiti Medium.ttc\n```\n\n默认字体不支持中文，会显示为方框。\n\n## 视频合成与发布\n\n视频片段用 FFmpeg concat 合并：\n\n```bash\nffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4\n```\n\n`-c copy` 启用无损流复制，不需要重新编码。\n\nYouTube 发布通过 WorkBuddy 的 `youtube-publisher` Skill 实现。需要在 Google Cloud Platform 创建应用获取 YouTube Data API v3 凭证，OAuth 2.0 桌面应用认证，Token 自动续期。\n\n## 视频生成方案迭代\n\n第一部《田忌赛马》采用上述方案——静态图像 + Ken Burns 动画。画面动态性有限，类似定格动画效果。\n\n第二部《守株待兔》改用字节跳动小云雀短剧 Agent 的 Seedance 2.0 模型，直接从文本生成动态视频片段。角色一致性更好，动作自然，但无 API 接口，需在平台界面手动操作。\n\n两种方案的适用场景不同：简单叙事适合前者，成本低、可控性强；需要视觉表现力则用后者。\n\n## 三层架构\n\n将整个流程封装为三层：\n\n| 层 | 组件 | 职责 |\n|---|---|---|\n| **Agent 层** | WorkBuddy | 统一任务调度与编排 |\n| **工具层** | 火山引擎、EdgeTTS、FFmpeg | 各环节专用工具 |\n| **人工层** | 人工审核节点 | 分镜、图像、成片三处质量把控 |\n\n## 遗留问题\n\n- 跨场景角色形象仍有细微差异\n- 背景音乐筛选依赖人工，难以完全自动化\n- 小云雀无 API，批量生产效率受限\n",null,0,"2026-08-28 04:37:17","published","\u003Cp>今年三四月份，我参加了一个实习项目，主题是用AI做自动化媒体内容生成。目标是搭建一条全自动的内容生产线——从选题策划、脚本撰写，到图像生成、视频合成，再到最后的发布上线。\u003C\u002Fp>\n\u003Cp>两个月下来，产出了两部成语故事动画短片《田忌赛马》和《守株待兔》，总共在YouTube上发布了三个版本。（见\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@vivimemo\">https:\u002F\u002Fwww.youtube.com\u002F@vivimemo\u003C\u002Fa>）\u003C\u002Fp>\n\u003Ch2>流程概览\u003C\u002Fh2>\n\u003Cp>最终沉淀的视频生产流程包含八个环节：\u003C\u002Fp>\n\u003Col>\n\u003Cli>故事脚本撰写\u003C\u002Fli>\n\u003Cli>角色图像生成\u003C\u002Fli>\n\u003Cli>场景图像生成（可选）\u003C\u002Fli>\n\u003Cli>分镜图像生成\u003C\u002Fli>\n\u003Cli>旁白音频合成\u003C\u002Fli>\n\u003Cli>视频片段生成\u003C\u002Fli>\n\u003Cli>图像片段或视频片段合成\u003C\u002Fli>\n\u003Cli>字幕叠加\u003C\u002Fli>\n\u003Cli>成品输出\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>每个环节都有多种工具可选，例如：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>脚本撰写：ChatGPT、Claude、豆包、WorkBuddy等\u003C\u002Fli>\n\u003Cli>图像生成：WorkBuddy（混元）、火山引擎文生图API、Seedream模型等\u003C\u002Fli>\n\u003Cli>视频生成：Seedance 2.0、可灵等\u003C\u002Fli>\n\u003Cli>语音合成：EdgeTTS、macOS系统语音等\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>最终选择的组合是：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>基于静态图像的视频生成：火山引擎文生图API（图像）、EdgeTTS（语音）、FFmpeg（视频合成），由WorkBuddy负责统一调度。\u003C\u002Fli>\n\u003Cli>基于动态视频片段的视频生成：小云雀短剧一站式生成。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>图像生成\u003C\u002Fh2>\n\u003Cp>使用火山引擎文生图API，模型为 \u003Ccode>high_aes_general_v30l_zt2i\u003C\u002Fcode>，分辨率固定为 1344×768（16:9），响应格式为 base64。\u003C\u002Fp>\n\u003Cp>提示词采用结构化模板：\u003Ccode>风格前缀 + 场景 + 角色 + 动作 + 镜头 + 氛围\u003C\u002Fcode>。\u003C\u002Fp>\n\u003Ch2>语音合成\u003C\u002Fh2>\n\u003Cp>使用 EdgeTTS，语音模型为 \u003Ccode>zh-CN-XiaoxiaoNeural\u003C\u002Fcode>（中文女声）。每段旁白独立生成 MP3，然后用 FFmpeg concat 分离器无损拼接：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>ffmpeg -f concat -safe 0 -i audio_list.txt -c copy output.mp3\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>每段音频的精确时长用 \u003Ccode>ffprobe\u003C\u002Fcode> 获取，用于后续视频片段的时长对齐。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>也是通过这个项目让我了解了 EdgeTTS，它原本是微软 Edge 浏览器的语音合成引擎，后来被逆向出来，成为一个很多人都在用的语音生成工具。整体来说，它的语音质量还是比较好的。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>Ken Burns 动画\u003C\u002Fh2>\n\u003Cp>对静态图像施加缓慢缩放效果，模拟摄像机运动。奇数片段放大，偶数片段缩小，交替进行：\u003C\u002Fp>\n\u003Cpre class=\"shiki\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode>奇数帧：zoompan=z='min(zoom+0.0008,1.08)':d=FRAMES:s=1280x720\n偶数帧：zoompan=z='max(zoom-0.0008,1.0)':d=FRAMES:s=1280x720\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>参数说明：每帧缩放 0.0008 倍，持续 FRAMES 帧后缩放 0.08 倍，输出分辨率 1280×720。\u003C\u002Fp>\n\u003Ch2>字幕叠加\u003C\u002Fh2>\n\u003Cp>字幕用 FFmpeg drawtext 滤镜实现。顺序问题：必须在所有视频处理完成后再叠加字幕。如果在 Ken Burns 动画之前添加字幕，字幕会随画面缩放变形，出现重影。\u003C\u002Fp>\n\u003Cp>中文字体需显式指定系统字体路径：\u003C\u002Fp>\n\u003Cpre class=\"shiki\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode>fontfile=\u002FSystem\u002FLibrary\u002FFonts\u002FSTHeiti Medium.ttc\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>默认字体不支持中文，会显示为方框。\u003C\u002Fp>\n\u003Ch2>视频合成与发布\u003C\u002Fh2>\n\u003Cp>视频片段用 FFmpeg concat 合并：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>ffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>-c copy\u003C\u002Fcode> 启用无损流复制，不需要重新编码。\u003C\u002Fp>\n\u003Cp>YouTube 发布通过 WorkBuddy 的 \u003Ccode>youtube-publisher\u003C\u002Fcode> Skill 实现。需要在 Google Cloud Platform 创建应用获取 YouTube Data API v3 凭证，OAuth 2.0 桌面应用认证，Token 自动续期。\u003C\u002Fp>\n\u003Ch2>视频生成方案迭代\u003C\u002Fh2>\n\u003Cp>第一部《田忌赛马》采用上述方案——静态图像 + Ken Burns 动画。画面动态性有限，类似定格动画效果。\u003C\u002Fp>\n\u003Cp>第二部《守株待兔》改用字节跳动小云雀短剧 Agent 的 Seedance 2.0 模型，直接从文本生成动态视频片段。角色一致性更好，动作自然，但无 API 接口，需在平台界面手动操作。\u003C\u002Fp>\n\u003Cp>两种方案的适用场景不同：简单叙事适合前者，成本低、可控性强；需要视觉表现力则用后者。\u003C\u002Fp>\n\u003Ch2>三层架构\u003C\u002Fh2>\n\u003Cp>将整个流程封装为三层：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>层\u003C\u002Fth>\n\u003Cth>组件\u003C\u002Fth>\n\u003Cth>职责\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>Agent 层\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>WorkBuddy\u003C\u002Ftd>\n\u003Ctd>统一任务调度与编排\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>工具层\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>火山引擎、EdgeTTS、FFmpeg\u003C\u002Ftd>\n\u003Ctd>各环节专用工具\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>人工层\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>人工审核节点\u003C\u002Ftd>\n\u003Ctd>分镜、图像、成片三处质量把控\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2>遗留问题\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>跨场景角色形象仍有细微差异\u003C\u002Fli>\n\u003Cli>背景音乐筛选依赖人工，难以完全自动化\u003C\u002Fli>\n\u003Cli>小云雀无 API，批量生产效率受限\u003C\u002Fli>\n\u003C\u002Ful>\n","\u003Cp>今年三四月份，我参加了一个实习项目，主题是用AI做自动化媒体内容生成。目标是搭建一条全自动的内容生产线——从选题策划、脚本撰写，到图像生成、视频合成，再到最后的发布上线。\u003C\u002Fp>\n\u003Cp>两个月下来，产出了两部成语故事动画短片《田忌赛马》和《守株待兔》，总共在YouTube上发布了三个版本。（见\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@vivimemo\">https:\u002F\u002Fwww.youtube.com\u002F@vivimemo\u003C\u002Fa>）\u003C\u002Fp>\n","",{"total":18,"totalRoots":18,"comments":25,"pv":18},[]]