screenstudio-alt - SKILL
2026/9/3 4:45:45 网站建设 项目流程

name: screenstudio-alt
description: “Open-source headless Screen Studio alternative: auto speed-up of idle, auto-zoom on click clusters, keystroke overlay chips, smoothed synthetic cursor, and 9:16 vertical export that follows the action — post-production for screen recordings from the CLI.”
risk: critical
source: community
source_type: community
source_repo: connerkward/screenstudio-alternative-skill
date_added: “2026-06-16”
author: Conner K Ward
license: MIT
tags:

  • screen-recording
  • video
  • post-production
  • auto-zoom
  • vertical-video
  • ffmpeg
    tools:
  • claude-code
  • antigravity
  • cursor
  • gemini-cli
  • codex-cli
    plugin:
    targets:
    codex: blocked
    claude: blocked
    setup:
    type: manual
    summary: “Screen/input capture requires sensitive local permissions; keep out of plugin-safe bundles.”
    docs: SKILL.md

何时使用

在润色屏幕录制/演示视频以便分享时使用;当用户提到 Screen Studio、自动缩放、空闲加速或从屏幕捕获制作垂直/社交媒体视频时使用;以及用于任何面向社交媒体的演示(垂直输出是这类视频的默认设置)。

来源: connerkward/screenstudio-alternative-skill(MIT)。

screenstudio-alt

该技能的代码位于此目录中(polish.pyrender.pystudio.pyevents-log.swift、测试夹具等)。通过 publish-skill 技能公开发布为connerkward/screen-studio-alternative

两个组件:

  • events-log(Swift)——捕获端的输入记录器(光标 60Hz、点击、按键;在 macOS 安全输入期间丢弃按键)。仅在录制时运行。需要终端具备辅助功能/输入监控权限。自动缩放/按键/光标需要在捕获时获得这些数据——之后无法从像素中恢复。
  • polish.py(Python、ffmpeg + PIL)——后期处理过程:
python3 src/polish.py in.mp4--eventsin.events.jsonl\--speedup# compress idle (input-gap ∩ frozen-pixels; animations stay 1x)--zoom# eased auto-zoom on click clusters (zoompan)--keys# accumulating keystroke chips (PIL overlays, no drawtext dep)--smooth-cursor# synthetic eased cursor (best with sck-record --no-cursor)--vertical# ALSO emit 1080x1920 following the action

--speedup无需事件即可工作(仅 freezedetect)——可用于整个现有的 dailies 语料库。

  • render.py——高质量非破坏性渲染器(推荐):在原始高分辨率帧上使用单遍弹簧物理相机,通过 LANCZOS 缩小到较小的目标(清晰缩放,比 ffmpeg 放大路径锐利约 1.3 倍),60fps,H + 9:16 V。可调--freq/--zeta(弹簧)、--fps--target-w。接受显式--regions [{t0,t1,z,cx,cy}]polish.py是较旧的 ffmpeg 滤镜回退方案。
  • studio.py [recording.mp4]——本地 Web UI,NLE 风格固定标尺时间线(条 = 源时长,从不缩放 → 上游始终锚定):缩放区域是可拖动的块(移动 / 重调边缘时间 / 单击添加 / 双击删除);空闲跨度是仅编辑速率的加速块——源范围锁定,速率通过检查器滑块在选择时设置,或通过右边缘速率拉伸拖动(FCP retime / Premiere Rate Stretch)设置;速率变化仅向下游波及。可调余弦缓动斜坡、默认缩放、宽高比、帧样式。始终平滑的合成光标 + 点击涟漪 + 真实录制的点击声(CC0 #735771)。导出使用 render.py。空闲端口,本地运行。(按键覆盖层在引擎中存在,但默认关闭。)

简单路径

screencast.sh --demo(screencast 技能)执行整个链路:启动事件记录器、录制,然后自动润色并输出 9:16 垂直视频。垂直是面向社交媒体的演示的默认

注意事项(来之不易的经验,保留在此以免重蹈覆辙)

  • ffmpeg无法做动画化的scale=eval=framecrop(链接重新初始化会卡住 crop 的逐帧表达式)。这就是缩放使用zoompan的原因(那里没有t变量——使用on/FPS)。
  • 这台机器的 ffmpeg 缺少drawtext;所有文字/光标覆盖层都是 PIL 渲染的 PNG +overlay
  • 测试台:make-fixture.py合成一个假的屏幕录制 + 带真实数据的 events.jsonl——在对真实素材建立信任之前,先用它验证任何改动。

局限性

  • 该工作流假设 FFmpeg 和配套脚本在本地可用;它不是托管的视频编辑器。
  • 润色后的光标、点击和按键效果依赖于录制期间捕获的事件日志;缺少日志会限制可重建的内容。
  • 自动缩放和空闲加速仍需要人工审查节奏、构图和平台特定偏好。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询