SuperAPI AI 工具集

mobile-demo-film

设计与创作

查看项目

更新于 10-30 16:30

技能介绍

用途:mobile-demo-film 是一个把真实移动应用录屏剪辑成演示短片的技能。它通过自带的影片渲染器生成无声演示视频,可配置画面尺寸、帧率、取景比例和淡入淡出效果,默认 1080x1920、30fps,手机画框置于暖色纸张背景上。工具建议一段演示聚焦一个功能、时长 20 到 40 秒,但节奏可按需求调整。

主要能力:

  • 支持 phone(手机画框素材)、raw(无框原始素材,按画布黑边适配)、card(标题卡,可含 eyebrow、标题、说明、配图、页脚和时长)、end(片尾卡,可用 wordmark 或透明 PNG 标志、说明及时长)四类片段。
  • 可设置全局背景色、边框色、文字色和弱化色(#RRGGBB)。
  • 通过 render 对象配置画布宽高(偶数、至少 64)、帧率(1–120,默认 30)、H.264 质量(crf,默认 18)、淡入淡出时长、手机屏最大宽高比例、边框厚度和圆角半径;卡片与字体随画布缩放。
  • 提供 normalize 子命令,把模拟器可变帧率录屏转为恒定帧率副本,便于选剪切点。
  • 提供 sheet 子命令生成联系表(缩略图拼图),默认采样 8 帧,可自定义帧数和缩略图高度。
  • Python 模块可直接导入调用 normalize、compose、sheet,并使用 RenderSettings 保存布局计算,不依赖全局可变画布设置。

使用方式:

  1. 先规划故事,写出屏幕动作与时长的小表:从用户操作开始,展示应用响应,最后停在可见结果;也可从成品开始做导览。拍摄前先确认功能可用。
  2. 用 mobile-demo-record 采集真实素材,使用演示数据,每个节拍单独拍摄;如有代理参与,需准备可用的主机和代理。桌面切镜可用 cdp-verification 拍摄。
  3. 剪辑前先归一化录屏(模拟器录屏帧率不定):python3 .agents/skills/mobile-demo-film/scripts/film.py normalize raw/01.mov cfr/01.mp4;可从恒定帧率副本中选择起止时间戳;加 --fps 24 可输出 24fps 项目(默认 30)。
  4. 在录屏旁编写 JSON 合成规格,然后执行:python3 .agents/skills/mobile-demo-film/scripts/film.py compose <scratch>/film.json。
  5. 查看联系表并完整播放成片:python3 .agents/skills/mobile-demo-film/scripts/film.py sheet <scratch>/film.mp4 <scratch>/sheet.jpg;加 --frames 12 --height 480 可自定义采样帧数与缩略图高度。检查文字是否被裁切、界面是否清晰、是否泄露隐私信息、是否有加载转圈和意外时钟变化,并播放查看转场与打字效果。
  6. 交付影片时说明构建版本、环境、预置数据和省略的步骤;仅在要求时起草配套发布文案,发布需用户授权。

依赖与安装: 需要 Python 3.10+、Pillow 10.1+ 和 ffmpeg(含 ffprobe、libx264)。在临时虚拟环境安装 Pillow: python3 -m venv <scratch>/film-venv <scratch>/film-venv/bin/pip install "Pillow>=10.1" 后续命令使用该环境的 Python,并假定仓库根目录为工作目录。输出目录会自动创建;已存在的输出会被覆盖;源素材和合成规格不能作为影片输出。字体查找依次尝试 macOS 系统字体、Linux DejaVu 字体和 Pillow 回退字体;为跨机器排版一致,建议指定字体文件。

合成规格示例(需替换路径、剪切点和文案): { "output": "film.mp4", "backdrop": "#F2F0EB", "segments": [ { "type": "phone", "src": "cfr/01.mp4", "start": 1, "end": 7, "label": "Start on your phone" }, { "type": "card", "eyebrow": "Meanwhile", "title": "The agent works on your Mac.", "image": "shots/desktop.png", "duration": 4 }, { "type": "phone", "src": "cfr/02.mp4", "start": 0, "end": 10 }, { "type": "end", "wordmark": "Superset", "caption": "Review the result anywhere", "duration": 2.2 } ] } 横屏示例的 render 对象:"width": 1920, "height": 1080, "fps": 24, "crf": 18, "fade": 0.2, "phone_width": 0.45, "phone_height": 0.8, "bezel_width": 0.012, "corner_radius": 0.1;方形视频可设宽高均为 1080。媒体、输出及可选 titleFont/sansFont 路径相对规格文件解析,也支持绝对路径。

适用场景:适合制作移动应用功能演示、产品发布短片、跨设备(手机加桌面)操作流程展示,以及需要统一画框与片头片尾的演示视频。

限制与注意:

  • 渲染器会移除音频;需要旁白或应用声音时应改用其他剪辑流程。
  • 剪切点须在源时长内,speed 须为正,每个片段至少持续一输出帧;渲染器会在编码前校验所有片段和源路径。
  • 卡片标题会自动换行,说明、标签和页脚应简短。
  • 画面取景、遮罩和模拟灵动岛属于表现层,不能在录制内容中伪造应用状态;缺失上下文应用标题卡说明,而非暗示发生了未录制的操作。
  • 打字与阅读保持自然节奏,等待可裁剪或加速,时间跳跃要明确。
  • 自动化检查不判断可读性和构图,仍需按交付尺寸查看联系表。
  • 修改渲染器后可运行其聚焦测试(需 ffmpeg 与 Pillow):python3 -B -m unittest discover -s .agents/skills/mobile-demo-film/scripts -p 'test_*.py'。
  • 原始素材、规格和成片建议存放在临时目录;同事需要重新剪辑同一演示时,共享输入和规格即可,无需重新创建。