Skip to content

阿里云智能媒体服务 (IMS) 功能全景指南

本文档基于阿里云官方文档(特别是“智能一键成片”功能),详细梳理了 IMS 的各项高级能力,旨在为系统后续的架构演进和视频合成方案提供稳定的理论基础。

核心理念

我们过去尝试在前端手动计算每一个分镜的时长(TimelineIn/TimelineOut)、处理音视频轨道的对齐,并生成复杂的 Timeline JSON 发送给阿里云 ICE。这种方式属于底层拼接,极易触发引擎边界问题(如纯图片轨道的慢放 Bug、黑边适配问题等)。

阿里云实际上提供了更高级的、基于“意图”的自动化 API(如 SubmitBatchMediaProducingJob)。在这些模式下,我们不需要精确计算时间戳,只需提供脚本(文案)素材池,阿里云 AI 会自动完成语音合成、时长对齐、画面截取和特效转场。


智能一键成片 (Smart One-Click Film) 概览

智能一键成片是一款智能化工具,用户仅需上传视频或图片等素材,系统即可依据内容特征和预设配置,智能批量生成高质量短视频。

API 入口:SubmitBatchMediaProducingJob

1. 核心生成模式 (Generation Modes)

1.1 全局口播模式 (Global Voiceover Mode)

  • 适用场景:需要整体连贯性的视频制作。
  • 工作原理:用户提供一整段口播文稿(或由 LLM 生成)以及一个素材池。系统会整体分析文稿语义,并自动从素材池中挑选合适的画面进行混剪。强调视频的整体感觉。

1.2 分组口播模式 (Grouped Voiceover Mode)

  • 适用场景:需要精细化匹配的场景(如产品卖点介绍)。
  • 工作原理:将视频分为几个节点,每个节点分别搭配自己的口播片段。系统会根据局部的口播语义,精准地从素材库中匹配相关画面。

1.3 分镜脚本模式 (Storyboard Script Mode)

  • 适用场景:高要求的混剪视频制作,类似我们目前的业务。
  • 工作原理:详细规划每个镜头的内容(文案描述、口播文案、时长、名称等)。
  • 优势不需要前端计算绝对时间戳! 只需传入每个分镜的内容,系统自动生成 TTS,并根据 TTS 长度自动对齐对应的画面素材。

2. 场景化解决方案 (Scenario Solutions)

除了基础模式,阿里云还针对特定行业封装了特定的解决方案。

2.1 脚本自动化成片 (Scripted Automation)

  • 特点:基于预设的脚本节点和关联素材,一键批量生成。注意:此模式下,口播与视频画面不会进行智能语义匹配。它仅仅是按照你给定的坑位,把素材填进去。
  • 适用:电商、本地生活营销短视频批量生成(例如:固定开头 + 随机产品展示 + 固定结尾)。

2.2 智能图文匹配成片 - 通用版 (Smart Image-Text Matching)

  • 特点:如果用户已有素材库,可根据口播文本智能选择素材库资源片段进行拼接组合。
  • 适用:垂直领域新闻、科普短视频创作。不需要你告诉它哪句话配哪个画面,AI 自动听音选画面。

2.3 智能图文匹配成片 - 影视集锦版

  • 特点:基于解说词和影视素材进行自动混剪,生成电影、电视剧、综艺等类型的集锦短片。

2.4 高燃混剪 / 体育赛事集锦

  • 特点:输入长视频,系统自动识别“高光时刻”(如进球、爆炸、情绪高涨的画面),自动截取并配上高燃音乐混剪。
  • API: SubmitScreenMediaHighlightsJob / SubmitSportsHighlightsJob

高级定制能力 (Personalization & Customization)

在使用上述自动化模式时,仍支持丰富的个性化定制:

  1. 背景音乐与贴纸 (BGM & Stickers)

    • 可配置系统自动匹配的 BGM,或指定自定义 BGM。
    • 支持添加全局水印、贴纸,合成每个视频时随机生效(适合批量矩阵生成)。
  2. 智能配音 (TTS & Voice Cloning)

    • 内置多种音色,支持人声克隆。
    • 关键点:由阿里云直接在内部生成 TTS 并自动将画面拉伸/缩短以对齐配音时长,无需我们在前端先请求 TTS 再回传。
  3. 视觉效果与转场 (Visual Effects & Transitions)

    • 支持调整字幕样式、进出场动效。
    • 支持配置智能转场策略,系统会根据画面节奏自动添加合适的转场。
  4. 灵活参数设置

    • 可以在一次 API 调用中设置合成数量(例如一次性生成 10 个排列组合不同的视频)。
    • 自动按规则命名并存入指定的 OSS 路径。

架构演进建议 (Recommendations for Stooland)

基于对 IMS 的深入理解,我们现有的底层 Timeline 拼接方式存在极大维护成本。

长期稳定的方案: 抛弃前端组装 VideoTracks / AudioTracks 的逻辑,转向 SubmitBatchMediaProducingJob“分镜脚本模式”

Payload 结构对比

过去的苦力活 (Timeline 模式):

json
{
  "VideoTracks": [
    {"Type": "Image", "MediaURL": "...", "TimelineIn": 0, "TimelineOut": 3.36}
  ],
  "AudioTracks": [
    {"Type": "Audio", "MediaURL": "tts_url", "TimelineIn": 0, "TimelineOut": 11.2, "Duration": 11.2}
  ]
}

未来的优雅方案 (Script 模式):

json
{
  "InputConfig": {
    "Script": "清明踏青,泉暖情浓|中海汤泉限定青团体验&养生茶浴",
    "MediaConfig": {
      "MediaList": ["oss://bucket/image1.jpg", "oss://bucket/video2.mp4"]
    }
  },
  "EditingConfig": {
    "MediaConfig": {"Strategy": "ScriptMode"},
    "AutoMatchingConfig": {"Type": "ScriptMode"},
    "TTSConfig": {"Voice": "zh_female_vv_uranus_bigtts"}
  },
  "OutputMediaConfig": {
    "MediaURL": "oss://...",
    "Width": 1080, "Height": 1920
  }
}

优势:

  1. 彻底告别时长计算:不再有 Infinity,不再有 Web Audio API 的坑,不再有图片拉伸变鬼畜的 Bug。
  2. 极大简化前端:前端只需传给后端:“这段文字,配这几张图,用这个声音”。
  3. 批量矩阵能力:天然支持一次提交生成多个变体视频。

IMS 混剪模块现状与进度记录 (2024-05 归档)

为了配合前端从“通用大模型对话态”向“B端场景化生产工具”的架构升级(详见 ARCHITECTURE.md),IMS 混剪模块的深度调试暂时搁置。以下是当前的架构状态与遗留问题,供后续重启开发时参考:

已完成进度 (Progress)

  1. 查明了慢放/拉伸 Bug 根源:确认了底层 Timeline 模式下,纯图片轨道如果同时配置了 AutoSpeed 或硬编码了 Duration,会触发阿里云 ICE 的逆向对齐 Bug,导致音频被强行拉长慢放。
  2. 确定了官方最佳实践:梳理出应全面废弃底层 Timeline 手动拼接,转而使用 SubmitBatchMediaProducingJobScript(脚本化成片)模式
  3. 完成核心骨架重构
    • 后端:在 IceLib.phpAliIceService.php 中新增了 submitBatchMediaProducing 接口。
    • 前端:重写了 AICreator.vue 中的大模型 Prompt,直接输出 ScriptScenes 结构,并删除了所有复杂的 TTS 预生成和 Web Audio API 计算时长的代码。
    • UI:修复了新版 JSON 结构在前端时间轴列表中的渲染问题。

待解决问题与下一步规划 (Pending Issues & Next Steps)

当 UI/UX 架构重构(Phase 2)完成后,重启本模块需执行以下任务:

  1. 端到端效果验证:需要实际提交一次 Script 模式的任务,观察阿里云生成的成片是否彻底解决了语速和音画对齐问题。
  2. 字幕样式与转场补齐:目前的 Script 结构较为基础,后续需在 GlobalConfig 中补充更丰富的字幕字体 (Font, FontSize)、水印以及默认转场配置。
  3. 长图/竖屏适配策略:验证 Script 模式下,阿里云内置的画面适配(如自动模糊黑边 Blur)是否满足业务对竖屏素材混剪横屏视频的预期。如不满足,可能需结合 EditingConfig 进一步微调。
  4. 引擎替换考量:如果阿里云的黑盒封装依然无法满足高阶定制需求(如动态贴纸、复杂的音频闪避),则需评估将后端的 API 路由切回本地的 MuseEngine,由自研 Python 服务解析 Script 并调用 FFmpeg 渲染。