[{"data":1,"prerenderedAt":8425},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fcli":686,"\u002Fpackages\u002Fcli-surround":8420},[4,31,57,147,168,198,652],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"快速入门","i-lucide-rocket","\u002Fgetting-started","01.getting-started",[10,14,18,22,26],{"title":11,"path":12,"stem":13},"简介","\u002Fgetting-started\u002Fintroduction","01.getting-started\u002F01.introduction",{"title":15,"path":16,"stem":17},"快速开始","\u002Fgetting-started\u002Fquickstart","01.getting-started\u002F02.quickstart",{"title":19,"path":20,"stem":21},"展示作品","\u002Fgetting-started\u002Fshowcase","01.getting-started\u002F03.showcase",{"title":23,"path":24,"stem":25},"示例","\u002Fgetting-started\u002Fexamples","01.getting-started\u002F04.examples",{"title":27,"path":28,"stem":29},"发布视频","\u002Fgetting-started\u002Flaunch-videos","01.getting-started\u002F05.launch-videos",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"核心概念","i-lucide-lightbulb","\u002Fconcepts","02.concepts",[37,41,45,49,53],{"title":38,"path":39,"stem":40},"合成","\u002Fconcepts\u002Fcompositions","02.concepts\u002F01.compositions",{"title":42,"path":43,"stem":44},"数据属性","\u002Fconcepts\u002Fdata-attributes","02.concepts\u002F02.data-attributes",{"title":46,"path":47,"stem":48},"变量","\u002Fconcepts\u002Fvariables","02.concepts\u002F03.variables",{"title":50,"path":51,"stem":52},"帧适配器","\u002Fconcepts\u002Fframe-adapters","02.concepts\u002F04.frame-adapters",{"title":54,"path":55,"stem":56},"确定性渲染","\u002Fconcepts\u002Fdeterminism","02.concepts\u002F05.determinism",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":30},"使用指南","i-lucide-compass","\u002Fguides","03.guides",[63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143],{"title":64,"path":65,"stem":66},"工作流水线","\u002Fguides\u002Fpipeline","03.guides\u002F01.pipeline",{"title":68,"path":69,"stem":70},"HTML-in-Canvas","\u002Fguides\u002Fhtml-in-canvas","03.guides\u002F02.html-in-canvas",{"title":72,"path":73,"stem":74},"网站转视频","\u002Fguides\u002Fwebsite-to-video","03.guides\u002F03.website-to-video",{"title":76,"path":77,"stem":78},"Google Antigravity","\u002Fguides\u002Fantigravity","03.guides\u002F04.antigravity",{"title":80,"path":81,"stem":82},"GitHub Copilot CLI","\u002Fguides\u002Fcopilot-cli","03.guides\u002F05.copilot-cli",{"title":84,"path":85,"stem":86},"Claude Design","\u002Fguides\u002Fclaude-design","03.guides\u002F06.claude-design",{"title":88,"path":89,"stem":90},"Open Design","\u002Fguides\u002Fopen-design","03.guides\u002F07.open-design",{"title":92,"path":93,"stem":94},"提示词指南","\u002Fguides\u002Fprompting","03.guides\u002F08.prompting",{"title":96,"path":97,"stem":98},"Hyperframes vs Remotion","\u002Fguides\u002Fhyperframes-vs-remotion","03.guides\u002F09.hyperframes-vs-remotion",{"title":100,"path":101,"stem":102},"GSAP 动画","\u002Fguides\u002Fgsap-animation","03.guides\u002F10.gsap-animation",{"title":104,"path":105,"stem":106},"渲染","\u002Fguides\u002Frendering","03.guides\u002F11.rendering",{"title":108,"path":109,"stem":110},"去除背景（透明视频）","\u002Fguides\u002Fremove-background","03.guides\u002F12.remove-background",{"title":112,"path":113,"stem":114},"HDR 渲染","\u002Fguides\u002Fhdr","03.guides\u002F13.hdr",{"title":116,"path":117,"stem":118},"4K 渲染","\u002Fguides\u002F4k-rendering","03.guides\u002F14.4k-rendering",{"title":120,"path":121,"stem":122},"性能","\u002Fguides\u002Fperformance","03.guides\u002F15.performance",{"title":124,"path":125,"stem":126},"时间轴编辑","\u002Fguides\u002Ftimeline-editing","03.guides\u002F16.timeline-editing",{"title":128,"path":129,"stem":130},"视频编辑者速查表","\u002Fguides\u002Fvideo-editor-cheatsheet","03.guides\u002F17.video-editor-cheatsheet",{"title":132,"path":133,"stem":134},"常见错误","\u002Fguides\u002Fcommon-mistakes","03.guides\u002F18.common-mistakes",{"title":136,"path":137,"stem":138},"故障排除","\u002Fguides\u002Ftroubleshooting","03.guides\u002F19.troubleshooting",{"title":140,"path":141,"stem":142},"反馈收集","\u002Fguides\u002Ffeedback","03.guides\u002F20.feedback",{"title":144,"path":145,"stem":146},"HyperFrames MCP","\u002Fguides\u002Fmcp","03.guides\u002F21.mcp",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":30},"部署","i-lucide-cloud","\u002Fdeploy","04.deploy",[153,156,160,164],{"title":148,"path":154,"stem":155},"\u002Fdeploy\u002Fdeploy","04.deploy\u002F01.deploy",{"title":157,"path":158,"stem":159},"AWS Lambda","\u002Fdeploy\u002Faws-lambda","04.deploy\u002F02.aws-lambda",{"title":161,"path":162,"stem":163},"Lambda 上的模板","\u002Fdeploy\u002Ftemplates-on-lambda","04.deploy\u002F03.templates-on-lambda",{"title":165,"path":166,"stem":167},"迁移到 HyperFrames Lambda","\u002Fdeploy\u002Fmigrating-to-hyperframes-lambda","04.deploy\u002F04.migrating-to-hyperframes-lambda",{"title":169,"icon":170,"path":171,"stem":172,"children":173,"page":30},"包","i-lucide-package","\u002Fpackages","05.packages",[174,178,182,186,190,194],{"title":175,"path":176,"stem":177},"@hyperframes\u002Fcore","\u002Fpackages\u002Fcore","05.packages\u002F01.core",{"title":179,"path":180,"stem":181},"@hyperframes\u002Fengine","\u002Fpackages\u002Fengine","05.packages\u002F02.engine",{"title":183,"path":184,"stem":185},"@hyperframes\u002Fplayer","\u002Fpackages\u002Fplayer","05.packages\u002F03.player",{"title":187,"path":188,"stem":189},"@hyperframes\u002Fproducer","\u002Fpackages\u002Fproducer","05.packages\u002F04.producer",{"title":191,"path":192,"stem":193},"@hyperframes\u002Fstudio","\u002Fpackages\u002Fstudio","05.packages\u002F05.studio",{"title":195,"path":196,"stem":197},"CLI","\u002Fpackages\u002Fcli","05.packages\u002F06.cli",{"title":199,"icon":200,"path":201,"stem":202,"children":203,"page":30},"组件目录","i-lucide-layout-grid","\u002Fcatalog","06.catalog",[204,270,324,358,420,478,512,546,584,598],{"title":205,"icon":206,"path":207,"stem":208,"children":209,"page":30},"字幕","i-lucide-captions","\u002Fcatalog\u002Fcaption","06.catalog\u002F01.caption",[210,214,218,222,226,230,234,238,242,246,250,254,258,262,266],{"title":211,"path":212,"stem":213},"裁剪擦除","\u002Fcatalog\u002Fcaption\u002Fcaption-clip-wipe","06.catalog\u002F01.caption\u002F01.caption-clip-wipe",{"title":215,"path":216,"stem":217},"编辑强调","\u002Fcatalog\u002Fcaption\u002Fcaption-editorial-emphasis","06.catalog\u002F01.caption\u002F02.caption-editorial-emphasis",{"title":219,"path":220,"stem":221},"Emoji 弹出","\u002Fcatalog\u002Fcaption\u002Fcaption-emoji-pop","06.catalog\u002F01.caption\u002F03.caption-emoji-pop",{"title":223,"path":224,"stem":225},"故障 RGB","\u002Fcatalog\u002Fcaption\u002Fcaption-glitch-rgb","06.catalog\u002F01.caption\u002F04.caption-glitch-rgb",{"title":227,"path":228,"stem":229},"渐变填充","\u002Fcatalog\u002Fcaption\u002Fcaption-gradient-fill","06.catalog\u002F01.caption\u002F05.caption-gradient-fill",{"title":231,"path":232,"stem":233},"高亮","\u002Fcatalog\u002Fcaption\u002Fcaption-highlight","06.catalog\u002F01.caption\u002F06.caption-highlight",{"title":235,"path":236,"stem":237},"动感冲击","\u002Fcatalog\u002Fcaption\u002Fcaption-kinetic-slam","06.catalog\u002F01.caption\u002F07.caption-kinetic-slam",{"title":239,"path":240,"stem":241},"矩阵解码","\u002Fcatalog\u002Fcaption\u002Fcaption-matrix-decode","06.catalog\u002F01.caption\u002F08.caption-matrix-decode",{"title":243,"path":244,"stem":245},"霓虹强调","\u002Fcatalog\u002Fcaption\u002Fcaption-neon-accent","06.catalog\u002F01.caption\u002F09.caption-neon-accent",{"title":247,"path":248,"stem":249},"霓虹发光","\u002Fcatalog\u002Fcaption\u002Fcaption-neon-glow","06.catalog\u002F01.caption\u002F10.caption-neon-glow",{"title":251,"path":252,"stem":253},"视差图层","\u002Fcatalog\u002Fcaption\u002Fcaption-parallax-layers","06.catalog\u002F01.caption\u002F11.caption-parallax-layers",{"title":255,"path":256,"stem":257},"粒子爆发","\u002Fcatalog\u002Fcaption\u002Fcaption-particle-burst","06.catalog\u002F01.caption\u002F12.caption-particle-burst",{"title":259,"path":260,"stem":261},"胶囊卡拉OK","\u002Fcatalog\u002Fcaption\u002Fcaption-pill-karaoke","06.catalog\u002F01.caption\u002F13.caption-pill-karaoke",{"title":263,"path":264,"stem":265},"纹理","\u002Fcatalog\u002Fcaption\u002Fcaption-texture","06.catalog\u002F01.caption\u002F14.caption-texture",{"title":267,"path":268,"stem":269},"字重切换","\u002Fcatalog\u002Fcaption\u002Fcaption-weight-shift","06.catalog\u002F01.caption\u002F15.caption-weight-shift",{"title":271,"icon":272,"path":273,"stem":274,"children":275,"page":30},"HTML 画布","i-lucide-layout-dashboard","\u002Fcatalog\u002Fhtml-canvas","06.catalog\u002F02.html-canvas",[276,280,284,288,292,296,300,304,308,312,316,320],{"title":277,"path":278,"stem":279},"iOS 26 Liquid Glass 主屏幕","\u002Fcatalog\u002Fhtml-canvas\u002Fios26-liquid-glass","06.catalog\u002F02.html-canvas\u002F01.ios26-liquid-glass",{"title":281,"path":282,"stem":283},"Liquid Glass 右键菜单","\u002Fcatalog\u002Fhtml-canvas\u002Fliquid-glass-context-menu","06.catalog\u002F02.html-canvas\u002F02.liquid-glass-context-menu",{"title":285,"path":286,"stem":287},"Liquid Glass 媒体控制","\u002Fcatalog\u002Fhtml-canvas\u002Fliquid-glass-media-controls","06.catalog\u002F02.html-canvas\u002F03.liquid-glass-media-controls",{"title":289,"path":290,"stem":291},"Liquid Glass 通知","\u002Fcatalog\u002Fhtml-canvas\u002Fliquid-glass-notification","06.catalog\u002F02.html-canvas\u002F04.liquid-glass-notification",{"title":293,"path":294,"stem":295},"Liquid Glass 小组件","\u002Fcatalog\u002Fhtml-canvas\u002Fliquid-glass-widgets","06.catalog\u002F02.html-canvas\u002F05.liquid-glass-widgets",{"title":297,"path":298,"stem":299},"macOS Tahoe Liquid Glass 桌面","\u002Fcatalog\u002Fhtml-canvas\u002Fmacos-tahoe-liquid-glass","06.catalog\u002F02.html-canvas\u002F06.macos-tahoe-liquid-glass",{"title":301,"path":302,"stem":303},"iPhone & MacBook 3D 展示","\u002Fcatalog\u002Fhtml-canvas\u002Fvfx-iphone-device","06.catalog\u002F02.html-canvas\u002F07.vfx-iphone-device",{"title":305,"path":306,"stem":307},"液态背景","\u002Fcatalog\u002Fhtml-canvas\u002Fvfx-liquid-background","06.catalog\u002F02.html-canvas\u002F08.vfx-liquid-background",{"title":309,"path":310,"stem":311},"磁力效果","\u002Fcatalog\u002Fhtml-canvas\u002Fvfx-magnetic","06.catalog\u002F02.html-canvas\u002F09.vfx-magnetic",{"title":313,"path":314,"stem":315},"传送门","\u002Fcatalog\u002Fhtml-canvas\u002Fvfx-portal","06.catalog\u002F02.html-canvas\u002F10.vfx-portal",{"title":317,"path":318,"stem":319},"碎裂效果","\u002Fcatalog\u002Fhtml-canvas\u002Fvfx-shatter","06.catalog\u002F02.html-canvas\u002F11.vfx-shatter",{"title":321,"path":322,"stem":323},"VFX 文字光标","\u002Fcatalog\u002Fhtml-canvas\u002Fvfx-text-cursor","06.catalog\u002F02.html-canvas\u002F12.vfx-text-cursor",{"title":325,"icon":326,"path":327,"stem":328,"children":329,"page":30},"社交叠加层","i-lucide-share-2","\u002Fcatalog\u002Fsocial-overlays","06.catalog\u002F03.social-overlays",[330,334,338,342,346,350,354],{"title":331,"path":332,"stem":333},"Instagram 关注","\u002Fcatalog\u002Fsocial-overlays\u002Finstagram-follow","06.catalog\u002F03.social-overlays\u002F01.instagram-follow",{"title":335,"path":336,"stem":337},"macOS 通知","\u002Fcatalog\u002Fsocial-overlays\u002Fmacos-notification","06.catalog\u002F03.social-overlays\u002F02.macos-notification",{"title":339,"path":340,"stem":341},"Reddit 帖子卡片","\u002Fcatalog\u002Fsocial-overlays\u002Freddit-post","06.catalog\u002F03.social-overlays\u002F03.reddit-post",{"title":343,"path":344,"stem":345},"Spotify 正在播放","\u002Fcatalog\u002Fsocial-overlays\u002Fspotify-card","06.catalog\u002F03.social-overlays\u002F04.spotify-card",{"title":347,"path":348,"stem":349},"TikTok 关注","\u002Fcatalog\u002Fsocial-overlays\u002Ftiktok-follow","06.catalog\u002F03.social-overlays\u002F05.tiktok-follow",{"title":351,"path":352,"stem":353},"X 帖子卡片","\u002Fcatalog\u002Fsocial-overlays\u002Fx-post","06.catalog\u002F03.social-overlays\u002F06.x-post",{"title":355,"path":356,"stem":357},"YouTube 下方三分之一","\u002Fcatalog\u002Fsocial-overlays\u002Fyt-lower-third","06.catalog\u002F03.social-overlays\u002F07.yt-lower-third",{"title":359,"icon":360,"path":361,"stem":362,"children":363,"page":30},"着色器过渡","i-lucide-wand-2","\u002Fcatalog\u002Fshader-transitions","06.catalog\u002F04.shader-transitions",[364,368,372,376,380,384,388,392,396,400,404,408,412,416],{"title":365,"path":366,"stem":367},"色散径向分裂","\u002Fcatalog\u002Fshader-transitions\u002Fchromatic-radial-split","06.catalog\u002F04.shader-transitions\u002F01.chromatic-radial-split",{"title":369,"path":370,"stem":371},"电影感变焦","\u002Fcatalog\u002Fshader-transitions\u002Fcinematic-zoom","06.catalog\u002F04.shader-transitions\u002F02.cinematic-zoom",{"title":373,"path":374,"stem":375},"交叉扭曲变形","\u002Fcatalog\u002Fshader-transitions\u002Fcross-warp-morph","06.catalog\u002F04.shader-transitions\u002F03.cross-warp-morph",{"title":377,"path":378,"stem":379},"域扭曲溶解","\u002Fcatalog\u002Fshader-transitions\u002Fdomain-warp-dissolve","06.catalog\u002F04.shader-transitions\u002F04.domain-warp-dissolve",{"title":381,"path":382,"stem":383},"白色闪光过渡","\u002Fcatalog\u002Fshader-transitions\u002Fflash-through-white","06.catalog\u002F04.shader-transitions\u002F05.flash-through-white",{"title":385,"path":386,"stem":387},"故障效果","\u002Fcatalog\u002Fshader-transitions\u002Fglitch","06.catalog\u002F04.shader-transitions\u002F06.glitch",{"title":389,"path":390,"stem":391},"引力透镜","\u002Fcatalog\u002Fshader-transitions\u002Fgravitational-lens","06.catalog\u002F04.shader-transitions\u002F07.gravitational-lens",{"title":393,"path":394,"stem":395},"光线泄漏","\u002Fcatalog\u002Fshader-transitions\u002Flight-leak","06.catalog\u002F04.shader-transitions\u002F08.light-leak",{"title":397,"path":398,"stem":399},"褶皱燃烧","\u002Fcatalog\u002Fshader-transitions\u002Fridged-burn","06.catalog\u002F04.shader-transitions\u002F09.ridged-burn",{"title":401,"path":402,"stem":403},"涟漪波纹","\u002Fcatalog\u002Fshader-transitions\u002Fripple-waves","06.catalog\u002F04.shader-transitions\u002F10.ripple-waves",{"title":405,"path":406,"stem":407},"SDF 光圈","\u002Fcatalog\u002Fshader-transitions\u002Fsdf-iris","06.catalog\u002F04.shader-transitions\u002F11.sdf-iris",{"title":409,"path":410,"stem":411},"漩涡涡流","\u002Fcatalog\u002Fshader-transitions\u002Fswirl-vortex","06.catalog\u002F04.shader-transitions\u002F12.swirl-vortex",{"title":413,"path":414,"stem":415},"热浪扭曲","\u002Fcatalog\u002Fshader-transitions\u002Fthermal-distortion","06.catalog\u002F04.shader-transitions\u002F13.thermal-distortion",{"title":417,"path":418,"stem":419},"快速摇摄","\u002Fcatalog\u002Fshader-transitions\u002Fwhip-pan","06.catalog\u002F04.shader-transitions\u002F14.whip-pan",{"title":421,"icon":422,"path":423,"stem":424,"children":425,"page":30},"CSS 过渡","i-lucide-repeat","\u002Fcatalog\u002Fcss-transitions","06.catalog\u002F05.css-transitions",[426,430,434,438,442,446,450,454,458,462,466,470,474],{"title":427,"path":428,"stem":429},"3D 过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-3d","06.catalog\u002F05.css-transitions\u002F01.transitions-3d",{"title":431,"path":432,"stem":433},"模糊过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-blur","06.catalog\u002F05.css-transitions\u002F02.transitions-blur",{"title":435,"path":436,"stem":437},"覆盖过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-cover","06.catalog\u002F05.css-transitions\u002F03.transitions-cover",{"title":439,"path":440,"stem":441},"破碎过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-destruction","06.catalog\u002F05.css-transitions\u002F04.transitions-destruction",{"title":443,"path":444,"stem":445},"溶解过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-dissolve","06.catalog\u002F05.css-transitions\u002F05.transitions-dissolve",{"title":447,"path":448,"stem":449},"扭曲过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-distortion","06.catalog\u002F05.css-transitions\u002F06.transitions-distortion",{"title":451,"path":452,"stem":453},"网格过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-grid","06.catalog\u002F05.css-transitions\u002F07.transitions-grid",{"title":455,"path":456,"stem":457},"光效过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-light","06.catalog\u002F05.css-transitions\u002F08.transitions-light",{"title":459,"path":460,"stem":461},"机械过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-mechanical","06.catalog\u002F05.css-transitions\u002F09.transitions-mechanical",{"title":463,"path":464,"stem":465},"其他过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-other","06.catalog\u002F05.css-transitions\u002F10.transitions-other",{"title":467,"path":468,"stem":469},"推移过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-push","06.catalog\u002F05.css-transitions\u002F11.transitions-push",{"title":471,"path":472,"stem":473},"径向过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-radial","06.catalog\u002F05.css-transitions\u002F12.transitions-radial",{"title":475,"path":476,"stem":477},"缩放过渡","\u002Fcatalog\u002Fcss-transitions\u002Ftransitions-scale","06.catalog\u002F05.css-transitions\u002F13.transitions-scale",{"title":479,"icon":480,"path":481,"stem":482,"children":483,"page":30},"展示","i-lucide-monitor-play","\u002Fcatalog\u002Fshowcase","06.catalog\u002F06.showcase",[484,488,492,496,500,504,508],{"title":485,"path":486,"stem":487},"应用展示","\u002Fcatalog\u002Fshowcase\u002Fapp-showcase","06.catalog\u002F06.showcase\u002F01.app-showcase",{"title":489,"path":490,"stem":491},"Apple 金额计数器","\u002Fcatalog\u002Fshowcase\u002Fapple-money-count","06.catalog\u002F06.showcase\u002F02.apple-money-count",{"title":493,"path":494,"stem":495},"蓝色毛衣开场视频","\u002Fcatalog\u002Fshowcase\u002Fblue-sweater-intro-video","06.catalog\u002F06.showcase\u002F03.blue-sweater-intro-video",{"title":497,"path":498,"stem":499},"朝鲜封锁","\u002Fcatalog\u002Fshowcase\u002Fnorth-korea-locked-down","06.catalog\u002F06.showcase\u002F04.north-korea-locked-down",{"title":501,"path":502,"stem":503},"纽约巴黎航班","\u002Fcatalog\u002Fshowcase\u002Fnyc-paris-flight","06.catalog\u002F06.showcase\u002F05.nyc-paris-flight",{"title":505,"path":506,"stem":507},"3D UI 展示","\u002Fcatalog\u002Fshowcase\u002Fui-3d-reveal","06.catalog\u002F06.showcase\u002F06.ui-3d-reveal",{"title":509,"path":510,"stem":511},"VPN YouTube 广告片段","\u002Fcatalog\u002Fshowcase\u002Fvpn-youtube-spot","06.catalog\u002F06.showcase\u002F07.vpn-youtube-spot",{"title":513,"icon":514,"path":515,"stem":516,"children":517,"page":30},"数据","i-lucide-bar-chart-3","\u002Fcatalog\u002Fdata","06.catalog\u002F07.data",[518,522,526,530,534,538,542],{"title":519,"path":520,"stem":521},"数据图表","\u002Fcatalog\u002Fdata\u002Fdata-chart","06.catalog\u002F07.data\u002F01.data-chart",{"title":523,"path":524,"stem":525},"西班牙地图","\u002Fcatalog\u002Fdata\u002Fspain-map","06.catalog\u002F07.data\u002F02.spain-map",{"title":527,"path":528,"stem":529},"美国地图","\u002Fcatalog\u002Fdata\u002Fus-map","06.catalog\u002F07.data\u002F03.us-map",{"title":531,"path":532,"stem":533},"美国气泡地图","\u002Fcatalog\u002Fdata\u002Fus-map-bubble","06.catalog\u002F07.data\u002F04.us-map-bubble",{"title":535,"path":536,"stem":537},"美国流动地图","\u002Fcatalog\u002Fdata\u002Fus-map-flow","06.catalog\u002F07.data\u002F05.us-map-flow",{"title":539,"path":540,"stem":541},"美国六边形网格地图","\u002Fcatalog\u002Fdata\u002Fus-map-hex","06.catalog\u002F07.data\u002F06.us-map-hex",{"title":543,"path":544,"stem":545},"世界地图","\u002Fcatalog\u002Fdata\u002Fworld-map","06.catalog\u002F07.data\u002F07.world-map",{"title":547,"icon":548,"path":549,"stem":550,"children":551,"page":30},"效果","i-lucide-sparkles","\u002Fcatalog\u002Feffects","06.catalog\u002F08.effects",[552,556,560,564,568,572,576,580],{"title":553,"path":554,"stem":555},"差值混合","\u002Fcatalog\u002Feffects\u002Fcaption-blend-difference","06.catalog\u002F08.effects\u002F01.caption-blend-difference",{"title":557,"path":558,"stem":559},"胶片颗粒叠加","\u002Fcatalog\u002Feffects\u002Fgrain-overlay","06.catalog\u002F08.effects\u002F02.grain-overlay",{"title":561,"path":562,"stem":563},"网格像素化擦除","\u002Fcatalog\u002Feffects\u002Fgrid-pixelate-wipe","06.catalog\u002F08.effects\u002F03.grid-pixelate-wipe",{"title":565,"path":566,"stem":567},"视差缩小","\u002Fcatalog\u002Feffects\u002Fparallax-unzoom","06.catalog\u002F08.effects\u002F04.parallax-unzoom",{"title":569,"path":570,"stem":571},"视差放大","\u002Fcatalog\u002Feffects\u002Fparallax-zoom","06.catalog\u002F08.effects\u002F05.parallax-zoom",{"title":573,"path":574,"stem":575},"微光扫过","\u002Fcatalog\u002Feffects\u002Fshimmer-sweep","06.catalog\u002F08.effects\u002F06.shimmer-sweep",{"title":577,"path":578,"stem":579},"纹理遮罩文字","\u002Fcatalog\u002Feffects\u002Ftexture-mask-text","06.catalog\u002F08.effects\u002F07.texture-mask-text",{"title":581,"path":582,"stem":583},"暗角","\u002Fcatalog\u002Feffects\u002Fvignette","06.catalog\u002F08.effects\u002F08.vignette",{"title":585,"icon":586,"path":587,"stem":588,"children":589,"page":30},"区块","i-lucide-box","\u002Fcatalog\u002Fblocks","06.catalog\u002F09.blocks",[590,594],{"title":591,"path":592,"stem":593},"流程图","\u002Fcatalog\u002Fblocks\u002Fflowchart","06.catalog\u002F09.blocks\u002F01.flowchart",{"title":595,"path":596,"stem":597},"Logo 片尾","\u002Fcatalog\u002Fblocks\u002Flogo-outro","06.catalog\u002F09.blocks\u002F02.logo-outro",{"title":599,"icon":600,"path":601,"stem":602,"children":603,"page":30},"代码片段","i-lucide-code-2","\u002Fcatalog\u002Fcode-snippets","06.catalog\u002F10.code-snippets",[604,608,612,616,620,624,628,632,636,640,644,648],{"title":605,"path":606,"stem":607},"Dark 2026","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-dark-2026","06.catalog\u002F10.code-snippets\u002F01.code-snippet-dark-2026",{"title":609,"path":610,"stem":611},"Dark Modern","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-dark-modern","06.catalog\u002F10.code-snippets\u002F02.code-snippet-dark-modern",{"title":613,"path":614,"stem":615},"Dark+","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-dark-plus","06.catalog\u002F10.code-snippets\u002F03.code-snippet-dark-plus",{"title":617,"path":618,"stem":619},"High Contrast","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-high-contrast","06.catalog\u002F10.code-snippets\u002F04.code-snippet-high-contrast",{"title":621,"path":622,"stem":623},"High Contrast Light","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-high-contrast-light","06.catalog\u002F10.code-snippets\u002F05.code-snippet-high-contrast-light",{"title":625,"path":626,"stem":627},"Light 2026","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-light-2026","06.catalog\u002F10.code-snippets\u002F06.code-snippet-light-2026",{"title":629,"path":630,"stem":631},"Light Modern","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-light-modern","06.catalog\u002F10.code-snippets\u002F07.code-snippet-light-modern",{"title":633,"path":634,"stem":635},"Light+","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-light-plus","06.catalog\u002F10.code-snippets\u002F08.code-snippet-light-plus",{"title":637,"path":638,"stem":639},"Monokai","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-monokai","06.catalog\u002F10.code-snippets\u002F09.code-snippet-monokai",{"title":641,"path":642,"stem":643},"Solarized Light","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-solarized-light","06.catalog\u002F10.code-snippets\u002F10.code-snippet-solarized-light",{"title":645,"path":646,"stem":647},"Visual Studio Dark","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-visual-studio-dark","06.catalog\u002F10.code-snippets\u002F11.code-snippet-visual-studio-dark",{"title":649,"path":650,"stem":651},"Visual Studio Light","\u002Fcatalog\u002Fcode-snippets\u002Fcode-snippet-visual-studio-light","06.catalog\u002F10.code-snippets\u002F12.code-snippet-visual-studio-light",{"title":653,"icon":654,"path":655,"stem":656,"children":657,"page":30},"参考","i-lucide-book-marked","\u002Freference","07.reference",[658,662,666,670,674,678,682],{"title":659,"path":660,"stem":661},"HTML Schema 参考","\u002Freference\u002Fhtml-schema","07.reference\u002F01.html-schema",{"title":663,"path":664,"stem":665},"贡献指南","\u002Freference\u002Fcontributing","07.reference\u002F02.contributing",{"title":667,"path":668,"stem":669},"贡献到 Catalog","\u002Freference\u002Fcatalog","07.reference\u002F03.catalog",{"title":671,"path":672,"stem":673},"发布渠道","\u002Freference\u002Frelease-channels","07.reference\u002F04.release-channels",{"title":675,"path":676,"stem":677},"测试本地 CLI 变更","\u002Freference\u002Ftesting-local-changes","07.reference\u002F05.testing-local-changes",{"title":679,"path":680,"stem":681},"Studio 手动 DOM 编辑","\u002Freference\u002Fstudio-manual-dom-editing","07.reference\u002F06.studio-manual-dom-editing",{"title":683,"path":684,"stem":685},"采用者","\u002Freference\u002Fadopters","07.reference\u002F07.adopters",{"id":687,"title":195,"body":688,"description":8414,"extension":8415,"links":8416,"meta":8417,"navigation":1026,"path":196,"seo":8418,"stem":197,"__hash__":8419},"docs\u002F05.packages\u002F06.cli.md",{"type":689,"value":690,"toc":8352},"minimark",[691,699,757,761,767,820,825,852,864,868,874,895,905,915,920,998,1001,1046,1054,1064,1197,1203,1206,1209,1217,1224,1226,1229,1232,1250,1253,1272,1278,1281,1284,1306,1313,1316,1319,1333,1339,1343,1346,1364,1370,1395,1401,1421,1424,1427,1431,1433,1506,1681,1743,1765,1786,1799,1804,1809,1826,1920,1978,1999,2012,2025,2029,2032,2132,2197,2208,2213,2216,2230,2251,2254,2259,2262,2349,2421,2434,2439,2493,2504,2517,2522,2525,2766,2868,2915,2936,2941,2951,3113,3233,3244,3261,3264,3321,3341,3350,3354,3357,3403,3409,3473,3476,3487,3503,3506,3510,3513,3544,3566,3572,3593,3596,3627,3632,3639,3666,3688,3696,3702,3705,3709,3712,3756,3762,3777,3820,3825,3858,3863,3867,3870,3919,3925,3930,4030,4040,4046,4062,4066,4069,4108,4114,4156,4163,4166,4170,4173,4327,4654,4672,4676,4679,4959,5043,5052,5056,5063,5141,5154,5159,5164,5167,5183,5226,5229,5232,5236,5239,5253,5259,5283,5286,5312,5355,5369,5374,5377,5393,5413,5416,5421,5424,5480,5522,5529,5653,5658,5661,5723,5732,5737,5740,5757,5778,5783,5786,5843,5875,5882,5889,5894,5897,5936,5961,5966,5970,5973,6038,6102,6108,6115,6129,6135,6148,6157,6181,6194,6198,6217,6220,6238,6241,6247,6254,6308,6314,6317,6344,6350,6353,6395,6398,6457,6461,6472,6531,6534,6540,6570,6577,6752,6755,6882,7040,7048,7065,7079,7106,7112,7131,7172,7178,7188,7218,7224,7235,7266,7277,7296,7300,7315,7319,7322,7331,7384,7387,7416,7419,7425,7440,7476,7483,7489,7500,7551,7557,7572,7620,7625,7646,7687,7725,7732,7738,7760,7763,7785,7835,7842,7848,7860,7870,7908,7931,7937,7943,7960,7966,7977,7983,7986,8054,8074,8085,8088,8104,8107,8120,8246,8304,8307,8310,8348],[692,693,694,698],"p",{},[695,696,697],"code",{},"hyperframes"," CLI 是使用 Hyperframes 的主要方式。它处理项目创建、实时预览、渲染、检查和诊断 — 全部通过终端完成。",[700,701,706],"pre",{"className":702,"code":703,"language":704,"meta":705,"style":705},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install -g hyperframes\n# 或直接使用 npx\nnpx hyperframes \u003Ccommand>\n","bash","",[695,707,708,727,734],{"__ignoreMap":705},[709,710,713,717,721,724],"span",{"class":711,"line":712},"line",1,[709,714,716],{"class":715},"sBMFI","npm",[709,718,720],{"class":719},"sfazB"," install",[709,722,723],{"class":719}," -g",[709,725,726],{"class":719}," hyperframes\n",[709,728,730],{"class":711,"line":729},2,[709,731,733],{"class":732},"sHwdD","# 或直接使用 npx\n",[709,735,737,740,743,747,750,754],{"class":711,"line":736},3,[709,738,739],{"class":715},"npx",[709,741,742],{"class":719}," hyperframes",[709,744,746],{"class":745},"sMK4o"," \u003C",[709,748,749],{"class":719},"comman",[709,751,753],{"class":752},"sTEyZ","d",[709,755,756],{"class":745},">\n",[758,759,760],"h2",{"id":760},"何时使用",[692,762,763],{},[764,765,766],"strong",{},"在以下场景使用 CLI：",[768,769,770,778,784,790,796,802,808,814],"ul",{},[771,772,773,774,777],"li",{},"捕获网站用于视频制作（",[695,775,776],{},"capture","）",[771,779,780,781,777],{},"从示例创建新的合成项目（",[695,782,783],{},"init",[771,785,786,787,777],{},"带热重载预览合成（",[695,788,789],{},"preview",[771,791,792,793,777],{},"在本地或 Docker 中将合渲染为 MP4（",[695,794,795],{},"render",[771,797,798,799,777],{},"检查合成的结构问题（",[695,800,801],{},"lint",[771,803,804,805,777],{},"检查渲染后的视觉布局中的文本溢出和裁剪容器（",[695,806,807],{},"inspect",[771,809,810,811,777],{},"将关键帧捕获为 PNG 截图（",[695,812,813],{},"snapshot",[771,815,816,817,777],{},"检查环境中缺失的依赖项（",[695,818,819],{},"doctor",[692,821,822],{},[764,823,824],{},"如果需要以下功能，请使用其他包：",[768,826,827,834,840,846],{},[771,828,829,830],{},"从 Node.js 代码以编程方式渲染 — 使用 ",[831,832,833],"a",{"href":188},"producer",[771,835,836,837],{},"构建自定义帧捕获管道 — 使用 ",[831,838,839],{"href":180},"engine",[771,841,842,843],{},"在自己的 Web 应用中嵌入合成编辑器 — 使用 ",[831,844,845],{"href":192},"studio",[771,847,848,849],{},"在代码中解析或生成合成 HTML — 使用 ",[831,850,851],{"href":176},"core",[853,854,855,861],"blockquote",{},[692,856,857,858],{},"💡 ",[764,859,860],{},"Tip",[692,862,863],{},"CLI 是所有 Hyperframes 用户的推荐起点。它封装了 producer、engine 和 studio 包，因此你不需要单独安装它们。",[758,865,867],{"id":866},"默认支持-agent","默认支持 Agent",[692,869,870,871,873],{},"CLI ",[764,872,867],{},"：命令支持显式标志和可解析的输出，使自动化能够可靠运行。",[768,875,876,889,892],{},[771,877,878,879,882,883,882,886,777],{},"输入可以通过标志传递（例如 ",[695,880,881],{},"--example","、",[695,884,885],{},"--video",[695,887,888],{},"--output",[771,890,891],{},"缺少必需标志时会快速失败，并给出清晰的错误信息和使用示例",[771,893,894],{},"输出为纯文本，适合解析",[692,896,897,898,900,901,904],{},"交互性因命令而异。例如，",[695,899,783],{}," 默认在 TTY 上使用提示符；传入 ",[695,902,903],{},"--non-interactive"," 可强制使用非交互模式。",[692,906,907,910,911,914],{},[695,908,909],{},"--human-friendly"," 也是命令特定的（例如 ",[695,912,913],{},"catalog","）。它不是每个命令的全局标志。",[916,917,919],"h3",{"id":918},"agent-模式默认","Agent 模式（默认）",[700,921,923],{"className":702,"code":922,"language":704,"meta":705,"style":705},"# 完全非交互 — 所有输入来自标志\nnpx hyperframes init my-video --example blank --video video.mp4\nnpx hyperframes render --output output.mp4 --fps 30 --quality standard\nnpx hyperframes upgrade --check --json\n",[695,924,925,930,954,982],{"__ignoreMap":705},[709,926,927],{"class":711,"line":712},[709,928,929],{"class":732},"# 完全非交互 — 所有输入来自标志\n",[709,931,932,934,936,939,942,945,948,951],{"class":711,"line":729},[709,933,739],{"class":715},[709,935,742],{"class":719},[709,937,938],{"class":719}," init",[709,940,941],{"class":719}," my-video",[709,943,944],{"class":719}," --example",[709,946,947],{"class":719}," blank",[709,949,950],{"class":719}," --video",[709,952,953],{"class":719}," video.mp4\n",[709,955,956,958,960,963,966,969,972,976,979],{"class":711,"line":736},[709,957,739],{"class":715},[709,959,742],{"class":719},[709,961,962],{"class":719}," render",[709,964,965],{"class":719}," --output",[709,967,968],{"class":719}," output.mp4",[709,970,971],{"class":719}," --fps",[709,973,975],{"class":974},"sbssI"," 30",[709,977,978],{"class":719}," --quality",[709,980,981],{"class":719}," standard\n",[709,983,985,987,989,992,995],{"class":711,"line":984},4,[709,986,739],{"class":715},[709,988,742],{"class":719},[709,990,991],{"class":719}," upgrade",[709,993,994],{"class":719}," --check",[709,996,997],{"class":719}," --json\n",[916,999,1000],{"id":1000},"人工模式",[700,1002,1004],{"className":702,"code":1003,"language":704,"meta":705,"style":705},"# 命令特定的交互流程\nnpx hyperframes init my-video\n\n# catalog 支持的交互式选择器\nnpx hyperframes catalog --human-friendly\n",[695,1005,1006,1011,1022,1028,1033],{"__ignoreMap":705},[709,1007,1008],{"class":711,"line":712},[709,1009,1010],{"class":732},"# 命令特定的交互流程\n",[709,1012,1013,1015,1017,1019],{"class":711,"line":729},[709,1014,739],{"class":715},[709,1016,742],{"class":719},[709,1018,938],{"class":719},[709,1020,1021],{"class":719}," my-video\n",[709,1023,1024],{"class":711,"line":736},[709,1025,1027],{"emptyLinePlaceholder":1026},true,"\n",[709,1029,1030],{"class":711,"line":984},[709,1031,1032],{"class":732},"# catalog 支持的交互式选择器\n",[709,1034,1036,1038,1040,1043],{"class":711,"line":1035},5,[709,1037,739],{"class":715},[709,1039,742],{"class":719},[709,1041,1042],{"class":719}," catalog",[709,1044,1045],{"class":719}," --human-friendly\n",[916,1047,1049,1050,1053],{"id":1048},"json-输出和-_meta-信封","JSON 输出和 ",[695,1051,1052],{},"_meta"," 信封",[692,1055,1056,1057,1060,1061,1063],{},"所有支持 ",[695,1058,1059],{},"--json"," 的命令都会用包含版本检查信息的 ",[695,1062,1052],{}," 字段包装输出：",[700,1065,1069],{"className":1066,"code":1067,"language":1068,"meta":705,"style":705},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n\"name\": \"my-video\",\n\"duration\": 10.5,\n\"_meta\": {\n\"version\": \"0.1.4\",\n\"latestVersion\": \"0.1.5\",\n\"updateAvailable\": true\n}\n}\n","json",[695,1070,1071,1076,1101,1117,1130,1150,1171,1186,1192],{"__ignoreMap":705},[709,1072,1073],{"class":711,"line":712},[709,1074,1075],{"class":745},"{\n",[709,1077,1078,1081,1085,1087,1090,1093,1096,1098],{"class":711,"line":729},[709,1079,1080],{"class":745},"\"",[709,1082,1084],{"class":1083},"spNyl","name",[709,1086,1080],{"class":745},[709,1088,1089],{"class":745},":",[709,1091,1092],{"class":745}," \"",[709,1094,1095],{"class":719},"my-video",[709,1097,1080],{"class":745},[709,1099,1100],{"class":745},",\n",[709,1102,1103,1105,1108,1110,1112,1115],{"class":711,"line":736},[709,1104,1080],{"class":745},[709,1106,1107],{"class":1083},"duration",[709,1109,1080],{"class":745},[709,1111,1089],{"class":745},[709,1113,1114],{"class":974}," 10.5",[709,1116,1100],{"class":745},[709,1118,1119,1121,1123,1125,1127],{"class":711,"line":984},[709,1120,1080],{"class":745},[709,1122,1052],{"class":1083},[709,1124,1080],{"class":745},[709,1126,1089],{"class":745},[709,1128,1129],{"class":745}," {\n",[709,1131,1132,1134,1137,1139,1141,1143,1146,1148],{"class":711,"line":1035},[709,1133,1080],{"class":745},[709,1135,1136],{"class":715},"version",[709,1138,1080],{"class":745},[709,1140,1089],{"class":745},[709,1142,1092],{"class":745},[709,1144,1145],{"class":719},"0.1.4",[709,1147,1080],{"class":745},[709,1149,1100],{"class":745},[709,1151,1153,1155,1158,1160,1162,1164,1167,1169],{"class":711,"line":1152},6,[709,1154,1080],{"class":745},[709,1156,1157],{"class":715},"latestVersion",[709,1159,1080],{"class":745},[709,1161,1089],{"class":745},[709,1163,1092],{"class":745},[709,1165,1166],{"class":719},"0.1.5",[709,1168,1080],{"class":745},[709,1170,1100],{"class":745},[709,1172,1174,1176,1179,1181,1183],{"class":711,"line":1173},7,[709,1175,1080],{"class":745},[709,1177,1178],{"class":715},"updateAvailable",[709,1180,1080],{"class":745},[709,1182,1089],{"class":745},[709,1184,1185],{"class":745}," true\n",[709,1187,1189],{"class":711,"line":1188},8,[709,1190,1191],{"class":745},"}\n",[709,1193,1195],{"class":711,"line":1194},9,[709,1196,1191],{"class":745},[692,1198,1199,1200,1202],{},"这允许 Agent 从任何命令的输出中检测过时的版本，而无需运行单独的升级检查。版本数据来自 24 小时缓存 — ",[695,1201,1059],{}," 输出期间不会发起网络请求。",[916,1204,1205],{"id":1205},"被动更新通知",[692,1207,1208],{},"CLI 在后台检查 npm 上的新版本（缓存 24 小时）。如果有更新可用，命令完成后会在 stderr 上显示通知：",[700,1210,1215],{"className":1211,"code":1213,"language":1214},[1212],"language-text","Update available: 0.1.4 → 0.1.5\nRun: npx hyperframes@latest\n","text",[695,1216,1213],{"__ignoreMap":705},[692,1218,1219,1220,1223],{},"在 CI 环境、非 TTY shell 以及设置了 ",[695,1221,1222],{},"HYPERFRAMES_NO_UPDATE_CHECK=1"," 时，此通知会被抑制。",[758,1225,5],{"id":5},[916,1227,1228],{"id":1228},"创建项目",[692,1230,1231],{},"从示例创建新的合成项目：",[700,1233,1235],{"className":702,"code":1234,"language":704,"meta":705,"style":705},"npx hyperframes init --example warm-grain\n",[695,1236,1237],{"__ignoreMap":705},[709,1238,1239,1241,1243,1245,1247],{"class":711,"line":712},[709,1240,739],{"class":715},[709,1242,742],{"class":719},[709,1244,938],{"class":719},[709,1246,944],{"class":719},[709,1248,1249],{"class":719}," warm-grain\n",[692,1251,1252],{},"系统会提示输入项目名称，或作为参数传递：",[700,1254,1256],{"className":702,"code":1255,"language":704,"meta":705,"style":705},"npx hyperframes init my-video --example warm-grain\n",[695,1257,1258],{"__ignoreMap":705},[709,1259,1260,1262,1264,1266,1268,1270],{"class":711,"line":712},[709,1261,739],{"class":715},[709,1263,742],{"class":719},[709,1265,938],{"class":719},[709,1267,941],{"class":719},[709,1269,944],{"class":719},[709,1271,1249],{"class":719},[692,1273,1274,1275,1277],{},"参见",[831,1276,23],{"href":24},"了解所有可用示例。",[916,1279,1280],{"id":1280},"在浏览器中预览",[692,1282,1283],{},"启动带有热重载的开发服务器：",[700,1285,1287],{"className":702,"code":1286,"language":704,"meta":705,"style":705},"cd my-video\nnpx hyperframes preview\n",[695,1288,1289,1297],{"__ignoreMap":705},[709,1290,1291,1295],{"class":711,"line":712},[709,1292,1294],{"class":1293},"s2Zo4","cd",[709,1296,1021],{"class":719},[709,1298,1299,1301,1303],{"class":711,"line":729},[709,1300,739],{"class":715},[709,1302,742],{"class":719},[709,1304,1305],{"class":719}," preview\n",[692,1307,1308,1309,1312],{},"Hyperframes Studio 会在你的浏览器中打开。编辑 ",[695,1310,1311],{},"index.html","，预览会即时更新。",[916,1314,1315],{"id":1315},"检查你的合成",[692,1317,1318],{},"在渲染前检查结构问题：",[700,1320,1322],{"className":702,"code":1321,"language":704,"meta":705,"style":705},"npx hyperframes lint\n",[695,1323,1324],{"__ignoreMap":705},[709,1325,1326,1328,1330],{"class":711,"line":712},[709,1327,739],{"class":715},[709,1329,742],{"class":719},[709,1331,1332],{"class":719}," lint\n",[700,1334,1337],{"className":1335,"code":1336,"language":1214},[1212],"◆  Linting my-project\u002Findex.html\n\n◇  0 errors, 0 warnings\n",[695,1338,1336],{"__ignoreMap":705},[916,1340,1342],{"id":1341},"渲染为-mp4","渲染为 MP4",[692,1344,1345],{},"生成最终视频：",[700,1347,1349],{"className":702,"code":1348,"language":704,"meta":705,"style":705},"npx hyperframes render --output output.mp4\n",[695,1350,1351],{"__ignoreMap":705},[709,1352,1353,1355,1357,1359,1361],{"class":711,"line":712},[709,1354,739],{"class":715},[709,1356,742],{"class":719},[709,1358,962],{"class":719},[709,1360,965],{"class":719},[709,1362,1363],{"class":719}," output.mp4\n",[692,1365,1366,1367,1369],{},"渲染特定合成而非 ",[695,1368,1311],{},"：",[700,1371,1373],{"className":702,"code":1372,"language":704,"meta":705,"style":705},"npx hyperframes render -c compositions\u002Fintro.html -o intro.mp4\n",[695,1374,1375],{"__ignoreMap":705},[709,1376,1377,1379,1381,1383,1386,1389,1392],{"class":711,"line":712},[709,1378,739],{"class":715},[709,1380,742],{"class":719},[709,1382,962],{"class":719},[709,1384,1385],{"class":719}," -c",[709,1387,1388],{"class":719}," compositions\u002Fintro.html",[709,1390,1391],{"class":719}," -o",[709,1393,1394],{"class":719}," intro.mp4\n",[692,1396,1397,1398,1369],{},"要获得确定性输出，添加 ",[695,1399,1400],{},"--docker",[700,1402,1404],{"className":702,"code":1403,"language":704,"meta":705,"style":705},"npx hyperframes render --docker --output output.mp4\n",[695,1405,1406],{"__ignoreMap":705},[709,1407,1408,1410,1412,1414,1417,1419],{"class":711,"line":712},[709,1409,739],{"class":715},[709,1411,742],{"class":719},[709,1413,962],{"class":719},[709,1415,1416],{"class":719}," --docker",[709,1418,965],{"class":719},[709,1420,1363],{"class":719},[758,1422,1423],{"id":1423},"命令",[916,1425,1426],{"id":1426},"创建",[916,1428,1429],{"id":783},[695,1430,783],{},[692,1432,1231],{},[700,1434,1436],{"className":702,"code":1435,"language":704,"meta":705,"style":705},"# Agent 模式（默认）— --example 是必需的\nnpx hyperframes init my-video --example blank --video video.mp4\n\n# 包含 Tailwind CSS 浏览器运行时支持\nnpx hyperframes init my-video --example blank --tailwind\n\n# 人工模式 — 默认在 TTY 上使用交互式提示\nnpx hyperframes init my-video\n",[695,1437,1438,1443,1461,1465,1470,1487,1491,1496],{"__ignoreMap":705},[709,1439,1440],{"class":711,"line":712},[709,1441,1442],{"class":732},"# Agent 模式（默认）— --example 是必需的\n",[709,1444,1445,1447,1449,1451,1453,1455,1457,1459],{"class":711,"line":729},[709,1446,739],{"class":715},[709,1448,742],{"class":719},[709,1450,938],{"class":719},[709,1452,941],{"class":719},[709,1454,944],{"class":719},[709,1456,947],{"class":719},[709,1458,950],{"class":719},[709,1460,953],{"class":719},[709,1462,1463],{"class":711,"line":736},[709,1464,1027],{"emptyLinePlaceholder":1026},[709,1466,1467],{"class":711,"line":984},[709,1468,1469],{"class":732},"# 包含 Tailwind CSS 浏览器运行时支持\n",[709,1471,1472,1474,1476,1478,1480,1482,1484],{"class":711,"line":1035},[709,1473,739],{"class":715},[709,1475,742],{"class":719},[709,1477,938],{"class":719},[709,1479,941],{"class":719},[709,1481,944],{"class":719},[709,1483,947],{"class":719},[709,1485,1486],{"class":719}," --tailwind\n",[709,1488,1489],{"class":711,"line":1152},[709,1490,1027],{"emptyLinePlaceholder":1026},[709,1492,1493],{"class":711,"line":1173},[709,1494,1495],{"class":732},"# 人工模式 — 默认在 TTY 上使用交互式提示\n",[709,1497,1498,1500,1502,1504],{"class":711,"line":1188},[709,1499,739],{"class":715},[709,1501,742],{"class":719},[709,1503,938],{"class":719},[709,1505,1021],{"class":719},[1507,1508,1509,1522],"table",{},[1510,1511,1512],"thead",{},[1513,1514,1515,1519],"tr",{},[1516,1517,1518],"th",{},"标志",[1516,1520,1521],{},"描述",[1523,1524,1525,1539,1592,1602,1612,1622,1632,1642,1661],"tbody",{},[1513,1526,1527,1533],{},[1528,1529,1530],"td",{},[695,1531,1532],{},"--example, -e",[1528,1534,1535,1536,1538],{},"要脚手架化的示例（默认模式下必需，在 ",[695,1537,909],{}," 下交互式选择）",[1513,1540,1541,1546],{},[1528,1542,1543],{},[695,1544,1545],{},"--resolution",[1528,1547,1548,1549,1552,1553,1556,1557,1560,1561,1564,1565,1568,1569,1572,1573,882,1576,882,1579,882,1582,882,1585,882,1588,1591],{},"画布预设：",[695,1550,1551],{},"landscape"," (1920×1080)、",[695,1554,1555],{},"portrait"," (1080×1920)、",[695,1558,1559],{},"landscape-4k"," (3840×2160)、",[695,1562,1563],{},"portrait-4k"," (2160×3840)、",[695,1566,1567],{},"square"," (1080×1080)、",[695,1570,1571],{},"square-4k"," (2160×2160)。别名：",[695,1574,1575],{},"1080p",[695,1577,1578],{},"4k",[695,1580,1581],{},"uhd",[695,1583,1584],{},"1080p-square",[695,1586,1587],{},"square-1080p",[695,1589,1590],{},"4k-square","。默认：保持模板尺寸。",[1513,1593,1594,1599],{},[1528,1595,1596],{},[695,1597,1598],{},"--video, -V",[1528,1600,1601],{},"视频文件路径（MP4、WebM、MOV）",[1513,1603,1604,1609],{},[1528,1605,1606],{},[695,1607,1608],{},"--audio, -a",[1528,1610,1611],{},"音频文件路径（MP3、WAV、M4A）",[1513,1613,1614,1619],{},[1528,1615,1616],{},[695,1617,1618],{},"--tailwind",[1528,1620,1621],{},"为脚手架化的 HTML 添加 Tailwind CSS 浏览器运行时支持",[1513,1623,1624,1629],{},[1528,1625,1626],{},[695,1627,1628],{},"--skip-skills",[1528,1630,1631],{},"跳过 AI 编程技能安装",[1513,1633,1634,1639],{},[1528,1635,1636],{},[695,1637,1638],{},"--skip-transcribe",[1528,1640,1641],{},"跳过自动 whisper 转录",[1513,1643,1644,1649],{},[1528,1645,1646],{},[695,1647,1648],{},"--model",[1528,1650,1651,1652,882,1655,882,1658,777],{},"用于转录的 Whisper 模型（例如 ",[695,1653,1654],{},"small.en",[695,1656,1657],{},"medium.en",[695,1659,1660],{},"large-v3",[1513,1662,1663,1668],{},[1528,1664,1665],{},[695,1666,1667],{},"--language",[1528,1669,1670,1671,882,1674,882,1677,1680],{},"转录的语言代码（例如 ",[695,1672,1673],{},"en",[695,1675,1676],{},"es",[695,1678,1679],{},"ja","）。过滤非目标语言语音。",[1507,1682,1683,1691],{},[1510,1684,1685],{},[1513,1686,1687,1689],{},[1516,1688,23],{},[1516,1690,1521],{},[1523,1692,1693,1703,1713,1723,1733],{},[1513,1694,1695,1700],{},[1528,1696,1697],{},[695,1698,1699],{},"blank",[1528,1701,1702],{},"空合成 — 仅脚手架",[1513,1704,1705,1710],{},[1528,1706,1707],{},[695,1708,1709],{},"warm-grain",[1528,1711,1712],{},"奶油美学配合颗粒纹理",[1513,1714,1715,1720],{},[1528,1716,1717],{},[695,1718,1719],{},"play-mode",[1528,1721,1722],{},"俏皮的弹性动画",[1513,1724,1725,1730],{},[1528,1726,1727],{},[695,1728,1729],{},"swiss-grid",[1528,1731,1732],{},"结构化网格布局",[1513,1734,1735,1740],{},[1528,1736,1737],{},[695,1738,1739],{},"vignelli",[1528,1741,1742],{},"大胆的排版配合红色强调",[692,1744,1745,1746,1748,1749,1751,1752,1754,1755,1757,1758,1761,1762,1764],{},"在非交互模式下，",[695,1747,881],{}," 是必需的 — 如果缺少，CLI 会报错并给出使用示例。在交互模式下（TTY 默认），你可以交互式选择示例。传入 ",[695,1750,903],{}," 可通过标志要求 ",[695,1753,881],{},"。当提供 ",[695,1756,885],{}," 或 ",[695,1759,1760],{},"--audio"," 时，CLI 会自动使用 Whisper 转录音频并将字幕补丁到合成中（使用 ",[695,1763,1638],{}," 禁用）。",[692,1766,1767,1769,1770,1773,1774,1777,1778,1781,1782,1785],{},[695,1768,1618],{}," 将固定的 Tailwind v4 浏览器运行时注入脚手架化的 HTML，并暴露一个 ",[695,1771,1772],{},"window.__tailwindReady"," promise，渲染在捕获第 0 帧之前会等待它。编辑这些项目时使用 ",[695,1775,1776],{},"\u002Ftailwind"," 技能，这样 Agent 会遵循 v4 CSS 优先的模式，而非 v3 的 ",[695,1779,1780],{},"tailwind.config.js"," 和 ",[695,1783,1784],{},"@tailwind"," 指令模式。浏览器运行时仍适用于脚手架化项目和快速迭代；对于完全离线或锁定的生产渲染，请将 Tailwind 编译为 CSS 并直接包含样式表。",[692,1787,1788,1789,1791,1792,1798],{},"脚手架化后，CLI 会为 Claude Code、Gemini CLI 和 Codex CLI 安装 AI 编程技能（使用 ",[695,1790,1628],{}," 禁用）。参见 ",[831,1793,1795],{"href":1794},"#skills",[695,1796,1797],{},"skills"," 命令。",[692,1800,1274,1801,1803],{},[831,1802,23],{"href":24},"了解完整详情。",[916,1805,1807],{"id":1806},"add",[695,1808,1806],{},[692,1810,1811,1812,1815,1816,1819,1820,1825],{},"从注册表安装",[764,1813,1814],{},"块","或",[764,1817,1818],{},"组件","到现有项目中。示例（完整项目）通过 ",[831,1821,1823],{"href":1822},"#init",[695,1824,783],{}," 脚手架化；块和组件是你可以添加到已有合成中的较小单元。",[700,1827,1829],{"className":702,"code":1828,"language":704,"meta":705,"style":705},"# 添加块（子合成场景）\nnpx hyperframes add claude-code-window\n\n# 添加组件（效果\u002F代码片段）\nnpx hyperframes add shader-wipe\n\n# 指定不同的项目目录\nnpx hyperframes add shader-wipe --dir .\u002Fmy-video\n\n# 无头\u002FCI（跳过剪贴板；同样：--json 获取机器可读结果）\nnpx hyperframes add shader-wipe --no-clipboard --json\n",[695,1830,1831,1836,1848,1852,1857,1868,1872,1877,1894,1898,1904],{"__ignoreMap":705},[709,1832,1833],{"class":711,"line":712},[709,1834,1835],{"class":732},"# 添加块（子合成场景）\n",[709,1837,1838,1840,1842,1845],{"class":711,"line":729},[709,1839,739],{"class":715},[709,1841,742],{"class":719},[709,1843,1844],{"class":719}," add",[709,1846,1847],{"class":719}," claude-code-window\n",[709,1849,1850],{"class":711,"line":736},[709,1851,1027],{"emptyLinePlaceholder":1026},[709,1853,1854],{"class":711,"line":984},[709,1855,1856],{"class":732},"# 添加组件（效果\u002F代码片段）\n",[709,1858,1859,1861,1863,1865],{"class":711,"line":1035},[709,1860,739],{"class":715},[709,1862,742],{"class":719},[709,1864,1844],{"class":719},[709,1866,1867],{"class":719}," shader-wipe\n",[709,1869,1870],{"class":711,"line":1152},[709,1871,1027],{"emptyLinePlaceholder":1026},[709,1873,1874],{"class":711,"line":1173},[709,1875,1876],{"class":732},"# 指定不同的项目目录\n",[709,1878,1879,1881,1883,1885,1888,1891],{"class":711,"line":1188},[709,1880,739],{"class":715},[709,1882,742],{"class":719},[709,1884,1844],{"class":719},[709,1886,1887],{"class":719}," shader-wipe",[709,1889,1890],{"class":719}," --dir",[709,1892,1893],{"class":719}," .\u002Fmy-video\n",[709,1895,1896],{"class":711,"line":1194},[709,1897,1027],{"emptyLinePlaceholder":1026},[709,1899,1901],{"class":711,"line":1900},10,[709,1902,1903],{"class":732},"# 无头\u002FCI（跳过剪贴板；同样：--json 获取机器可读结果）\n",[709,1905,1907,1909,1911,1913,1915,1918],{"class":711,"line":1906},11,[709,1908,739],{"class":715},[709,1910,742],{"class":719},[709,1912,1844],{"class":719},[709,1914,1887],{"class":719},[709,1916,1917],{"class":719}," --no-clipboard",[709,1919,997],{"class":719},[1507,1921,1922,1930],{},[1510,1923,1924],{},[1513,1925,1926,1928],{},[1516,1927,1518],{},[1516,1929,1521],{},[1523,1931,1932,1949,1959,1969],{},[1513,1933,1934,1940],{},[1528,1935,1936,1939],{},[695,1937,1938],{},"\u003Cname>","（位置参数）",[1528,1941,1942,1943,882,1946,777],{},"注册表项名称（例如 ",[695,1944,1945],{},"claude-code-window",[695,1947,1948],{},"shader-wipe",[1513,1950,1951,1956],{},[1528,1952,1953],{},[695,1954,1955],{},"--dir",[1528,1957,1958],{},"项目目录（默认为当前工作目录）",[1513,1960,1961,1966],{},[1528,1962,1963],{},[695,1964,1965],{},"--no-clipboard",[1528,1967,1968],{},"跳过将包含代码片段复制到剪贴板",[1513,1970,1971,1975],{},[1528,1972,1973],{},[695,1974,1059],{},[1528,1976,1977],{},"将机器可读的摘要（写入的文件 + 代码片段）输出到 stdout",[692,1979,1980,1982,1983,1989,1990,1992,1993,1995,1996,1998],{},[695,1981,1806],{}," 读取项目根目录的 ",[831,1984,1986],{"href":1985},"#hyperframes-json",[695,1987,1988],{},"hyperframes.json"," 以知道从哪个注册表拉取以及将文件放到哪里。如果文件不存在但目录看起来像 Hyperframes 项目（有 ",[695,1991,1311],{},"），首次运行 ",[695,1994,1806],{}," 时会写入默认的 ",[695,1997,1988],{},"。",[692,2000,2001,2002,2005,2006,2009,2010,1998],{},"块或组件的输出是一组文件加上一个",[764,2003,2004],{},"粘贴代码片段"," — 要包含在宿主合成中的 ",[695,2007,2008],{},"\u003Ciframe>"," 标签（对于块）或片段路径（对于组件）。代码片段默认复制到剪贴板；在 CI 或无头环境中添加 ",[695,2011,1965],{},[692,2013,2014,2015,2017,2018,2021,2022,1998],{},"尝试使用示例名称运行 ",[695,2016,1806],{},"（例如 ",[695,2019,2020],{},"hyperframes add warm-grain","）会发出明确的错误，指向 ",[695,2023,2024],{},"init --example",[916,2026,2027],{"id":913},[695,2028,913],{},[692,2030,2031],{},"浏览注册表 — 列出可用的块和组件，支持可选筛选：",[700,2033,2035],{"className":702,"code":2034,"language":704,"meta":705,"style":705},"# 列出所有内容（默认：表格输出）\nnpx hyperframes catalog\n\n# 按类型或标签筛选\nnpx hyperframes catalog --type block\nnpx hyperframes catalog --type block --tag social\n\n# 机器可读的 JSON\nnpx hyperframes catalog --json\n\n# 交互式选择器 — 选择以安装\nnpx hyperframes catalog --human-friendly\n",[695,2036,2037,2042,2051,2055,2060,2074,2093,2097,2102,2112,2116,2121],{"__ignoreMap":705},[709,2038,2039],{"class":711,"line":712},[709,2040,2041],{"class":732},"# 列出所有内容（默认：表格输出）\n",[709,2043,2044,2046,2048],{"class":711,"line":729},[709,2045,739],{"class":715},[709,2047,742],{"class":719},[709,2049,2050],{"class":719}," catalog\n",[709,2052,2053],{"class":711,"line":736},[709,2054,1027],{"emptyLinePlaceholder":1026},[709,2056,2057],{"class":711,"line":984},[709,2058,2059],{"class":732},"# 按类型或标签筛选\n",[709,2061,2062,2064,2066,2068,2071],{"class":711,"line":1035},[709,2063,739],{"class":715},[709,2065,742],{"class":719},[709,2067,1042],{"class":719},[709,2069,2070],{"class":719}," --type",[709,2072,2073],{"class":719}," block\n",[709,2075,2076,2078,2080,2082,2084,2087,2090],{"class":711,"line":1152},[709,2077,739],{"class":715},[709,2079,742],{"class":719},[709,2081,1042],{"class":719},[709,2083,2070],{"class":719},[709,2085,2086],{"class":719}," block",[709,2088,2089],{"class":719}," --tag",[709,2091,2092],{"class":719}," social\n",[709,2094,2095],{"class":711,"line":1173},[709,2096,1027],{"emptyLinePlaceholder":1026},[709,2098,2099],{"class":711,"line":1188},[709,2100,2101],{"class":732},"# 机器可读的 JSON\n",[709,2103,2104,2106,2108,2110],{"class":711,"line":1194},[709,2105,739],{"class":715},[709,2107,742],{"class":719},[709,2109,1042],{"class":719},[709,2111,997],{"class":719},[709,2113,2114],{"class":711,"line":1900},[709,2115,1027],{"emptyLinePlaceholder":1026},[709,2117,2118],{"class":711,"line":1906},[709,2119,2120],{"class":732},"# 交互式选择器 — 选择以安装\n",[709,2122,2124,2126,2128,2130],{"class":711,"line":2123},12,[709,2125,739],{"class":715},[709,2127,742],{"class":719},[709,2129,1042],{"class":719},[709,2131,1045],{"class":719},[1507,2133,2134,2142],{},[1510,2135,2136],{},[1513,2137,2138,2140],{},[1516,2139,1518],{},[1516,2141,1521],{},[1523,2143,2144,2161,2179,2188],{},[1513,2145,2146,2151],{},[1528,2147,2148],{},[695,2149,2150],{},"--type",[1528,2152,2153,2154,1757,2157,2160],{},"按 ",[695,2155,2156],{},"block",[695,2158,2159],{},"component"," 筛选",[1513,2162,2163,2168],{},[1528,2164,2165],{},[695,2166,2167],{},"--tag",[1528,2169,2170,2171,882,2174,882,2177,777],{},"按标签筛选（例如 ",[695,2172,2173],{},"social",[695,2175,2176],{},"transition",[695,2178,1214],{},[1513,2180,2181,2185],{},[1528,2182,2183],{},[695,2184,1059],{},[1528,2186,2187],{},"将匹配项以 JSON 格式输出（非交互式）",[1513,2189,2190,2194],{},[1528,2191,2192],{},[695,2193,909],{},[1528,2195,2196],{},"交互式选择器 — 选择一项进行安装",[692,2198,2199,2200,2202,2203,2205,2206,1998],{},"默认输出是一个表格，列出名称、类型、描述和标签 — 专为 Agent 解析设计。",[695,2201,1059],{}," 产生结构化输出。",[695,2204,909],{}," 打开一个交互式选择器，选择后执行 ",[695,2207,1806],{},[916,2209,2211],{"id":2210},"compositions",[695,2212,2210],{},[692,2214,2215],{},"列出当前项目中的所有合成：",[700,2217,2219],{"className":702,"code":2218,"language":704,"meta":705,"style":705},"npx hyperframes compositions\n",[695,2220,2221],{"__ignoreMap":705},[709,2222,2223,2225,2227],{"class":711,"line":712},[709,2224,739],{"class":715},[709,2226,742],{"class":719},[709,2228,2229],{"class":719}," compositions\n",[1507,2231,2232,2240],{},[1510,2233,2234],{},[1513,2235,2236,2238],{},[1516,2237,1518],{},[1516,2239,1521],{},[1523,2241,2242],{},[1513,2243,2244,2248],{},[1528,2245,2246],{},[695,2247,1059],{},[1528,2249,2250],{},"以 JSON 格式输出",[692,2252,2253],{},"显示每个合成的 ID、时长、分辨率和元素数量。",[916,2255,2257],{"id":2256},"transcribe",[695,2258,2256],{},[692,2260,2261],{},"将音频\u002F视频转录为单词级时间戳，或导入现有转录：",[700,2263,2265],{"className":702,"code":2264,"language":704,"meta":705,"style":705},"# 使用本地 whisper.cpp 转录音频\u002F视频\nnpx hyperframes transcribe audio.mp3\nnpx hyperframes transcribe video.mp4 --model medium.en --language en\n\n# 从其他工具导入现有转录\nnpx hyperframes transcribe subtitles.srt\nnpx hyperframes transcribe captions.vtt\nnpx hyperframes transcribe openai-response.json\n",[695,2266,2267,2272,2284,2307,2311,2316,2327,2338],{"__ignoreMap":705},[709,2268,2269],{"class":711,"line":712},[709,2270,2271],{"class":732},"# 使用本地 whisper.cpp 转录音频\u002F视频\n",[709,2273,2274,2276,2278,2281],{"class":711,"line":729},[709,2275,739],{"class":715},[709,2277,742],{"class":719},[709,2279,2280],{"class":719}," transcribe",[709,2282,2283],{"class":719}," audio.mp3\n",[709,2285,2286,2288,2290,2292,2295,2298,2301,2304],{"class":711,"line":736},[709,2287,739],{"class":715},[709,2289,742],{"class":719},[709,2291,2280],{"class":719},[709,2293,2294],{"class":719}," video.mp4",[709,2296,2297],{"class":719}," --model",[709,2299,2300],{"class":719}," medium.en",[709,2302,2303],{"class":719}," --language",[709,2305,2306],{"class":719}," en\n",[709,2308,2309],{"class":711,"line":984},[709,2310,1027],{"emptyLinePlaceholder":1026},[709,2312,2313],{"class":711,"line":1035},[709,2314,2315],{"class":732},"# 从其他工具导入现有转录\n",[709,2317,2318,2320,2322,2324],{"class":711,"line":1152},[709,2319,739],{"class":715},[709,2321,742],{"class":719},[709,2323,2280],{"class":719},[709,2325,2326],{"class":719}," subtitles.srt\n",[709,2328,2329,2331,2333,2335],{"class":711,"line":1173},[709,2330,739],{"class":715},[709,2332,742],{"class":719},[709,2334,2280],{"class":719},[709,2336,2337],{"class":719}," captions.vtt\n",[709,2339,2340,2342,2344,2346],{"class":711,"line":1188},[709,2341,739],{"class":715},[709,2343,742],{"class":719},[709,2345,2280],{"class":719},[709,2347,2348],{"class":719}," openai-response.json\n",[1507,2350,2351,2359],{},[1510,2352,2353],{},[1513,2354,2355,2357],{},[1516,2356,1518],{},[1516,2358,1521],{},[1523,2360,2361,2371,2396,2412],{},[1513,2362,2363,2368],{},[1528,2364,2365],{},[695,2366,2367],{},"--dir, -d",[1528,2369,2370],{},"项目目录（默认：当前目录）",[1513,2372,2373,2378],{},[1528,2374,2375],{},[695,2376,2377],{},"--model, -m",[1528,2379,2380,2381,2383,2384,882,2387,882,2390,882,2392,882,2394],{},"Whisper 模型（默认：",[695,2382,1654],{},"）。选项：",[695,2385,2386],{},"tiny.en",[695,2388,2389],{},"base.en",[695,2391,1654],{},[695,2393,1657],{},[695,2395,1660],{},[1513,2397,2398,2403],{},[1528,2399,2400],{},[695,2401,2402],{},"--language, -l",[1528,2404,2405,2406,882,2408,882,2410,1680],{},"语言代码（例如 ",[695,2407,1673],{},[695,2409,1676],{},[695,2411,1679],{},[1513,2413,2414,2418],{},[1528,2415,2416],{},[695,2417,1059],{},[1528,2419,2420],{},"以 JSON 格式输出结果",[692,2422,2423,2424,882,2427,882,2430,2433],{},"命令自动检测输入类型。音频\u002F视频文件使用 whisper.cpp 转录。转录文件（",[695,2425,2426],{},".json",[695,2428,2429],{},".srt",[695,2431,2432],{},".vtt","）会被规范化并导入。",[692,2435,2436],{},[764,2437,2438],{},"支持的转录格式：",[1507,2440,2441,2451],{},[1510,2442,2443],{},[1513,2444,2445,2448],{},[1516,2446,2447],{},"格式",[1516,2449,2450],{},"来源",[1523,2452,2453,2466,2477,2485],{},[1513,2454,2455,2458],{},[1528,2456,2457],{},"whisper.cpp JSON",[1528,2459,2460,882,2463],{},[695,2461,2462],{},"hyperframes init --video",[695,2464,2465],{},"hyperframes transcribe",[1513,2467,2468,2471],{},[1528,2469,2470],{},"OpenAI Whisper API JSON",[1528,2472,2473,2476],{},[695,2474,2475],{},"openai.audio.transcriptions.create()"," 带有单词时间戳",[1513,2478,2479,2482],{},[1528,2480,2481],{},"SRT 字幕",[1528,2483,2484],{},"视频编辑器、YouTube、字幕工具",[1513,2486,2487,2490],{},[1528,2488,2489],{},"VTT 字幕",[1528,2491,2492],{},"Web 播放器、YouTube、转录服务",[692,2494,2495,2496,2499,2500,2503],{},"所有格式都被规范化为标准的 ",[695,2497,2498],{},"[{text, start, end}]"," 单词数组，并保存为 ",[695,2501,2502],{},"transcript.json","。如果项目有字幕 HTML 文件，它们会自动用转录数据补丁。",[853,2505,2506,2510],{},[692,2507,857,2508],{},[764,2509,860],{},[692,2511,2512,2513,2516],{},"对于音乐或嘈杂的音频，使用 ",[695,2514,2515],{},"--model medium.en"," 以获得更好的准确性。对于生产内容的最佳效果，通过 OpenAI 或 Groq Whisper API 转录并导入 JSON。",[916,2518,2520],{"id":2519},"tts",[695,2521,2519],{},[692,2523,2524],{},"使用本地 AI 模型（Kokoro-82M）从文本生成语音音频。无需 API 密钥 — 完全在设备上运行。",[700,2526,2528],{"className":702,"code":2527,"language":704,"meta":705,"style":705},"# 从文本生成语音\nnpx hyperframes tts \"Welcome to HyperFrames\"\n\n# 选择声音\nnpx hyperframes tts \"Hello world\" --voice am_adam\n\n# 保存到指定文件\nnpx hyperframes tts \"Intro\" --voice bf_emma --output narration.wav\n\n# 调整语速\nnpx hyperframes tts \"Slow and clear\" --speed 0.8\n\n# 生成西班牙语语音（语言从声音 ID 前缀自动检测）\nnpx hyperframes tts \"La reunión empieza a las nueve\" --voice ef_dora --output es.wav\n\n# 覆盖音素器（用法语声音朗读英文文本）\nnpx hyperframes tts \"Bonjour le monde\" --voice af_heart --lang fr-fr\n\n# 从文件读取文本\nnpx hyperframes tts script.txt\n\n# 列出可用声音\nnpx hyperframes tts --list\n",[695,2529,2530,2535,2552,2556,2561,2582,2586,2591,2616,2620,2625,2646,2650,2656,2682,2687,2693,2720,2725,2731,2743,2748,2754],{"__ignoreMap":705},[709,2531,2532],{"class":711,"line":712},[709,2533,2534],{"class":732},"# 从文本生成语音\n",[709,2536,2537,2539,2541,2544,2546,2549],{"class":711,"line":729},[709,2538,739],{"class":715},[709,2540,742],{"class":719},[709,2542,2543],{"class":719}," tts",[709,2545,1092],{"class":745},[709,2547,2548],{"class":719},"Welcome to HyperFrames",[709,2550,2551],{"class":745},"\"\n",[709,2553,2554],{"class":711,"line":736},[709,2555,1027],{"emptyLinePlaceholder":1026},[709,2557,2558],{"class":711,"line":984},[709,2559,2560],{"class":732},"# 选择声音\n",[709,2562,2563,2565,2567,2569,2571,2574,2576,2579],{"class":711,"line":1035},[709,2564,739],{"class":715},[709,2566,742],{"class":719},[709,2568,2543],{"class":719},[709,2570,1092],{"class":745},[709,2572,2573],{"class":719},"Hello world",[709,2575,1080],{"class":745},[709,2577,2578],{"class":719}," --voice",[709,2580,2581],{"class":719}," am_adam\n",[709,2583,2584],{"class":711,"line":1152},[709,2585,1027],{"emptyLinePlaceholder":1026},[709,2587,2588],{"class":711,"line":1173},[709,2589,2590],{"class":732},"# 保存到指定文件\n",[709,2592,2593,2595,2597,2599,2601,2604,2606,2608,2611,2613],{"class":711,"line":1188},[709,2594,739],{"class":715},[709,2596,742],{"class":719},[709,2598,2543],{"class":719},[709,2600,1092],{"class":745},[709,2602,2603],{"class":719},"Intro",[709,2605,1080],{"class":745},[709,2607,2578],{"class":719},[709,2609,2610],{"class":719}," bf_emma",[709,2612,965],{"class":719},[709,2614,2615],{"class":719}," narration.wav\n",[709,2617,2618],{"class":711,"line":1194},[709,2619,1027],{"emptyLinePlaceholder":1026},[709,2621,2622],{"class":711,"line":1900},[709,2623,2624],{"class":732},"# 调整语速\n",[709,2626,2627,2629,2631,2633,2635,2638,2640,2643],{"class":711,"line":1906},[709,2628,739],{"class":715},[709,2630,742],{"class":719},[709,2632,2543],{"class":719},[709,2634,1092],{"class":745},[709,2636,2637],{"class":719},"Slow and clear",[709,2639,1080],{"class":745},[709,2641,2642],{"class":719}," --speed",[709,2644,2645],{"class":974}," 0.8\n",[709,2647,2648],{"class":711,"line":2123},[709,2649,1027],{"emptyLinePlaceholder":1026},[709,2651,2653],{"class":711,"line":2652},13,[709,2654,2655],{"class":732},"# 生成西班牙语语音（语言从声音 ID 前缀自动检测）\n",[709,2657,2659,2661,2663,2665,2667,2670,2672,2674,2677,2679],{"class":711,"line":2658},14,[709,2660,739],{"class":715},[709,2662,742],{"class":719},[709,2664,2543],{"class":719},[709,2666,1092],{"class":745},[709,2668,2669],{"class":719},"La reunión empieza a las nueve",[709,2671,1080],{"class":745},[709,2673,2578],{"class":719},[709,2675,2676],{"class":719}," ef_dora",[709,2678,965],{"class":719},[709,2680,2681],{"class":719}," es.wav\n",[709,2683,2685],{"class":711,"line":2684},15,[709,2686,1027],{"emptyLinePlaceholder":1026},[709,2688,2690],{"class":711,"line":2689},16,[709,2691,2692],{"class":732},"# 覆盖音素器（用法语声音朗读英文文本）\n",[709,2694,2696,2698,2700,2702,2704,2707,2709,2711,2714,2717],{"class":711,"line":2695},17,[709,2697,739],{"class":715},[709,2699,742],{"class":719},[709,2701,2543],{"class":719},[709,2703,1092],{"class":745},[709,2705,2706],{"class":719},"Bonjour le monde",[709,2708,1080],{"class":745},[709,2710,2578],{"class":719},[709,2712,2713],{"class":719}," af_heart",[709,2715,2716],{"class":719}," --lang",[709,2718,2719],{"class":719}," fr-fr\n",[709,2721,2723],{"class":711,"line":2722},18,[709,2724,1027],{"emptyLinePlaceholder":1026},[709,2726,2728],{"class":711,"line":2727},19,[709,2729,2730],{"class":732},"# 从文件读取文本\n",[709,2732,2734,2736,2738,2740],{"class":711,"line":2733},20,[709,2735,739],{"class":715},[709,2737,742],{"class":719},[709,2739,2543],{"class":719},[709,2741,2742],{"class":719}," script.txt\n",[709,2744,2746],{"class":711,"line":2745},21,[709,2747,1027],{"emptyLinePlaceholder":1026},[709,2749,2751],{"class":711,"line":2750},22,[709,2752,2753],{"class":732},"# 列出可用声音\n",[709,2755,2757,2759,2761,2763],{"class":711,"line":2756},23,[709,2758,739],{"class":715},[709,2760,742],{"class":719},[709,2762,2543],{"class":719},[709,2764,2765],{"class":719}," --list\n",[1507,2767,2768,2776],{},[1510,2769,2770],{},[1513,2771,2772,2774],{},[1516,2773,1518],{},[1516,2775,1521],{},[1523,2777,2778,2791,2805,2815,2851,2860],{},[1513,2779,2780,2785],{},[1528,2781,2782],{},[695,2783,2784],{},"--output, -o",[1528,2786,2787,2788,777],{},"输出文件路径（默认：当前目录下的 ",[695,2789,2790],{},"speech.wav",[1513,2792,2793,2798],{},[1528,2794,2795],{},[695,2796,2797],{},"--voice, -v",[1528,2799,2800,2801,2804],{},"声音 ID（运行 ",[695,2802,2803],{},"--list"," 查看选项）",[1513,2806,2807,2812],{},[1528,2808,2809],{},[695,2810,2811],{},"--speed, -s",[1528,2813,2814],{},"语速倍率（默认：1.0）",[1513,2816,2817,2822],{},[1528,2818,2819],{},[695,2820,2821],{},"--lang, -l",[1528,2823,2824,2825,882,2828,882,2831,882,2833,882,2836,882,2839,882,2842,882,2845,882,2847,2850],{},"音素器区域设置（",[695,2826,2827],{},"en-us",[695,2829,2830],{},"en-gb",[695,2832,1676],{},[695,2834,2835],{},"fr-fr",[695,2837,2838],{},"hi",[695,2840,2841],{},"it",[695,2843,2844],{},"pt-br",[695,2846,1679],{},[695,2848,2849],{},"zh","）。省略时从声音 ID 前缀推断。",[1513,2852,2853,2857],{},[1528,2854,2855],{},[695,2856,2803],{},[1528,2858,2859],{},"列出可用声音并退出",[1513,2861,2862,2866],{},[1528,2863,2864],{},[695,2865,1059],{},[1528,2867,2420],{},[853,2869,2870,2874],{},[692,2871,857,2872],{},[764,2873,860],{},[692,2875,2876,2877,2879,2880,2883,2884,2887,2888,2891,2892,2895,2896,2899,2900,2903,2904,2906,2907,2910,2911,2914],{},"声音 ID 的首字母编码了音素器语言（",[695,2878,831],{},"=美式、",[695,2881,2882],{},"b","=英式、",[695,2885,2886],{},"e","=西班牙语、",[695,2889,2890],{},"f","=法语、",[695,2893,2894],{},"h","=印地语、",[695,2897,2898],{},"i","=意大利语、",[695,2901,2902],{},"j","=日语、",[695,2905,692],{},"=巴西葡萄牙语、",[695,2908,2909],{},"z","=普通话）。",[695,2912,2913],{},"--lang"," 仅在你想覆盖此推断时需要 — 例如，为英文文本提供法语音素器以实现风格化的口音。",[853,2916,2917,2921],{},[692,2918,857,2919],{},[764,2920,860],{},[692,2922,2923,2924,2926,2927,2929,2930,2932,2933,2935],{},"将 ",[695,2925,2519],{}," 与 ",[695,2928,2256],{}," 结合使用，在单一工作流中生成旁白和字幕的单词级时间戳：使用 ",[695,2931,2519],{}," 生成音频，然后使用 ",[695,2934,2256],{}," 转录输出以获取单词级时间。",[916,2937,2939],{"id":2938},"remove-background",[695,2940,2938],{},[692,2942,2943,2944,1757,2947,2950],{},"使用本地 AI 模型从视频或图像中移除背景。输出是透明媒体，你可以放入任何合成的 ",[695,2945,2946],{},"\u003Cvideo>",[695,2948,2949],{},"\u003Cimg>"," 元素中 — 无需绿幕。",[700,2952,2954],{"className":702,"code":2953,"language":704,"meta":705,"style":705},"# 默认：带 alpha 的 VP9 WebM（HTML5 原生，约 1 MB \u002F 4s @ 1080p）\nnpx hyperframes remove-background avatar.mp4 -o transparent.webm\n\n# ProRes 4444 .mov 用于编辑往返\nnpx hyperframes remove-background avatar.mp4 -o transparent.mov\n\n# 单张图像 → 透明 PNG\nnpx hyperframes remove-background portrait.jpg -o cutout.png\n\n# 图层分离：一次通过同时获取剪影和反向 alpha 背景板\nnpx hyperframes remove-background avatar.mp4 \\\n-o subject.webm --background-output plate.webm\n\n# 在有 CoreML 或 CUDA 的机器上强制使用 CPU\nnpx hyperframes remove-background avatar.mp4 -o transparent.webm --device cpu\n\n# 检查检测到的提供者而不渲染\nnpx hyperframes remove-background --info\n",[695,2955,2956,2961,2978,2982,2987,3002,3006,3011,3027,3031,3036,3049,3063,3067,3072,3093,3097,3102],{"__ignoreMap":705},[709,2957,2958],{"class":711,"line":712},[709,2959,2960],{"class":732},"# 默认：带 alpha 的 VP9 WebM（HTML5 原生，约 1 MB \u002F 4s @ 1080p）\n",[709,2962,2963,2965,2967,2970,2973,2975],{"class":711,"line":729},[709,2964,739],{"class":715},[709,2966,742],{"class":719},[709,2968,2969],{"class":719}," remove-background",[709,2971,2972],{"class":719}," avatar.mp4",[709,2974,1391],{"class":719},[709,2976,2977],{"class":719}," transparent.webm\n",[709,2979,2980],{"class":711,"line":736},[709,2981,1027],{"emptyLinePlaceholder":1026},[709,2983,2984],{"class":711,"line":984},[709,2985,2986],{"class":732},"# ProRes 4444 .mov 用于编辑往返\n",[709,2988,2989,2991,2993,2995,2997,2999],{"class":711,"line":1035},[709,2990,739],{"class":715},[709,2992,742],{"class":719},[709,2994,2969],{"class":719},[709,2996,2972],{"class":719},[709,2998,1391],{"class":719},[709,3000,3001],{"class":719}," transparent.mov\n",[709,3003,3004],{"class":711,"line":1152},[709,3005,1027],{"emptyLinePlaceholder":1026},[709,3007,3008],{"class":711,"line":1173},[709,3009,3010],{"class":732},"# 单张图像 → 透明 PNG\n",[709,3012,3013,3015,3017,3019,3022,3024],{"class":711,"line":1188},[709,3014,739],{"class":715},[709,3016,742],{"class":719},[709,3018,2969],{"class":719},[709,3020,3021],{"class":719}," portrait.jpg",[709,3023,1391],{"class":719},[709,3025,3026],{"class":719}," cutout.png\n",[709,3028,3029],{"class":711,"line":1194},[709,3030,1027],{"emptyLinePlaceholder":1026},[709,3032,3033],{"class":711,"line":1900},[709,3034,3035],{"class":732},"# 图层分离：一次通过同时获取剪影和反向 alpha 背景板\n",[709,3037,3038,3040,3042,3044,3046],{"class":711,"line":1906},[709,3039,739],{"class":715},[709,3041,742],{"class":719},[709,3043,2969],{"class":719},[709,3045,2972],{"class":719},[709,3047,3048],{"class":752}," \\\n",[709,3050,3051,3054,3057,3060],{"class":711,"line":2123},[709,3052,3053],{"class":752},"-o ",[709,3055,3056],{"class":719},"subject.webm",[709,3058,3059],{"class":719}," --background-output",[709,3061,3062],{"class":719}," plate.webm\n",[709,3064,3065],{"class":711,"line":2652},[709,3066,1027],{"emptyLinePlaceholder":1026},[709,3068,3069],{"class":711,"line":2658},[709,3070,3071],{"class":732},"# 在有 CoreML 或 CUDA 的机器上强制使用 CPU\n",[709,3073,3074,3076,3078,3080,3082,3084,3087,3090],{"class":711,"line":2684},[709,3075,739],{"class":715},[709,3077,742],{"class":719},[709,3079,2969],{"class":719},[709,3081,2972],{"class":719},[709,3083,1391],{"class":719},[709,3085,3086],{"class":719}," transparent.webm",[709,3088,3089],{"class":719}," --device",[709,3091,3092],{"class":719}," cpu\n",[709,3094,3095],{"class":711,"line":2689},[709,3096,1027],{"emptyLinePlaceholder":1026},[709,3098,3099],{"class":711,"line":2695},[709,3100,3101],{"class":732},"# 检查检测到的提供者而不渲染\n",[709,3103,3104,3106,3108,3110],{"class":711,"line":2722},[709,3105,739],{"class":715},[709,3107,742],{"class":719},[709,3109,2969],{"class":719},[709,3111,3112],{"class":719}," --info\n",[1507,3114,3115,3123],{},[1510,3116,3117],{},[1513,3118,3119,3121],{},[1516,3120,1518],{},[1516,3122,1521],{},[1523,3124,3125,3144,3159,3181,3215,3225],{},[1513,3126,3127,3131],{},[1528,3128,3129],{},[695,3130,2784],{},[1528,3132,3133,3134,3137,3138,882,3141],{},"输出路径。格式从扩展名推断：",[695,3135,3136],{},".webm","（默认）、",[695,3139,3140],{},".mov",[695,3142,3143],{},".png",[1513,3145,3146,3151],{},[1528,3147,3148],{},[695,3149,3150],{},"--background-output, -b",[1528,3152,3153,3154,1757,3156,3158],{},"可选的第二输出：反向 alpha 背景板（主体区域透明，周围不透明）。相同的源 RGB，互补遮罩。必须为 ",[695,3155,3136],{},[695,3157,3140],{},"。挖孔裁切，非修补 — 在下方合成其他内容以填充孔洞。",[1513,3160,3161,3166],{},[1528,3162,3163],{},[695,3164,3165],{},"--device",[1528,3167,3168,3169,3137,3172,882,3175,882,3178],{},"执行提供者：",[695,3170,3171],{},"auto",[695,3173,3174],{},"cpu",[695,3176,3177],{},"coreml",[695,3179,3180],{},"cuda",[1513,3182,3183,3188],{},[1528,3184,3185],{},[695,3186,3187],{},"--quality",[1528,3189,3190,3191,3194,3195,3198,3199,3202,3203,1781,3205,3208,3209,3211,3212,3214],{},"WebM 编码器预设：",[695,3192,3193],{},"fast","（crf 30，最小）、",[695,3196,3197],{},"balanced","（crf 18，默认）、",[695,3200,3201],{},"best","（crf 12，接近无损）。更高质量使剪影的 RGB 更接近源 mp4 — 在将剪影叠加到其自身源上以实现主体后方文字效果时很重要。适用于 ",[695,3204,888],{},[695,3206,3207],{},"--background-output","。对 ",[695,3210,3140],{}," \u002F ",[695,3213,3143],{}," 忽略。",[1513,3216,3217,3222],{},[1528,3218,3219],{},[695,3220,3221],{},"--info",[1528,3223,3224],{},"打印检测到的执行提供者并退出（不渲染）",[1513,3226,3227,3231],{},[1528,3228,3229],{},[695,3230,1059],{},[1528,3232,2420],{},[692,3234,3235,3236,3239,3240,3243],{},"模型为 ",[695,3237,3238],{},"u2net_human_seg","（MIT，约 168 MB ONNX）。权重在首次运行时下载到 ",[695,3241,3242],{},"~\u002F.cache\u002Fhyperframes\u002Fbackground-removal\u002Fmodels\u002F"," 并在此后复用。峰值推理 RAM 约 1.5 GB。",[692,3245,3246,3249,3250,3253,3254,3257,3258,3260],{},[695,3247,3248],{},"--device auto"," 在 Apple Silicon 上选择 CoreML，有 CUDA 时选择 CUDA，否则选择 CPU。CLI 捆绑了 ",[695,3251,3252],{},"onnxruntime-node"," 的 CPU 构建版本；对于 CUDA，设置 ",[695,3255,3256],{},"HYPERFRAMES_CUDA=1"," 并提供启用 GPU 的 ",[695,3259,3252],{}," 构建版本。",[692,3262,3263],{},"输出格式：",[1507,3265,3266,3278],{},[1510,3267,3268],{},[1513,3269,3270,3272,3275],{},[1516,3271,2447],{},[1516,3273,3274],{},"使用场景",[1516,3276,3277],{},"大小（4s @ 1080p）",[1523,3279,3280,3296,3309],{},[1513,3281,3282,3287,3293],{},[1528,3283,3284,3286],{},[695,3285,3136],{},"（VP9 alpha）",[1528,3288,3289,3290,3292],{},"放入 ",[695,3291,2946],{}," 实现 HTML5 原生透明播放",[1528,3294,3295],{},"约 1 MB",[1513,3297,3298,3303,3306],{},[1528,3299,3300,3302],{},[695,3301,3140],{},"（ProRes 4444）",[1528,3304,3305],{},"在 Premiere \u002F Resolve \u002F DaVinci 中编辑往返",[1528,3307,3308],{},"约 50 MB",[1513,3310,3311,3315,3318],{},[1528,3312,3313],{},[695,3314,3143],{},[1528,3316,3317],{},"单张图像剪影",[1528,3319,3320],{},"不定",[853,3322,3323,3327],{},[692,3324,857,3325],{},[764,3326,860],{},[692,3328,3329,3330,3332,3333,3336,3337,3340],{},"Chrome 中的 ",[695,3331,2946],{}," 元素仅在 WebM 以 ",[695,3334,3335],{},"yuva420p"," 编码并带有 ",[695,3338,3339],{},"alpha_mode=1"," 元数据标签时才识别 alpha 平面。CLI 会自动设置这两者 — 如果你自己重新编码输出，请保留这些标志。",[692,3342,1274,3343,3346,3347,3349],{},[831,3344,3345],{"href":109},"移除背景指南","了解完整工作流 — 在合成中使用透明视频、各平台的性能、",[695,3348,3238],{}," 的限制，以及此模型不适合时的免费替代工具。",[916,3351,3352],{"id":776},[695,3353,776],{},[692,3355,3356],{},"捕获网站 — 提取截图、设计令牌、字体、资源和动画用于视频制作：",[700,3358,3360],{"className":702,"code":3359,"language":704,"meta":705,"style":705},"npx hyperframes capture https:\u002F\u002Fstripe.com\nnpx hyperframes capture https:\u002F\u002Flinear.app -o captures\u002Flinear\nnpx hyperframes capture https:\u002F\u002Fexample.com --json\n",[695,3361,3362,3374,3390],{"__ignoreMap":705},[709,3363,3364,3366,3368,3371],{"class":711,"line":712},[709,3365,739],{"class":715},[709,3367,742],{"class":719},[709,3369,3370],{"class":719}," capture",[709,3372,3373],{"class":719}," https:\u002F\u002Fstripe.com\n",[709,3375,3376,3378,3380,3382,3385,3387],{"class":711,"line":729},[709,3377,739],{"class":715},[709,3379,742],{"class":719},[709,3381,3370],{"class":719},[709,3383,3384],{"class":719}," https:\u002F\u002Flinear.app",[709,3386,1391],{"class":719},[709,3388,3389],{"class":719}," captures\u002Flinear\n",[709,3391,3392,3394,3396,3398,3401],{"class":711,"line":736},[709,3393,739],{"class":715},[709,3395,742],{"class":719},[709,3397,3370],{"class":719},[709,3399,3400],{"class":719}," https:\u002F\u002Fexample.com",[709,3402,997],{"class":719},[700,3404,3407],{"className":3405,"code":3406,"language":1214},[1212],"◇  Captured Stripe | Financial Infrastructure → captures\u002Fstripe-com\n\nScreenshots: 12\nAssets: 45\nSections: 15\nFonts: sohne-var\n",[695,3408,3406],{"__ignoreMap":705},[1507,3410,3411,3419],{},[1510,3412,3413],{},[1513,3414,3415,3417],{},[1516,3416,1518],{},[1516,3418,1521],{},[1523,3420,3421,3434,3444,3454,3464],{},[1513,3422,3423,3428],{},[1528,3424,3425],{},[695,3426,3427],{},"-o, --output",[1528,3429,3430,3431,777],{},"输出目录（默认：",[695,3432,3433],{},"captures\u002F\u003Chostname>",[1513,3435,3436,3441],{},[1528,3437,3438],{},[695,3439,3440],{},"--timeout",[1528,3442,3443],{},"页面加载超时（毫秒）（默认：120000）",[1513,3445,3446,3451],{},[1528,3447,3448],{},[695,3449,3450],{},"--skip-assets",[1528,3452,3453],{},"跳过下载图片和字体",[1513,3455,3456,3461],{},[1528,3457,3458],{},[695,3459,3460],{},"--max-screenshots",[1528,3462,3463],{},"最大截图数量（默认：24）",[1513,3465,3466,3470],{},[1528,3467,3468],{},[695,3469,1059],{},[1528,3471,3472],{},"输出结构化 JSON 用于编程使用",[692,3474,3475],{},"capture 命令提取 AI Agent 理解网站视觉标识所需的一切：每个滚动深度的视口截图、调色板（像素采样 + DOM 计算）、字体文件、带语义名称的图片、SVG、Lottie 动画、视频预览、WebGL 着色器、可见文本和页面结构。",[692,3477,3478,3479,3482,3483,3486],{},"输出是一个自包含的目录，包含一个 ",[695,3480,3481],{},"CLAUDE.md"," 文件，任何 AI Agent 都可以读取以了解被捕获的站点。被 ",[695,3484,3485],{},"\u002Fwebsite-to-hyperframes"," 技能用作视频制作管道的第一步。",[692,3488,3489,3490,3493,3494,3497,3498,3502],{},"在 ",[695,3491,3492],{},".env"," 文件中设置 ",[695,3495,3496],{},"GEMINI_API_KEY"," 以通过 Gemini 视觉获取 AI 驱动的图片描述（约 $0.001\u002F张）。详情请参阅 ",[831,3499,3501],{"href":3500},"\u002Fguides\u002Fwebsite-to-video#%E9%80%9A%E8%BF%87-gemini-vision-%E5%A2%9E%E5%BC%BA%E9%87%87%E9%9B%86","Website to Video"," 指南。",[916,3504,3505],{"id":3505},"预览",[916,3507,3508],{"id":789},[695,3509,789],{},[692,3511,3512],{},"启动带热重载的实时预览服务器：",[700,3514,3516],{"className":702,"code":3515,"language":704,"meta":705,"style":705},"npx hyperframes preview [dir]\nnpx hyperframes preview --port 4567\n",[695,3517,3518,3530],{"__ignoreMap":705},[709,3519,3520,3522,3524,3527],{"class":711,"line":712},[709,3521,739],{"class":715},[709,3523,742],{"class":719},[709,3525,3526],{"class":719}," preview",[709,3528,3529],{"class":752}," [dir]\n",[709,3531,3532,3534,3536,3538,3541],{"class":711,"line":729},[709,3533,739],{"class":715},[709,3535,742],{"class":719},[709,3537,3526],{"class":719},[709,3539,3540],{"class":719}," --port",[709,3542,3543],{"class":974}," 4567\n",[1507,3545,3546,3554],{},[1510,3547,3548],{},[1513,3549,3550,3552],{},[1516,3551,1518],{},[1516,3553,1521],{},[1523,3555,3556],{},[1513,3557,3558,3563],{},[1528,3559,3560],{},[695,3561,3562],{},"--port",[1528,3564,3565],{},"预览服务器运行端口（默认：3002）",[692,3567,3568,3569,3571],{},"在 Hyperframes Studio 中打开你的合成并提供实时预览。对 ",[695,3570,1311],{}," 和所有引用的子合成的编辑会自动反映。预览使用与生产渲染相同的 Hyperframes 运行时，因此所见即所得。",[853,3573,3574,3580],{},[692,3575,3576,3577],{},"ℹ️ ",[764,3578,3579],{},"Note",[692,3581,3582,3583,3586,3587,3590,3591,1998],{},"视觉输出与渲染完全匹配。播放",[3584,3585,120],"em",{},"则不同：预览在你的浏览器中实时播放，因此绘制密集的合成（大图片、叠加的 ",[695,3588,3589],{},"backdrop-filter"," 层、许多带阴影的元素）可能会根据你的硬件出现卡顿。渲染的 mp4 始终是准确的 — 渲染逐帧捕获，因此每帧的开销表现为更长的渲染时间，而非丢帧。详情请参阅",[831,3592,120],{"href":121},[692,3594,3595],{},"预览服务器以三种模式运行，自动检测：",[3597,3598,3599,3608,3621],"ol",{},[771,3600,3601,3604,3605,3607],{},[764,3602,3603],{},"嵌入模式","（",[695,3606,739],{}," 的默认模式）— 运行独立服务器，将 studio 捆绑在 CLI 中。零额外依赖。",[771,3609,3610,3613,3614,3617,3618,3620],{},[764,3611,3612],{},"本地 studio 模式"," — 如果项目 ",[695,3615,3616],{},"node_modules"," 中安装了 ",[695,3619,191],{},"，会启动带完整 HMR 的 Vite 以加快迭代。",[771,3622,3623,3626],{},[764,3624,3625],{},"Monorepo 模式"," — 如果从 Hyperframes 源码仓库运行，直接启动 studio 开发服务器。",[916,3628,3630],{"id":3629},"publish",[695,3631,3629],{},[692,3633,3634,3635,3638],{},"上传项目并获得一个稳定的 ",[695,3636,3637],{},"hyperframes.dev"," URL：",[700,3640,3642],{"className":702,"code":3641,"language":704,"meta":705,"style":705},"npx hyperframes publish [dir]\nnpx hyperframes publish --yes\n",[695,3643,3644,3655],{"__ignoreMap":705},[709,3645,3646,3648,3650,3653],{"class":711,"line":712},[709,3647,739],{"class":715},[709,3649,742],{"class":719},[709,3651,3652],{"class":719}," publish",[709,3654,3529],{"class":752},[709,3656,3657,3659,3661,3663],{"class":711,"line":729},[709,3658,739],{"class":715},[709,3660,742],{"class":719},[709,3662,3652],{"class":719},[709,3664,3665],{"class":719}," --yes\n",[1507,3667,3668,3676],{},[1510,3669,3670],{},[1513,3671,3672,3674],{},[1516,3673,1518],{},[1516,3675,1521],{},[1523,3677,3678],{},[1513,3679,3680,3685],{},[1528,3681,3682],{},[695,3683,3684],{},"--yes",[1528,3686,3687],{},"跳过确认提示",[692,3689,3690,3692,3693,3695],{},[695,3691,3629],{}," 压缩当前项目，上传到 Hyperframes 发布后端，并打印一个用于该存储项目的稳定 ",[695,3694,3637],{}," URL。",[692,3697,3698,3699,3701],{},"打印的 URL 已经包含认领令牌，因此在 ",[695,3700,3637],{}," 上打开它可以让目标用户认领上传的项目并在 Web 应用中继续编辑。",[692,3703,3704],{},"此流程不保持本地预览服务器运行，也不打开隧道。发布的 URL 解析到 HeyGen 存储的持久化项目，因此在 CLI 进程退出后仍可继续工作。",[916,3706,3707],{"id":801},[695,3708,801],{},[692,3710,3711],{},"检查合成的常见问题：",[700,3713,3715],{"className":702,"code":3714,"language":704,"meta":705,"style":705},"npx hyperframes lint [dir]\nnpx hyperframes lint [dir] --verbose   # 包含 info 级别发现\nnpx hyperframes lint [dir] --json      # 机器可读的 JSON 输出\n",[695,3716,3717,3728,3742],{"__ignoreMap":705},[709,3718,3719,3721,3723,3726],{"class":711,"line":712},[709,3720,739],{"class":715},[709,3722,742],{"class":719},[709,3724,3725],{"class":719}," lint",[709,3727,3529],{"class":752},[709,3729,3730,3732,3734,3736,3739],{"class":711,"line":729},[709,3731,739],{"class":715},[709,3733,742],{"class":719},[709,3735,3725],{"class":719},[709,3737,3738],{"class":752}," [dir] --verbose   ",[709,3740,3741],{"class":732},"# 包含 info 级别发现\n",[709,3743,3744,3746,3748,3750,3753],{"class":711,"line":736},[709,3745,739],{"class":715},[709,3747,742],{"class":719},[709,3749,3725],{"class":719},[709,3751,3752],{"class":752}," [dir] --json      ",[709,3754,3755],{"class":732},"# 机器可读的 JSON 输出\n",[700,3757,3760],{"className":3758,"code":3759,"language":1214},[1212],"◆  Linting my-project\u002Findex.html\n\n✗ missing_gsap_script: Composition uses GSAP but no GSAP script is loaded.\n⚠ unmuted-video [clip-1]: Video should have the 'muted' attribute for reliable autoplay.\n\n◇  1 error(s), 1 warning(s)\n",[695,3761,3759],{"__ignoreMap":705},[692,3763,3764,3765,3768,3769,3772,3773,3776],{},"默认只打印",[764,3766,3767],{},"错误","和",[764,3770,3771],{},"警告","。Info 级别的发现（例如外部脚本依赖通知）被隐藏以保持 Agent 和 CI 的输出整洁。使用 ",[695,3774,3775],{},"--verbose"," 包含它们。",[1507,3778,3779,3787],{},[1510,3780,3781],{},[1513,3782,3783,3785],{},[1516,3784,1518],{},[1516,3786,1521],{},[1523,3788,3789,3811],{},[1513,3790,3791,3795],{},[1528,3792,3793],{},[695,3794,1059],{},[1528,3796,3797,3798,882,3801,882,3804,1781,3807,3810],{},"以 JSON 格式输出发现（包含 ",[695,3799,3800],{},"errorCount",[695,3802,3803],{},"warningCount",[695,3805,3806],{},"infoCount",[695,3808,3809],{},"findings"," 数组）",[1513,3812,3813,3817],{},[1528,3814,3815],{},[695,3816,3775],{},[1528,3818,3819],{},"在输出中包含 info 级别发现（默认隐藏）",[692,3821,3822],{},[764,3823,3824],{},"严重级别：",[768,3826,3827,3837,3846],{},[771,3828,3829,3832,3833,3836],{},[764,3830,3831],{},"Error"," (",[695,3834,3835],{},"✗",") — 渲染前必须修复（例如缺少适配器库、无效属性）",[771,3838,3839,3832,3842,3845],{},[764,3840,3841],{},"Warning",[695,3843,3844],{},"⚠",") — 可能导致异常行为的潜在问题",[771,3847,3848,3832,3851,3854,3855,3857],{},[764,3849,3850],{},"Info",[695,3852,3853],{},"ℹ",") — 信息性通知，仅在使用 ",[695,3856,3775],{}," 时显示",[692,3859,3860,3861,1998],{},"Linter 会检测缺少的属性、缺少的适配器库（GSAP、Lottie、Three.js）、结构问题等。详情请参阅",[831,3862,132],{"href":133},[916,3864,3865],{"id":807},[695,3866,807],{},[692,3868,3869],{},"检查合成时间轴上的渲染视觉布局：",[700,3871,3873],{"className":702,"code":3872,"language":704,"meta":705,"style":705},"npx hyperframes inspect [dir]\nnpx hyperframes inspect [dir] --json\nnpx hyperframes inspect [dir] --samples 15\nnpx hyperframes inspect [dir] --at 1.5,4,7.25\n",[695,3874,3875,3886,3897,3908],{"__ignoreMap":705},[709,3876,3877,3879,3881,3884],{"class":711,"line":712},[709,3878,739],{"class":715},[709,3880,742],{"class":719},[709,3882,3883],{"class":719}," inspect",[709,3885,3529],{"class":752},[709,3887,3888,3890,3892,3894],{"class":711,"line":729},[709,3889,739],{"class":715},[709,3891,742],{"class":719},[709,3893,3883],{"class":719},[709,3895,3896],{"class":752}," [dir] --json\n",[709,3898,3899,3901,3903,3905],{"class":711,"line":736},[709,3900,739],{"class":715},[709,3902,742],{"class":719},[709,3904,3883],{"class":719},[709,3906,3907],{"class":752}," [dir] --samples 15\n",[709,3909,3910,3912,3914,3916],{"class":711,"line":984},[709,3911,739],{"class":715},[709,3913,742],{"class":719},[709,3915,3883],{"class":719},[709,3917,3918],{"class":752}," [dir] --at 1.5,4,7.25\n",[700,3920,3923],{"className":3921,"code":3922,"language":1214},[1212],"◆  Inspecting layout for my-project (9 timeline samples)\n\n✗ text_box_overflow t=3.25s #headline inside .bubble overflowed right 18px — \"Quarterly plan\"\nFix: Text is 418px x 42px inside 400px x 120px and overflows by up to 18px; widen the container to at least ~418px, or allow wrapping with max-width\u002FfitTextFontSize.\n\n◇  1 error(s), 0 warning(s), 0 info(s)\n",[695,3924,3922],{"__ignoreMap":705},[692,3926,3927,3929],{},[695,3928,807],{}," 打包项目，在本地提供服务，打开无头 Chrome，跳转合成，并报告逃出其预期框的文本或元素。它专为 Agent 工作流设计：每个发现包含 schema 版本、时间戳或折叠的时间戳范围、选择器、最近容器选择器、测量的边界框、溢出边和修复提示。",[1507,3931,3932,3940],{},[1510,3933,3934],{},[1513,3935,3936,3938],{},[1516,3937,1518],{},[1516,3939,1521],{},[1523,3941,3942,3961,3971,3981,3991,4000,4010,4020],{},[1513,3943,3944,3948],{},[1528,3945,3946],{},[695,3947,1059],{},[1528,3949,3950,3951,882,3954,882,3957,3960],{},"输出 Agent 可读的发现，包含 ",[695,3952,3953],{},"schemaVersion",[695,3955,3956],{},"samples",[695,3958,3959],{},"issues","、边界框和摘要计数",[1513,3962,3963,3968],{},[1528,3964,3965],{},[695,3966,3967],{},"--samples",[1528,3969,3970],{},"合成持续时间内的中点采样数量（默认：9）",[1513,3972,3973,3978],{},[1528,3974,3975],{},[695,3976,3977],{},"--at",[1528,3979,3980],{},"以逗号分隔的秒数时间戳，用于显式的主帧检查",[1513,3982,3983,3988],{},[1528,3984,3985],{},[695,3986,3987],{},"--tolerance",[1528,3989,3990],{},"报告问题前允许的像素溢出量（默认：2）",[1513,3992,3993,3997],{},[1528,3994,3995],{},[695,3996,3440],{},[1528,3998,3999],{},"等待运行时初始化的毫秒数（默认：5000）",[1513,4001,4002,4007],{},[1528,4003,4004],{},[695,4005,4006],{},"--collapse-static",[1528,4008,4009],{},"在采样间折叠重复的静态问题（默认：true）",[1513,4011,4012,4017],{},[1528,4013,4014],{},[695,4015,4016],{},"--max-issues",[1528,4018,4019],{},"静态折叠后打印或返回的最大发现数（默认：80）",[1513,4021,4022,4027],{},[1528,4023,4024],{},[695,4025,4026],{},"--strict",[1528,4028,4029],{},"在警告和错误时都以非零退出",[692,4031,4032,4033,4036,4037,1998],{},"当溢出是有意的时候（例如计划的画布外入场），在元素或祖先上使用 ",[695,4034,4035],{},"data-layout-allow-overflow","。对于不应被审计的装饰元素使用 ",[695,4038,4039],{},"data-layout-ignore",[692,4041,4042,4045],{},[695,4043,4044],{},"layout"," 仍作为同一视觉检查的兼容别名可用：",[700,4047,4049],{"className":702,"code":4048,"language":704,"meta":705,"style":705},"npx hyperframes layout [dir] --json\n",[695,4050,4051],{"__ignoreMap":705},[709,4052,4053,4055,4057,4060],{"class":711,"line":712},[709,4054,739],{"class":715},[709,4056,742],{"class":719},[709,4058,4059],{"class":719}," layout",[709,4061,3896],{"class":752},[916,4063,4064],{"id":813},[695,4065,813],{},[692,4067,4068],{},"将合成中的关键帧捕获为 PNG 截图 — 无需完整渲染即可验证视觉输出：",[700,4070,4072],{"className":702,"code":4071,"language":704,"meta":705,"style":705},"npx hyperframes snapshot my-project --at 2.9,10.4,18.7\nnpx hyperframes snapshot my-project --frames 10\n",[695,4073,4074,4092],{"__ignoreMap":705},[709,4075,4076,4078,4080,4083,4086,4089],{"class":711,"line":712},[709,4077,739],{"class":715},[709,4079,742],{"class":719},[709,4081,4082],{"class":719}," snapshot",[709,4084,4085],{"class":719}," my-project",[709,4087,4088],{"class":719}," --at",[709,4090,4091],{"class":719}," 2.9,10.4,18.7\n",[709,4093,4094,4096,4098,4100,4102,4105],{"class":711,"line":729},[709,4095,739],{"class":715},[709,4097,742],{"class":719},[709,4099,4082],{"class":719},[709,4101,4085],{"class":719},[709,4103,4104],{"class":719}," --frames",[709,4106,4107],{"class":974}," 10\n",[700,4109,4112],{"className":4110,"code":4111,"language":1214},[1212],"◆  Capturing 3 frames at [2.9s, 10.4s, 18.7s] from my-project\n\n◇  3 snapshots saved to snapshots\u002F\nsnapshots\u002Fframe-00-at-2.9s.png\nsnapshots\u002Fframe-01-at-10.4s.png\nsnapshots\u002Fframe-02-at-18.7s.png\n",[695,4113,4111],{"__ignoreMap":705},[1507,4115,4116,4124],{},[1510,4117,4118],{},[1513,4119,4120,4122],{},[1516,4121,1518],{},[1516,4123,1521],{},[1523,4125,4126,4136,4148],{},[1513,4127,4128,4133],{},[1528,4129,4130],{},[695,4131,4132],{},"--frames",[1528,4134,4135],{},"要捕获的均匀间隔帧数（默认：5）",[1513,4137,4138,4142],{},[1528,4139,4140],{},[695,4141,3977],{},[1528,4143,4144,4145,777],{},"以逗号分隔的秒数时间戳（例如 ",[695,4146,4147],{},"3.0,10.5,18.0",[1513,4149,4150,4154],{},[1528,4151,4152],{},[695,4153,3440],{},[1528,4155,3999],{},[692,4157,4158,4159,4162],{},"snapshot 命令打包项目，在本地提供服务，启动无头 Chrome，跳转到每个时间戳，并捕获 1920×1080 的 PNG。在 ",[831,4160,4161],{"href":73},"website-to-video"," 工作流的构建步骤中用于视觉验证。",[916,4164,4165],{"id":4165},"构建",[916,4167,4168],{"id":795},[695,4169,795],{},[692,4171,4172],{},"将合渲染为 MP4 或 WebM：",[700,4174,4176],{"className":702,"code":4175,"language":704,"meta":705,"style":705},"# 本地模式（快速迭代）\nnpx hyperframes render --output output.mp4\n\n# Docker 模式（确定性输出）\nnpx hyperframes render --docker --output output.mp4\n\n# 带透明度的 WebM（用于覆盖层、字幕、下方三分之一标题）\nnpx hyperframes render --format webm --output overlay.webm\n\n# 使用选项\nnpx hyperframes render --output output.mp4 --fps 60 --quality high\n\n# 退出本地浏览器 GPU 捕获\nnpx hyperframes render --no-browser-gpu --output cpu-browser.mp4\n\n# 添加硬件 FFmpeg 编码\nnpx hyperframes render --gpu --output gpu.mp4\n",[695,4177,4178,4183,4195,4199,4204,4218,4222,4227,4246,4250,4255,4277,4281,4286,4302,4306,4311],{"__ignoreMap":705},[709,4179,4180],{"class":711,"line":712},[709,4181,4182],{"class":732},"# 本地模式（快速迭代）\n",[709,4184,4185,4187,4189,4191,4193],{"class":711,"line":729},[709,4186,739],{"class":715},[709,4188,742],{"class":719},[709,4190,962],{"class":719},[709,4192,965],{"class":719},[709,4194,1363],{"class":719},[709,4196,4197],{"class":711,"line":736},[709,4198,1027],{"emptyLinePlaceholder":1026},[709,4200,4201],{"class":711,"line":984},[709,4202,4203],{"class":732},"# Docker 模式（确定性输出）\n",[709,4205,4206,4208,4210,4212,4214,4216],{"class":711,"line":1035},[709,4207,739],{"class":715},[709,4209,742],{"class":719},[709,4211,962],{"class":719},[709,4213,1416],{"class":719},[709,4215,965],{"class":719},[709,4217,1363],{"class":719},[709,4219,4220],{"class":711,"line":1152},[709,4221,1027],{"emptyLinePlaceholder":1026},[709,4223,4224],{"class":711,"line":1173},[709,4225,4226],{"class":732},"# 带透明度的 WebM（用于覆盖层、字幕、下方三分之一标题）\n",[709,4228,4229,4231,4233,4235,4238,4241,4243],{"class":711,"line":1188},[709,4230,739],{"class":715},[709,4232,742],{"class":719},[709,4234,962],{"class":719},[709,4236,4237],{"class":719}," --format",[709,4239,4240],{"class":719}," webm",[709,4242,965],{"class":719},[709,4244,4245],{"class":719}," overlay.webm\n",[709,4247,4248],{"class":711,"line":1194},[709,4249,1027],{"emptyLinePlaceholder":1026},[709,4251,4252],{"class":711,"line":1900},[709,4253,4254],{"class":732},"# 使用选项\n",[709,4256,4257,4259,4261,4263,4265,4267,4269,4272,4274],{"class":711,"line":1906},[709,4258,739],{"class":715},[709,4260,742],{"class":719},[709,4262,962],{"class":719},[709,4264,965],{"class":719},[709,4266,968],{"class":719},[709,4268,971],{"class":719},[709,4270,4271],{"class":974}," 60",[709,4273,978],{"class":719},[709,4275,4276],{"class":719}," high\n",[709,4278,4279],{"class":711,"line":2123},[709,4280,1027],{"emptyLinePlaceholder":1026},[709,4282,4283],{"class":711,"line":2652},[709,4284,4285],{"class":732},"# 退出本地浏览器 GPU 捕获\n",[709,4287,4288,4290,4292,4294,4297,4299],{"class":711,"line":2658},[709,4289,739],{"class":715},[709,4291,742],{"class":719},[709,4293,962],{"class":719},[709,4295,4296],{"class":719}," --no-browser-gpu",[709,4298,965],{"class":719},[709,4300,4301],{"class":719}," cpu-browser.mp4\n",[709,4303,4304],{"class":711,"line":2684},[709,4305,1027],{"emptyLinePlaceholder":1026},[709,4307,4308],{"class":711,"line":2689},[709,4309,4310],{"class":732},"# 添加硬件 FFmpeg 编码\n",[709,4312,4313,4315,4317,4319,4322,4324],{"class":711,"line":2695},[709,4314,739],{"class":715},[709,4316,742],{"class":719},[709,4318,962],{"class":719},[709,4320,4321],{"class":719}," --gpu",[709,4323,965],{"class":719},[709,4325,4326],{"class":719}," gpu.mp4\n",[1507,4328,4329,4343],{},[1510,4330,4331],{},[1513,4332,4333,4335,4338,4341],{},[1516,4334,1518],{},[1516,4336,4337],{},"值",[1516,4339,4340],{},"默认值",[1516,4342,1521],{},[1523,4344,4345,4362,4378,4394,4409,4429,4451,4487,4503,4517,4533,4547,4565,4580,4594,4617,4634],{},[1513,4346,4347,4351,4354,4359],{},[1528,4348,4349],{},[695,4350,888],{},[1528,4352,4353],{},"路径",[1528,4355,4356],{},[695,4357,4358],{},"renders\u002F\u003Cname>.mp4",[1528,4360,4361],{},"输出文件路径",[1513,4363,4364,4369,4372,4375],{},[1528,4365,4366],{},[695,4367,4368],{},"--format",[1528,4370,4371],{},"mp4、webm、mov、png-sequence",[1528,4373,4374],{},"mp4",[1528,4376,4377],{},"输出格式（WebM\u002FMOV 带透明度渲染；png-sequence 写入 RGBA PNG 目录）",[1513,4379,4380,4385,4388,4391],{},[1528,4381,4382],{},[695,4383,4384],{},"--fps",[1528,4386,4387],{},"24、30、60",[1528,4389,4390],{},"30",[1528,4392,4393],{},"每秒帧数",[1513,4395,4396,4400,4403,4406],{},[1528,4397,4398],{},[695,4399,3187],{},[1528,4401,4402],{},"draft、standard、high",[1528,4404,4405],{},"standard",[1528,4407,4408],{},"编码质量预设（驱动 CRF\u002F比特率）",[1513,4410,4411,4416,4419,4422],{},[1528,4412,4413],{},[695,4414,4415],{},"--crf",[1528,4417,4418],{},"0-51",[1528,4420,4421],{},"—",[1528,4423,4424,4425,4428],{},"覆盖编码器 CRF（值越低 = 质量越高）。与 ",[695,4426,4427],{},"--video-bitrate"," 互斥",[1513,4430,4431,4435,4444,4446],{},[1528,4432,4433],{},[695,4434,4427],{},[1528,4436,4437,4438,882,4441],{},"例如 ",[695,4439,4440],{},"10M",[695,4442,4443],{},"5000k",[1528,4445,4421],{},[1528,4447,4448,4449,4428],{},"目标视频比特率。与 ",[695,4450,4415],{},[1513,4452,4453,4457,4472,4474],{},[1528,4454,4455],{},[695,4456,1545],{},[1528,4458,4459,4460,882,4462,882,4464,882,4466,882,4468,882,4470,777],{},"landscape、portrait、landscape-4k、portrait-4k、square、square-4k（别名：",[695,4461,1575],{},[695,4463,1578],{},[695,4465,1581],{},[695,4467,1584],{},[695,4469,1587],{},[695,4471,1590],{},[1528,4473,4421],{},[1528,4475,4476,4477,4480,4481,4484,4485],{},"输出分辨率预设。通过 Chrome ",[695,4478,4479],{},"deviceScaleFactor"," 对较小的合成进行超采样，使截图达到请求的尺寸。宽高比必须匹配合成；缩放必须是整数倍。不支持 ",[695,4482,4483],{},"--hdr","。参见 ",[831,4486,116],{"href":117},[1513,4488,4489,4493,4495,4498],{},[1528,4490,4491],{},[695,4492,4483],{},[1528,4494,4421],{},[1528,4496,4497],{},"off",[1528,4499,4500,4501],{},"即使未检测到 HDR 源也强制 HDR 输出。仅限 MP4。参见 ",[831,4502,112],{"href":113},[1513,4504,4505,4510,4512,4514],{},[1528,4506,4507],{},[695,4508,4509],{},"--sdr",[1528,4511,4421],{},[1528,4513,4497],{},[1528,4515,4516],{},"即使检测到 HDR 源也强制 SDR 输出",[1513,4518,4519,4524,4527,4530],{},[1528,4520,4521],{},[695,4522,4523],{},"--workers",[1528,4525,4526],{},"1-8",[1528,4528,4529],{},"4",[1528,4531,4532],{},"并行渲染 worker 数量",[1513,4534,4535,4540,4542,4544],{},[1528,4536,4537],{},[695,4538,4539],{},"--gpu",[1528,4541,4421],{},[1528,4543,4497],{},[1528,4545,4546],{},"GPU 编码（NVENC、VideoToolbox、AMF、VAAPI、QSV）",[1513,4548,4549,4557,4559,4562],{},[1528,4550,4551,3211,4554],{},[695,4552,4553],{},"--browser-gpu",[695,4555,4556],{},"--no-browser-gpu",[1528,4558,4421],{},[1528,4560,4561],{},"本地 on，Docker off",[1528,4563,4564],{},"使用或退出本地 Chrome\u002FWebGL 捕获的主机 GPU 加速",[1513,4566,4567,4571,4573,4575],{},[1528,4568,4569],{},[695,4570,1400],{},[1528,4572,4421],{},[1528,4574,4497],{},[1528,4576,4577,4578],{},"使用 Docker 进行",[831,4579,54],{"href":55},[1513,4581,4582,4587,4589,4591],{},[1528,4583,4584],{},[695,4585,4586],{},"--quiet",[1528,4588,4421],{},[1528,4590,4497],{},[1528,4592,4593],{},"抑制详细输出",[1513,4595,4596,4601,4604,4606],{},[1528,4597,4598],{},[695,4599,4600],{},"--variables",[1528,4602,4603],{},"JSON 对象",[1528,4605,4421],{},[1528,4607,4608,4609,4612,4613,4616],{},"变量覆盖，合并到 ",[695,4610,4611],{},"data-composition-variables"," 默认值之上。通过 ",[695,4614,4615],{},"window.__hyperframes.getVariables()"," 读取",[1513,4618,4619,4624,4626,4628],{},[1528,4620,4621],{},[695,4622,4623],{},"--variables-file",[1528,4625,4353],{},[1528,4627,4421],{},[1528,4629,4630,4631,4633],{},"包含变量覆盖的 JSON 文件路径（",[695,4632,4600],{}," 的替代方式）",[1513,4635,4636,4641,4643,4645],{},[1528,4637,4638],{},[695,4639,4640],{},"--strict-variables",[1528,4642,4421],{},[1528,4644,4497],{},[1528,4646,4647,4648,4650,4651,4653],{},"如果任何 ",[695,4649,4600],{}," 键未声明或与合成的 ",[695,4652,4611],{}," 类型不匹配则渲染失败。不使用此标志时，不匹配会打印警告且渲染继续。",[692,4655,4656,4657,4659,4660,1757,4662,4664,4665,1781,4668,4671],{},"CRF 和目标比特率默认为 ",[695,4658,3187],{}," 预设。使用 ",[695,4661,4415],{},[695,4663,4427],{}," 进行细粒度覆盖；",[695,4666,4667],{},"RenderConfig.crf",[695,4669,4670],{},"RenderConfig.videoBitrate"," 在编程方式中接受相同的覆盖。",[4673,4674,4675],"h4",{"id":4675},"参数化渲染",[692,4677,4678],{},"通过在合成根上声明变量并在渲染时覆盖它们，使用不同的内容渲染相同的合成：",[700,4680,4684],{"className":4681,"code":4682,"language":4683,"meta":1311,"style":705},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Chtml\ndata-composition-id=\"root\"\ndata-composition-variables='[\n{\"id\":\"title\",\"label\":\"Title\",\"type\":\"string\",\"default\":\"Hello\"},\n{\"id\":\"theme\",\"label\":\"Theme\",\"type\":\"enum\",\"options\":[\n{\"value\":\"light\",\"label\":\"Light\"},\n{\"value\":\"dark\",\"label\":\"Dark\"}\n],\"default\":\"light\"}\n]'>\n\u003Cbody>\n\u003Ch1 id=\"hero\" class=\"clip\" data-start=\"0\" data-duration=\"3\">\u003C\u002Fh1>\n\u003Cscript>\nconst vars = window.__hyperframes.getVariables();\ndocument.getElementById(\"hero\").textContent = vars.title;\ndocument.body.dataset.theme = vars.theme;\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","html",[695,4685,4686,4695,4710,4722,4727,4732,4737,4742,4747,4756,4765,4827,4836,4866,4905,4934,4943,4951],{"__ignoreMap":705},[709,4687,4688,4691],{"class":711,"line":712},[709,4689,4690],{"class":745},"\u003C",[709,4692,4694],{"class":4693},"swJcz","html\n",[709,4696,4697,4700,4703,4705,4708],{"class":711,"line":729},[709,4698,4699],{"class":1083},"data-composition-id",[709,4701,4702],{"class":745},"=",[709,4704,1080],{"class":745},[709,4706,4707],{"class":719},"root",[709,4709,2551],{"class":745},[709,4711,4712,4714,4716,4719],{"class":711,"line":736},[709,4713,4611],{"class":1083},[709,4715,4702],{"class":745},[709,4717,4718],{"class":745},"'",[709,4720,4721],{"class":719},"[\n",[709,4723,4724],{"class":711,"line":984},[709,4725,4726],{"class":719},"{\"id\":\"title\",\"label\":\"Title\",\"type\":\"string\",\"default\":\"Hello\"},\n",[709,4728,4729],{"class":711,"line":1035},[709,4730,4731],{"class":719},"{\"id\":\"theme\",\"label\":\"Theme\",\"type\":\"enum\",\"options\":[\n",[709,4733,4734],{"class":711,"line":1152},[709,4735,4736],{"class":719},"{\"value\":\"light\",\"label\":\"Light\"},\n",[709,4738,4739],{"class":711,"line":1173},[709,4740,4741],{"class":719},"{\"value\":\"dark\",\"label\":\"Dark\"}\n",[709,4743,4744],{"class":711,"line":1188},[709,4745,4746],{"class":719},"],\"default\":\"light\"}\n",[709,4748,4749,4752,4754],{"class":711,"line":1194},[709,4750,4751],{"class":719},"]",[709,4753,4718],{"class":745},[709,4755,756],{"class":745},[709,4757,4758,4760,4763],{"class":711,"line":1900},[709,4759,4690],{"class":745},[709,4761,4762],{"class":4693},"body",[709,4764,756],{"class":745},[709,4766,4767,4769,4772,4775,4777,4779,4782,4784,4787,4789,4791,4794,4796,4799,4801,4803,4806,4808,4811,4813,4815,4818,4820,4823,4825],{"class":711,"line":1906},[709,4768,4690],{"class":745},[709,4770,4771],{"class":4693},"h1",[709,4773,4774],{"class":1083}," id",[709,4776,4702],{"class":745},[709,4778,1080],{"class":745},[709,4780,4781],{"class":719},"hero",[709,4783,1080],{"class":745},[709,4785,4786],{"class":1083}," class",[709,4788,4702],{"class":745},[709,4790,1080],{"class":745},[709,4792,4793],{"class":719},"clip",[709,4795,1080],{"class":745},[709,4797,4798],{"class":1083}," data-start",[709,4800,4702],{"class":745},[709,4802,1080],{"class":745},[709,4804,4805],{"class":719},"0",[709,4807,1080],{"class":745},[709,4809,4810],{"class":1083}," data-duration",[709,4812,4702],{"class":745},[709,4814,1080],{"class":745},[709,4816,4817],{"class":719},"3",[709,4819,1080],{"class":745},[709,4821,4822],{"class":745},">\u003C\u002F",[709,4824,4771],{"class":4693},[709,4826,756],{"class":745},[709,4828,4829,4831,4834],{"class":711,"line":2123},[709,4830,4690],{"class":745},[709,4832,4833],{"class":4693},"script",[709,4835,756],{"class":745},[709,4837,4838,4841,4844,4846,4849,4852,4855,4857,4860,4863],{"class":711,"line":2652},[709,4839,4840],{"class":1083},"const",[709,4842,4843],{"class":752}," vars ",[709,4845,4702],{"class":745},[709,4847,4848],{"class":752}," window",[709,4850,4851],{"class":745},".",[709,4853,4854],{"class":752},"__hyperframes",[709,4856,4851],{"class":745},[709,4858,4859],{"class":1293},"getVariables",[709,4861,4862],{"class":752},"()",[709,4864,4865],{"class":745},";\n",[709,4867,4868,4871,4873,4876,4879,4881,4883,4885,4888,4890,4893,4895,4898,4900,4903],{"class":711,"line":2658},[709,4869,4870],{"class":752},"document",[709,4872,4851],{"class":745},[709,4874,4875],{"class":1293},"getElementById",[709,4877,4878],{"class":752},"(",[709,4880,1080],{"class":745},[709,4882,4781],{"class":719},[709,4884,1080],{"class":745},[709,4886,4887],{"class":752},")",[709,4889,4851],{"class":745},[709,4891,4892],{"class":752},"textContent ",[709,4894,4702],{"class":745},[709,4896,4897],{"class":752}," vars",[709,4899,4851],{"class":745},[709,4901,4902],{"class":752},"title",[709,4904,4865],{"class":745},[709,4906,4907,4909,4911,4913,4915,4918,4920,4923,4925,4927,4929,4932],{"class":711,"line":2684},[709,4908,4870],{"class":752},[709,4910,4851],{"class":745},[709,4912,4762],{"class":752},[709,4914,4851],{"class":745},[709,4916,4917],{"class":752},"dataset",[709,4919,4851],{"class":745},[709,4921,4922],{"class":752},"theme ",[709,4924,4702],{"class":745},[709,4926,4897],{"class":752},[709,4928,4851],{"class":745},[709,4930,4931],{"class":752},"theme",[709,4933,4865],{"class":745},[709,4935,4936,4939,4941],{"class":711,"line":2689},[709,4937,4938],{"class":745},"\u003C\u002F",[709,4940,4833],{"class":4693},[709,4942,756],{"class":745},[709,4944,4945,4947,4949],{"class":711,"line":2695},[709,4946,4938],{"class":745},[709,4948,4762],{"class":4693},[709,4950,756],{"class":745},[709,4952,4953,4955,4957],{"class":711,"line":2722},[709,4954,4938],{"class":745},[709,4956,4683],{"class":4693},[709,4958,756],{"class":745},[700,4960,4962],{"className":702,"code":4961,"language":704,"meta":705,"style":705},"# 使用声明的默认值渲染（预览也使用默认值）\nnpx hyperframes render --output default.mp4\n\n# 在渲染时覆盖 — 缺失的键回退到声明的默认值\nnpx hyperframes render --variables '{\"title\":\"Q4 Report\",\"theme\":\"dark\"}' --output q4.mp4\n\n# 从 JSON 文件传递值\nnpx hyperframes render --variables-file .\u002Fvars.json --output out.mp4\n",[695,4963,4964,4969,4982,4986,4991,5015,5019,5024],{"__ignoreMap":705},[709,4965,4966],{"class":711,"line":712},[709,4967,4968],{"class":732},"# 使用声明的默认值渲染（预览也使用默认值）\n",[709,4970,4971,4973,4975,4977,4979],{"class":711,"line":729},[709,4972,739],{"class":715},[709,4974,742],{"class":719},[709,4976,962],{"class":719},[709,4978,965],{"class":719},[709,4980,4981],{"class":719}," default.mp4\n",[709,4983,4984],{"class":711,"line":736},[709,4985,1027],{"emptyLinePlaceholder":1026},[709,4987,4988],{"class":711,"line":984},[709,4989,4990],{"class":732},"# 在渲染时覆盖 — 缺失的键回退到声明的默认值\n",[709,4992,4993,4995,4997,4999,5002,5005,5008,5010,5012],{"class":711,"line":1035},[709,4994,739],{"class":715},[709,4996,742],{"class":719},[709,4998,962],{"class":719},[709,5000,5001],{"class":719}," --variables",[709,5003,5004],{"class":745}," '",[709,5006,5007],{"class":719},"{\"title\":\"Q4 Report\",\"theme\":\"dark\"}",[709,5009,4718],{"class":745},[709,5011,965],{"class":719},[709,5013,5014],{"class":719}," q4.mp4\n",[709,5016,5017],{"class":711,"line":1152},[709,5018,1027],{"emptyLinePlaceholder":1026},[709,5020,5021],{"class":711,"line":1173},[709,5022,5023],{"class":732},"# 从 JSON 文件传递值\n",[709,5025,5026,5028,5030,5032,5035,5038,5040],{"class":711,"line":1188},[709,5027,739],{"class":715},[709,5029,742],{"class":719},[709,5031,962],{"class":719},[709,5033,5034],{"class":719}," --variables-file",[709,5036,5037],{"class":719}," .\u002Fvars.json",[709,5039,965],{"class":719},[709,5041,5042],{"class":719}," out.mp4\n",[692,5044,5045,5048,5049,5051],{},[695,5046,5047],{},"getVariables()"," 返回声明的默认值与任何 ",[695,5050,4600],{}," 覆盖的合并结果，因此相同的合在开发预览和生产渲染中无需更改即可运行。",[4673,5053,5055],{"id":5054},"webm-透明度","WebM 透明度",[692,5057,5058,5059,5062],{},"使用 ",[695,5060,5061],{},"--format webm"," 渲染带透明背景的合成。这会产生带有 alpha 通道的 VP9 视频，封装在 WebM 容器中 — 这是可叠加视频的标准格式。",[700,5064,5066],{"className":702,"code":5065,"language":704,"meta":705,"style":705},"# 渲染带透明背景的字幕覆盖层\nnpx hyperframes render --format webm --output captions.webm\n\n# 使用 FFmpeg 叠加到另一个视频上\nffmpeg -c:v libvpx-vp9 -i captions.webm -i background.mp4 \\\n-filter_complex \"[1:v][0:v]overlay=0:0\" -y composited.mp4\n",[695,5067,5068,5073,5090,5094,5099,5123],{"__ignoreMap":705},[709,5069,5070],{"class":711,"line":712},[709,5071,5072],{"class":732},"# 渲染带透明背景的字幕覆盖层\n",[709,5074,5075,5077,5079,5081,5083,5085,5087],{"class":711,"line":729},[709,5076,739],{"class":715},[709,5078,742],{"class":719},[709,5080,962],{"class":719},[709,5082,4237],{"class":719},[709,5084,4240],{"class":719},[709,5086,965],{"class":719},[709,5088,5089],{"class":719}," captions.webm\n",[709,5091,5092],{"class":711,"line":736},[709,5093,1027],{"emptyLinePlaceholder":1026},[709,5095,5096],{"class":711,"line":984},[709,5097,5098],{"class":732},"# 使用 FFmpeg 叠加到另一个视频上\n",[709,5100,5101,5104,5107,5110,5113,5116,5118,5121],{"class":711,"line":1035},[709,5102,5103],{"class":715},"ffmpeg",[709,5105,5106],{"class":719}," -c:v",[709,5108,5109],{"class":719}," libvpx-vp9",[709,5111,5112],{"class":719}," -i",[709,5114,5115],{"class":719}," captions.webm",[709,5117,5112],{"class":719},[709,5119,5120],{"class":719}," background.mp4",[709,5122,3048],{"class":752},[709,5124,5125,5128,5130,5133,5135,5138],{"class":711,"line":1152},[709,5126,5127],{"class":752},"-filter_complex ",[709,5129,1080],{"class":745},[709,5131,5132],{"class":719},"[1:v][0:v]overlay=0:0",[709,5134,1080],{"class":745},[709,5136,5137],{"class":719}," -y",[709,5139,5140],{"class":719}," composited.mp4\n",[853,5142,5143,5147],{},[692,5144,857,5145],{},[764,5146,860],{},[692,5148,5149,5150,5153],{},"要使透明度生效，你的合成 HTML 应在根元素上使用 ",[695,5151,5152],{},"background: transparent","。WebM 渲染使用 PNG 帧捕获（而非 JPEG）以保留 alpha 通道。",[692,5155,1274,5156,5158],{},[831,5157,104],{"href":105},"了解所有选项和模式。",[916,5160,5162],{"id":5161},"benchmark",[695,5163,5161],{},[692,5165,5166],{},"为你的系统找到最优的渲染设置：",[700,5168,5170],{"className":702,"code":5169,"language":704,"meta":705,"style":705},"npx hyperframes benchmark [dir]\n",[695,5171,5172],{"__ignoreMap":705},[709,5173,5174,5176,5178,5181],{"class":711,"line":712},[709,5175,739],{"class":715},[709,5177,742],{"class":719},[709,5179,5180],{"class":719}," benchmark",[709,5182,3529],{"class":752},[1507,5184,5185,5197],{},[1510,5186,5187],{},[1513,5188,5189,5191,5193,5195],{},[1516,5190,1518],{},[1516,5192,4337],{},[1516,5194,4340],{},[1516,5196,1521],{},[1523,5198,5199,5214],{},[1513,5200,5201,5206,5209,5211],{},[1528,5202,5203],{},[695,5204,5205],{},"--runs",[1528,5207,5208],{},"1-20",[1528,5210,4817],{},[1528,5212,5213],{},"每个配置的运行次数",[1513,5215,5216,5220,5222,5224],{},[1528,5217,5218],{},[695,5219,1059],{},[1528,5221,4421],{},[1528,5223,4497],{},[1528,5225,2420],{},[692,5227,5228],{},"运行多个渲染配置（变化的 fps、质量和 worker 数量），并比较每种组合的耗时和文件大小。",[916,5230,5231],{"id":5231},"工具",[916,5233,5234],{"id":819},[695,5235,819],{},[692,5237,5238],{},"检查你的环境中所需的依赖项：",[700,5240,5242],{"className":702,"code":5241,"language":704,"meta":705,"style":705},"npx hyperframes doctor\n",[695,5243,5244],{"__ignoreMap":705},[709,5245,5246,5248,5250],{"class":711,"line":712},[709,5247,739],{"class":715},[709,5249,742],{"class":719},[709,5251,5252],{"class":719}," doctor\n",[700,5254,5257],{"className":5255,"code":5256,"language":1214},[1212],"hyperframes doctor\n\n✓ Version          0.1.4 (latest)\n✓ Node.js          v22.x (linux x64)\n✓ FFmpeg            7.x\n✓ FFprobe           7.x\n✓ Chrome            (system or cached)\n✓ Docker            24.x\n✓ Docker running    Running\n\n◇  All checks passed\n",[695,5258,5256],{"__ignoreMap":705},[1507,5260,5261,5269],{},[1510,5262,5263],{},[1513,5264,5265,5267],{},[1516,5266,1518],{},[1516,5268,1521],{},[1523,5270,5271],{},[1513,5272,5273,5277],{},[1528,5274,5275],{},[695,5276,1059],{},[1528,5278,5279,5280,5282],{},"以 JSON 格式输出（包含 ",[695,5281,1052],{}," 信封）",[692,5284,5285],{},"验证 CLI 版本、Node.js、FFmpeg、FFprobe、Chrome 和 Docker 可用性。如果有更新的 CLI 版本可用，版本行会显示升级提示。",[692,5287,5288,5291,5292,5295,5296,5299,5300,5303,5304,5307,5308,5311],{},[764,5289,5290],{},"CI 门控。"," ",[695,5293,5294],{},"hyperframes doctor --json"," 在成功执行时始终以 0 退出 — 如果命令产生了有效输出就表示成功。环境是否健康承载在有效载荷的 ",[695,5297,5298],{},"ok"," 字段中，因此新的 CLI 版本（将 ",[695,5301,5302],{},"Version.ok"," 翻转为 ",[695,5305,5306],{},"false","）永远不会破坏你的流水线。通过 ",[695,5309,5310],{},"jq"," 管道处理以基于有效载荷进行门控：",[700,5313,5315],{"className":702,"code":5314,"language":704,"meta":705,"style":705},"hyperframes doctor --json | jq -e '.ok' > \u002Fdev\u002Fnull || handle_failure\n",[695,5316,5317],{"__ignoreMap":705},[709,5318,5319,5321,5324,5327,5330,5333,5336,5338,5341,5343,5346,5349,5352],{"class":711,"line":712},[709,5320,697],{"class":715},[709,5322,5323],{"class":719}," doctor",[709,5325,5326],{"class":719}," --json",[709,5328,5329],{"class":745}," |",[709,5331,5332],{"class":715}," jq",[709,5334,5335],{"class":719}," -e",[709,5337,5004],{"class":745},[709,5339,5340],{"class":719},".ok",[709,5342,4718],{"class":745},[709,5344,5345],{"class":745}," >",[709,5347,5348],{"class":719}," \u002Fdev\u002Fnull",[709,5350,5351],{"class":745}," ||",[709,5353,5354],{"class":715}," handle_failure\n",[692,5356,5357,5358,1781,5361,5364,5365,5368],{},"JSON 模式下 ",[695,5359,5360],{},"detail",[695,5362,5363],{},"hint"," 中的路径被脱敏 — 用户的主目录替换为字面量 ",[695,5366,5367],{},"$HOME","，因此输出可以安全地粘贴到 bug 报告和 Agent 上下文中。",[916,5370,5372],{"id":5371},"info",[695,5373,5371],{},[692,5375,5376],{},"显示项目元数据：",[700,5378,5380],{"className":702,"code":5379,"language":704,"meta":705,"style":705},"npx hyperframes info [dir]\n",[695,5381,5382],{"__ignoreMap":705},[709,5383,5384,5386,5388,5391],{"class":711,"line":712},[709,5385,739],{"class":715},[709,5387,742],{"class":719},[709,5389,5390],{"class":719}," info",[709,5392,3529],{"class":752},[1507,5394,5395,5403],{},[1510,5396,5397],{},[1513,5398,5399,5401],{},[1516,5400,1518],{},[1516,5402,1521],{},[1523,5404,5405],{},[1513,5406,5407,5411],{},[1528,5408,5409],{},[695,5410,1059],{},[1528,5412,2250],{},[692,5414,5415],{},"显示项目名称、分辨率、时长、按类型统计的元素数量、轨道数量和项目总大小。",[916,5417,5419],{"id":5418},"upgrade",[695,5420,5418],{},[692,5422,5423],{},"检查更新并显示升级说明：",[700,5425,5427],{"className":702,"code":5426,"language":704,"meta":705,"style":705},"npx hyperframes upgrade\nnpx hyperframes upgrade --check         # 检查并退出（无提示）\nnpx hyperframes upgrade --check --json  # 机器可读的 Agent 友好格式\nnpx hyperframes upgrade --yes           # 显示升级命令而不提示\n",[695,5428,5429,5438,5451,5466],{"__ignoreMap":705},[709,5430,5431,5433,5435],{"class":711,"line":712},[709,5432,739],{"class":715},[709,5434,742],{"class":719},[709,5436,5437],{"class":719}," upgrade\n",[709,5439,5440,5442,5444,5446,5448],{"class":711,"line":729},[709,5441,739],{"class":715},[709,5443,742],{"class":719},[709,5445,991],{"class":719},[709,5447,994],{"class":719},[709,5449,5450],{"class":732},"         # 检查并退出（无提示）\n",[709,5452,5453,5455,5457,5459,5461,5463],{"class":711,"line":736},[709,5454,739],{"class":715},[709,5456,742],{"class":719},[709,5458,991],{"class":719},[709,5460,994],{"class":719},[709,5462,5326],{"class":719},[709,5464,5465],{"class":732},"  # 机器可读的 Agent 友好格式\n",[709,5467,5468,5470,5472,5474,5477],{"class":711,"line":984},[709,5469,739],{"class":715},[709,5471,742],{"class":719},[709,5473,991],{"class":719},[709,5475,5476],{"class":719}," --yes",[709,5478,5479],{"class":732},"           # 显示升级命令而不提示\n",[1507,5481,5482,5490],{},[1510,5483,5484],{},[1513,5485,5486,5488],{},[1516,5487,1518],{},[1516,5489,1521],{},[1523,5491,5492,5502,5512],{},[1513,5493,5494,5499],{},[1528,5495,5496],{},[695,5497,5498],{},"--check",[1528,5500,5501],{},"检查更新并退出（无提示，Agent 友好）",[1513,5503,5504,5508],{},[1528,5505,5506],{},[695,5507,1059],{},[1528,5509,5279,5510,5282],{},[695,5511,1052],{},[1513,5513,5514,5519],{},[1528,5515,5516],{},[695,5517,5518],{},"--yes, -y",[1528,5520,5521],{},"显示升级命令而不提示",[692,5523,5524,5525,5528],{},"将你安装的版本与 npm 上的最新版本进行比较。使用 ",[695,5526,5527],{},"--check --json"," 返回：",[700,5530,5532],{"className":1066,"code":5531,"language":1068,"meta":705,"style":705},"{\n\"current\": \"0.1.4\",\n\"latest\": \"0.1.5\",\n\"updateAvailable\": true,\n\"_meta\": { \"version\": \"0.1.4\", \"latestVersion\": \"0.1.5\", \"updateAvailable\": true }\n}\n",[695,5533,5534,5538,5557,5576,5589,5649],{"__ignoreMap":705},[709,5535,5536],{"class":711,"line":712},[709,5537,1075],{"class":745},[709,5539,5540,5542,5545,5547,5549,5551,5553,5555],{"class":711,"line":729},[709,5541,1080],{"class":745},[709,5543,5544],{"class":1083},"current",[709,5546,1080],{"class":745},[709,5548,1089],{"class":745},[709,5550,1092],{"class":745},[709,5552,1145],{"class":719},[709,5554,1080],{"class":745},[709,5556,1100],{"class":745},[709,5558,5559,5561,5564,5566,5568,5570,5572,5574],{"class":711,"line":736},[709,5560,1080],{"class":745},[709,5562,5563],{"class":1083},"latest",[709,5565,1080],{"class":745},[709,5567,1089],{"class":745},[709,5569,1092],{"class":745},[709,5571,1166],{"class":719},[709,5573,1080],{"class":745},[709,5575,1100],{"class":745},[709,5577,5578,5580,5582,5584,5586],{"class":711,"line":984},[709,5579,1080],{"class":745},[709,5581,1178],{"class":1083},[709,5583,1080],{"class":745},[709,5585,1089],{"class":745},[709,5587,5588],{"class":745}," true,\n",[709,5590,5591,5593,5595,5597,5599,5602,5604,5606,5608,5610,5612,5614,5616,5619,5621,5623,5625,5627,5629,5631,5633,5635,5637,5639,5641,5643,5646],{"class":711,"line":1035},[709,5592,1080],{"class":745},[709,5594,1052],{"class":1083},[709,5596,1080],{"class":745},[709,5598,1089],{"class":745},[709,5600,5601],{"class":745}," {",[709,5603,1092],{"class":745},[709,5605,1136],{"class":715},[709,5607,1080],{"class":745},[709,5609,1089],{"class":745},[709,5611,1092],{"class":745},[709,5613,1145],{"class":719},[709,5615,1080],{"class":745},[709,5617,5618],{"class":745},",",[709,5620,1092],{"class":745},[709,5622,1157],{"class":715},[709,5624,1080],{"class":745},[709,5626,1089],{"class":745},[709,5628,1092],{"class":745},[709,5630,1166],{"class":719},[709,5632,1080],{"class":745},[709,5634,5618],{"class":745},[709,5636,1092],{"class":745},[709,5638,1178],{"class":715},[709,5640,1080],{"class":745},[709,5642,1089],{"class":745},[709,5644,5645],{"class":745}," true",[709,5647,5648],{"class":745}," }\n",[709,5650,5651],{"class":711,"line":1152},[709,5652,1191],{"class":745},[916,5654,5656],{"id":5655},"browser",[695,5657,5655],{},[692,5659,5660],{},"管理用于渲染的 Chrome 浏览器：",[700,5662,5664],{"className":702,"code":5663,"language":704,"meta":705,"style":705},"# 查找或下载 Chrome 用于渲染\nnpx hyperframes browser ensure\n\n# 打印浏览器可执行文件路径（用于脚本）\nnpx hyperframes browser path\n\n# 移除缓存的 Chrome 下载\nnpx hyperframes browser clear\n",[695,5665,5666,5671,5683,5687,5692,5703,5707,5712],{"__ignoreMap":705},[709,5667,5668],{"class":711,"line":712},[709,5669,5670],{"class":732},"# 查找或下载 Chrome 用于渲染\n",[709,5672,5673,5675,5677,5680],{"class":711,"line":729},[709,5674,739],{"class":715},[709,5676,742],{"class":719},[709,5678,5679],{"class":719}," browser",[709,5681,5682],{"class":719}," ensure\n",[709,5684,5685],{"class":711,"line":736},[709,5686,1027],{"emptyLinePlaceholder":1026},[709,5688,5689],{"class":711,"line":984},[709,5690,5691],{"class":732},"# 打印浏览器可执行文件路径（用于脚本）\n",[709,5693,5694,5696,5698,5700],{"class":711,"line":1035},[709,5695,739],{"class":715},[709,5697,742],{"class":719},[709,5699,5679],{"class":719},[709,5701,5702],{"class":719}," path\n",[709,5704,5705],{"class":711,"line":1152},[709,5706,1027],{"emptyLinePlaceholder":1026},[709,5708,5709],{"class":711,"line":1173},[709,5710,5711],{"class":732},"# 移除缓存的 Chrome 下载\n",[709,5713,5714,5716,5718,5720],{"class":711,"line":1188},[709,5715,739],{"class":715},[709,5717,742],{"class":719},[709,5719,5679],{"class":719},[709,5721,5722],{"class":719}," clear\n",[692,5724,5725,5728,5729,1998],{},[695,5726,5727],{},"path"," 子命令仅输出路径，在脚本中很有用：",[695,5730,5731],{},"$(npx hyperframes browser path)",[916,5733,5735],{"id":5734},"docs",[695,5736,5734],{},[692,5738,5739],{},"在终端中查看内联文档：",[700,5741,5743],{"className":702,"code":5742,"language":704,"meta":705,"style":705},"npx hyperframes docs [topic]\n",[695,5744,5745],{"__ignoreMap":705},[709,5746,5747,5749,5751,5754],{"class":711,"line":712},[709,5748,739],{"class":715},[709,5750,742],{"class":719},[709,5752,5753],{"class":719}," docs",[709,5755,5756],{"class":752}," [topic]\n",[692,5758,5759,5760,882,5763,882,5766,882,5769,882,5772,882,5775,5777],{},"可用主题：",[695,5761,5762],{},"data-attributes",[695,5764,5765],{},"examples",[695,5767,5768],{},"rendering",[695,5770,5771],{},"gsap",[695,5773,5774],{},"troubleshooting",[695,5776,2210],{},"。不带主题运行可查看完整列表。",[916,5779,5781],{"id":5780},"feedback",[695,5782,5780],{},[692,5784,5785],{},"提交关于你体验的匿名满意度反馈：",[700,5787,5789],{"className":702,"code":5788,"language":704,"meta":705,"style":705},"# 快速评分（1 = 差，5 = 好）\nnpx hyperframes feedback --rating 5\n\n# 评分附带可选详情\nnpx hyperframes feedback --rating 3 --comment \"render succeeded but GSAP timeline didn't animate\"\n",[695,5790,5791,5796,5811,5815,5820],{"__ignoreMap":705},[709,5792,5793],{"class":711,"line":712},[709,5794,5795],{"class":732},"# 快速评分（1 = 差，5 = 好）\n",[709,5797,5798,5800,5802,5805,5808],{"class":711,"line":729},[709,5799,739],{"class":715},[709,5801,742],{"class":719},[709,5803,5804],{"class":719}," feedback",[709,5806,5807],{"class":719}," --rating",[709,5809,5810],{"class":974}," 5\n",[709,5812,5813],{"class":711,"line":736},[709,5814,1027],{"emptyLinePlaceholder":1026},[709,5816,5817],{"class":711,"line":984},[709,5818,5819],{"class":732},"# 评分附带可选详情\n",[709,5821,5822,5824,5826,5828,5830,5833,5836,5838,5841],{"class":711,"line":1035},[709,5823,739],{"class":715},[709,5825,742],{"class":719},[709,5827,5804],{"class":719},[709,5829,5807],{"class":719},[709,5831,5832],{"class":974}," 3",[709,5834,5835],{"class":719}," --comment",[709,5837,1092],{"class":745},[709,5839,5840],{"class":719},"render succeeded but GSAP timeline didn't animate",[709,5842,2551],{"class":745},[1507,5844,5845,5853],{},[1510,5846,5847],{},[1513,5848,5849,5851],{},[1516,5850,1518],{},[1516,5852,1521],{},[1523,5854,5855,5865],{},[1513,5856,5857,5862],{},[1528,5858,5859],{},[695,5860,5861],{},"--rating",[1528,5863,5864],{},"满意度分数，1-5（必需）",[1513,5866,5867,5872],{},[1528,5868,5869],{},[695,5870,5871],{},"--comment",[1528,5873,5874],{},"可选的自由文本详情",[692,5876,5877,5878,5881],{},"此命令在渲染后也对 AI Agent 可用 — 参见",[831,5879,140],{"href":5880},"\u002Fguides\u002Ffeedback#agent-%E8%BF%90%E8%A1%8C%E6%97%B6","了解 Agent 检测和自动渲染后提示的工作原理。",[692,5883,5884,5885,5888],{},"当遥测被禁用时不执行任何操作 — 打印 ",[695,5886,5887],{},"Telemetry is disabled. Feedback not sent."," 并正常退出。",[916,5890,5892],{"id":5891},"telemetry",[695,5893,5891],{},[692,5895,5896],{},"管理匿名使用遥测：",[700,5898,5900],{"className":702,"code":5899,"language":704,"meta":705,"style":705},"npx hyperframes telemetry enable\nnpx hyperframes telemetry disable\nnpx hyperframes telemetry status\n",[695,5901,5902,5914,5925],{"__ignoreMap":705},[709,5903,5904,5906,5908,5911],{"class":711,"line":712},[709,5905,739],{"class":715},[709,5907,742],{"class":719},[709,5909,5910],{"class":719}," telemetry",[709,5912,5913],{"class":719}," enable\n",[709,5915,5916,5918,5920,5922],{"class":711,"line":729},[709,5917,739],{"class":715},[709,5919,742],{"class":719},[709,5921,5910],{"class":719},[709,5923,5924],{"class":719}," disable\n",[709,5926,5927,5929,5931,5933],{"class":711,"line":736},[709,5928,739],{"class":715},[709,5930,742],{"class":719},[709,5932,5910],{"class":719},[709,5934,5935],{"class":719}," status\n",[692,5937,5938,5939,5942,5943,3211,5946,3211,5949,5952,5953,5956,5957,5960],{},"遥测收集命令名称、渲染性能、示例选择和系统信息 — 包括粗略的环境指纹（操作系统、内核字符串、CPU\u002F内存规格、沙箱运行时如 gVisor 或 Docker，以及驱动 CLI 的编码 Agent 的",[3584,5940,5941],{},"名称","，例如 ",[695,5944,5945],{},"claude_code",[695,5947,5948],{},"codex",[695,5950,5951],{},"cursor","）。Agent 名称从知名环境变量的存在性推导；它们的值从不被读取。遥测",[764,5954,5955],{},"不","收集文件路径、项目名称、视频内容、环境变量值或个人身份信息。使用 ",[695,5958,5959],{},"HYPERFRAMES_NO_TELEMETRY=1"," 或上述命令禁用。",[692,5962,1274,5963,5965],{},[831,5964,140],{"href":141},"了解周期性渲染后提示和 Studio 反馈栏的工作原理、它们收集的数据以及如何选择退出。",[916,5967,5968],{"id":1797},[695,5969,1797],{},[692,5971,5972],{},"为 AI 编程工具安装 HyperFrames 技能，包括一方运行时适配器技能：",[700,5974,5976],{"className":702,"code":5975,"language":704,"meta":705,"style":705},"# 安装到所有默认目标（Claude Code、Gemini CLI、Codex CLI）\nnpx hyperframes skills\n\n# 安装到特定工具\nnpx hyperframes skills --claude\nnpx hyperframes skills --cursor\nnpx hyperframes skills --claude --gemini\n",[695,5977,5978,5983,5992,5996,6001,6013,6024],{"__ignoreMap":705},[709,5979,5980],{"class":711,"line":712},[709,5981,5982],{"class":732},"# 安装到所有默认目标（Claude Code、Gemini CLI、Codex CLI）\n",[709,5984,5985,5987,5989],{"class":711,"line":729},[709,5986,739],{"class":715},[709,5988,742],{"class":719},[709,5990,5991],{"class":719}," skills\n",[709,5993,5994],{"class":711,"line":736},[709,5995,1027],{"emptyLinePlaceholder":1026},[709,5997,5998],{"class":711,"line":984},[709,5999,6000],{"class":732},"# 安装到特定工具\n",[709,6002,6003,6005,6007,6010],{"class":711,"line":1035},[709,6004,739],{"class":715},[709,6006,742],{"class":719},[709,6008,6009],{"class":719}," skills",[709,6011,6012],{"class":719}," --claude\n",[709,6014,6015,6017,6019,6021],{"class":711,"line":1152},[709,6016,739],{"class":715},[709,6018,742],{"class":719},[709,6020,6009],{"class":719},[709,6022,6023],{"class":719}," --cursor\n",[709,6025,6026,6028,6030,6032,6035],{"class":711,"line":1173},[709,6027,739],{"class":715},[709,6029,742],{"class":719},[709,6031,6009],{"class":719},[709,6033,6034],{"class":719}," --claude",[709,6036,6037],{"class":719}," --gemini\n",[1507,6039,6040,6048],{},[1510,6041,6042],{},[1513,6043,6044,6046],{},[1516,6045,1518],{},[1516,6047,1521],{},[1523,6049,6050,6063,6076,6089],{},[1513,6051,6052,6057],{},[1528,6053,6054],{},[695,6055,6056],{},"--claude",[1528,6058,6059,6060,777],{},"安装到 Claude Code（",[695,6061,6062],{},"~\u002F.claude\u002Fskills\u002F",[1513,6064,6065,6070],{},[1528,6066,6067],{},[695,6068,6069],{},"--gemini",[1528,6071,6072,6073,777],{},"安装到 Gemini CLI（",[695,6074,6075],{},"~\u002F.gemini\u002Fskills\u002F",[1513,6077,6078,6083],{},[1528,6079,6080],{},[695,6081,6082],{},"--codex",[1528,6084,6085,6086,777],{},"安装到 Codex CLI（",[695,6087,6088],{},"~\u002F.codex\u002Fskills\u002F",[1513,6090,6091,6096],{},[1528,6092,6093],{},[695,6094,6095],{},"--cursor",[1528,6097,6098,6099,777],{},"安装到 Cursor（当前项目中的 ",[695,6100,6101],{},".cursor\u002Fskills\u002F",[692,6103,6104,6105,6107],{},"技能从 GitHub 获取，包括合成编写、Tailwind v4 浏览器运行时指导、GSAP 动画模式、Anime.js、CSS 动画、Lottie、Three.js 和 WAAPI 适配器模式、注册表块\u002F组件接线以及其他领域特定知识。",[695,6106,783],{}," 命令在脚手架化项目后也会提供自动安装技能的选项。",[4673,6109,6111,6112],{"id":6110},"故障排查fatal-active-post-checkout-hook-found-during-git-clone","故障排查：",[695,6113,6114],{},"fatal: active post-checkout hook found during git clone",[692,6116,6117,6118,6121,6122,6125,6126,6128],{},"如果你全局安装了 Git LFS（",[695,6119,6120],{},"git lfs install","），Git 2.45+ 会在任何 ",[695,6123,6124],{},"git clone"," 期间拒绝运行 LFS post-checkout hook — 包括上游 ",[695,6127,1797],{}," CLI 底层执行的克隆。错误如下：",[700,6130,6133],{"className":6131,"code":6132,"language":1214},[1212],"■  Failed to clone repository\nfatal: active `post-checkout` hook found during `git clone`\n└  Installation failed\n",[695,6134,6132],{"__ignoreMap":705},[692,6136,6137,6143,6144,6147],{},[764,6138,5058,6139,6142],{},[695,6140,6141],{},"hyperframes skills"," 已经没问题"," — 从 v0.4.5 开始，CLI 在子环境上设置 ",[695,6145,6146],{},"GIT_CLONE_PROTECTION_ACTIVE=0","，这是 Git 为此场景提供的选择启用选项。你不需要做任何事情。",[692,6149,6150,6156],{},[764,6151,6152,6153],{},"如果你直接运行了 ",[695,6154,6155],{},"npx skills add heygen-com\u002Fhyperframes","（绕过 HyperFrames CLI），请自行设置环境变量：",[700,6158,6160],{"className":702,"code":6159,"language":704,"meta":705,"style":705},"GIT_CLONE_PROTECTION_ACTIVE=0 npx skills add heygen-com\u002Fhyperframes\n",[695,6161,6162],{"__ignoreMap":705},[709,6163,6164,6167,6169,6171,6174,6176,6178],{"class":711,"line":712},[709,6165,6166],{"class":752},"GIT_CLONE_PROTECTION_ACTIVE",[709,6168,4702],{"class":745},[709,6170,4805],{"class":719},[709,6172,6173],{"class":715}," npx",[709,6175,6009],{"class":719},[709,6177,1844],{"class":719},[709,6179,6180],{"class":719}," heygen-com\u002Fhyperframes\n",[692,6182,6183,6184,6190,6191,6193],{},"此问题在 ",[831,6185,6189],{"href":6186,"rel":6187},"https:\u002F\u002Fgithub.com\u002Fheygen-com\u002Fhyperframes\u002Fissues\u002F316",[6188],"nofollow","GH #316"," 中跟踪。",[695,6192,1797],{}," CLI 本身的上游修复才是正确的长期方案；在此之前，环境变量是正确的变通方法。",[758,6195,6197],{"id":6196},"hyperframes-auth","hyperframes auth",[692,6199,6200,6201,6204,6205,6208,6209,6216],{},"登录 HeyGen 并管理凭证。凭证存储在 ",[695,6202,6203],{},"~\u002F.heygen\u002Fcredentials","（模式 ",[695,6206,6207],{},"0600","），并且",[764,6210,6211,6212,6215],{},"与 ",[695,6213,6214],{},"heygen"," CLI 共享"," — 用一个登录，另一个会获取会话。",[692,6218,6219],{},"解析顺序（首次匹配优先）：",[3597,6221,6222,6228,6234],{},[771,6223,6224,6227],{},[695,6225,6226],{},"HEYGEN_API_KEY"," 环境变量",[771,6229,6230,6233],{},[695,6231,6232],{},"HYPERFRAMES_API_KEY"," 环境变量（hyperframes 别名）",[771,6235,6236],{},[695,6237,6203],{},[916,6239,6240],{"id":6240},"子命令",[4673,6242,6244],{"id":6243},"auth-login-api-key",[695,6245,6246],{},"auth login --api-key",[692,6248,6249,6250,6253],{},"保存 HeyGen API 密钥。密钥会在命令报告成功前通过 ",[695,6251,6252],{},"GET \u002Fv3\u002Fusers\u002Fme"," 验证；被拒绝的密钥不会留在磁盘上。",[700,6255,6257],{"className":702,"code":6256,"language":704,"meta":705,"style":705},"# 交互式隐藏输入提示\nhyperframes auth login --api-key\n\n# 从 stdin 管道传入密钥（CI 友好）\necho \"$HEYGEN_API_KEY\" | hyperframes auth login --api-key\n",[695,6258,6259,6264,6277,6281,6286],{"__ignoreMap":705},[709,6260,6261],{"class":711,"line":712},[709,6262,6263],{"class":732},"# 交互式隐藏输入提示\n",[709,6265,6266,6268,6271,6274],{"class":711,"line":729},[709,6267,697],{"class":715},[709,6269,6270],{"class":719}," auth",[709,6272,6273],{"class":719}," login",[709,6275,6276],{"class":719}," --api-key\n",[709,6278,6279],{"class":711,"line":736},[709,6280,1027],{"emptyLinePlaceholder":1026},[709,6282,6283],{"class":711,"line":984},[709,6284,6285],{"class":732},"# 从 stdin 管道传入密钥（CI 友好）\n",[709,6287,6288,6291,6293,6296,6298,6300,6302,6304,6306],{"class":711,"line":1035},[709,6289,6290],{"class":1293},"echo",[709,6292,1092],{"class":745},[709,6294,6295],{"class":752},"$HEYGEN_API_KEY",[709,6297,1080],{"class":745},[709,6299,5329],{"class":745},[709,6301,742],{"class":715},[709,6303,6270],{"class":719},[709,6305,6273],{"class":719},[709,6307,6276],{"class":719},[4673,6309,6311],{"id":6310},"auth-status",[695,6312,6313],{},"auth status",[692,6315,6316],{},"显示活跃凭证的来源、类型和已验证身份（账户 + 计费快照）。未配置或 API 拒绝凭证时以非零退出，以便脚本可以检查登录状态。",[700,6318,6320],{"className":702,"code":6319,"language":704,"meta":705,"style":705},"hyperframes auth status\nhyperframes auth status --json   # 机器可读\n",[695,6321,6322,6330],{"__ignoreMap":705},[709,6323,6324,6326,6328],{"class":711,"line":712},[709,6325,697],{"class":715},[709,6327,6270],{"class":719},[709,6329,5935],{"class":719},[709,6331,6332,6334,6336,6339,6341],{"class":711,"line":729},[709,6333,697],{"class":715},[709,6335,6270],{"class":719},[709,6337,6338],{"class":719}," status",[709,6340,5326],{"class":719},[709,6342,6343],{"class":732},"   # 机器可读\n",[4673,6345,6347],{"id":6346},"auth-logout",[695,6348,6349],{},"auth logout",[692,6351,6352],{},"移除存储的凭证。在 TTY 上提示确认。",[700,6354,6356],{"className":702,"code":6355,"language":704,"meta":705,"style":705},"hyperframes auth logout\nhyperframes auth logout --keep-api-key   # 仅清除 OAuth 会话\nhyperframes auth logout --yes            # 跳过确认提示\n",[695,6357,6358,6367,6382],{"__ignoreMap":705},[709,6359,6360,6362,6364],{"class":711,"line":712},[709,6361,697],{"class":715},[709,6363,6270],{"class":719},[709,6365,6366],{"class":719}," logout\n",[709,6368,6369,6371,6373,6376,6379],{"class":711,"line":729},[709,6370,697],{"class":715},[709,6372,6270],{"class":719},[709,6374,6375],{"class":719}," logout",[709,6377,6378],{"class":719}," --keep-api-key",[709,6380,6381],{"class":732},"   # 仅清除 OAuth 会话\n",[709,6383,6384,6386,6388,6390,6392],{"class":711,"line":736},[709,6385,697],{"class":715},[709,6387,6270],{"class":719},[709,6389,6375],{"class":719},[709,6391,5476],{"class":719},[709,6393,6394],{"class":732},"            # 跳过确认提示\n",[916,6396,6397],{"id":6397},"环境变量",[1507,6399,6400,6408],{},[1510,6401,6402],{},[1513,6403,6404,6406],{},[1516,6405,46],{},[1516,6407,1521],{},[1523,6409,6410,6419,6430,6444],{},[1513,6411,6412,6416],{},[1528,6413,6414],{},[695,6415,6226],{},[1528,6417,6418],{},"覆盖存储的凭证。",[1513,6420,6421,6425],{},[1528,6422,6423],{},[695,6424,6232],{},[1528,6426,6427,6429],{},[695,6428,6226],{}," 的别名。",[1513,6431,6432,6437],{},[1528,6433,6434],{},[695,6435,6436],{},"HEYGEN_API_URL",[1528,6438,6439,6440,6443],{},"API 基础 URL（默认 ",[695,6441,6442],{},"https:\u002F\u002Fapi.heygen.com","）。",[1513,6445,6446,6451],{},[1528,6447,6448],{},[695,6449,6450],{},"HEYGEN_CONFIG_DIR",[1528,6452,6453,6454,6443],{},"凭证目录（默认 ",[695,6455,6456],{},"~\u002F.heygen",[758,6458,6460],{"id":6459},"hyperframes-cloud","hyperframes cloud",[692,6462,6463,6464,6467,6468,6471],{},"在 HeyGen 托管云上渲染 HyperFrames 合成 — 无需本地 Chrome、无需本地 ffmpeg、无需管理 AWS。使用 ",[695,6465,6466],{},"hyperframes auth login"," 登录一次，相同的凭证驱动所有 ",[695,6469,6470],{},"cloud"," 子命令。",[700,6473,6475],{"className":702,"code":6474,"language":704,"meta":705,"style":705},"hyperframes auth login                          # 一次性\nhyperframes cloud render .\u002Fmy-video             # 压缩 + 上传 + 轮询 + 下载\nhyperframes cloud render .\u002Fmy-video --no-wait   # 提交并以 render_id 退出\nhyperframes cloud list                          # 浏览最近的渲染\n",[695,6476,6477,6488,6503,6519],{"__ignoreMap":705},[709,6478,6479,6481,6483,6485],{"class":711,"line":712},[709,6480,697],{"class":715},[709,6482,6270],{"class":719},[709,6484,6273],{"class":719},[709,6486,6487],{"class":732},"                          # 一次性\n",[709,6489,6490,6492,6495,6497,6500],{"class":711,"line":729},[709,6491,697],{"class":715},[709,6493,6494],{"class":719}," cloud",[709,6496,962],{"class":719},[709,6498,6499],{"class":719}," .\u002Fmy-video",[709,6501,6502],{"class":732},"             # 压缩 + 上传 + 轮询 + 下载\n",[709,6504,6505,6507,6509,6511,6513,6516],{"class":711,"line":736},[709,6506,697],{"class":715},[709,6508,6494],{"class":719},[709,6510,962],{"class":719},[709,6512,6499],{"class":719},[709,6514,6515],{"class":719}," --no-wait",[709,6517,6518],{"class":732},"   # 提交并以 render_id 退出\n",[709,6520,6521,6523,6525,6528],{"class":711,"line":984},[709,6522,697],{"class":715},[709,6524,6494],{"class":719},[709,6526,6527],{"class":719}," list",[709,6529,6530],{"class":732},"                          # 浏览最近的渲染\n",[916,6532,6240],{"id":6533},"子命令-1",[4673,6535,6537],{"id":6536},"cloud-render-projectdir",[695,6538,6539],{},"cloud render [\u003CprojectDir>]",[692,6541,6542,6543,882,6546,882,6548,882,6551,882,6554,6557,6558,6561,6562,6565,6566,6569],{},"端到端渲染：压缩项目（排除 ",[695,6544,6545],{},".git",[695,6547,3616],{},[695,6549,6550],{},"dist",[695,6552,6553],{},".next",[695,6555,6556],{},"coverage","、点文件），通过 ",[695,6559,6560],{},"POST \u002Fv3\u002Fassets"," 上传，提交 ",[695,6563,6564],{},"POST \u002Fv3\u002Fhyperframes\u002Frenders","，轮询 ",[695,6567,6568],{},"GET \u002Fv3\u002Fhyperframes\u002Frenders\u002F{id}"," 直到渲染完成或失败，并将结果视频流式传输到磁盘。",[692,6571,6572,6573,6576],{},"渲染参数与本地 ",[695,6574,6575],{},"hyperframes render"," 的 UX 在重叠处保持一致：",[1507,6578,6579,6590],{},[1510,6580,6581],{},[1513,6582,6583,6585,6587],{},[1516,6584,1518],{},[1516,6586,4340],{},[1516,6588,6589],{},"含义",[1523,6591,6592,6605,6625,6645,6668,6685,6698,6712,6723,6735],{},[1513,6593,6594,6598,6602],{},[1528,6595,6596],{},[695,6597,4384],{},[1528,6599,6600],{},[695,6601,4390],{},[1528,6603,6604],{},"整数 1-240。",[1513,6606,6607,6611,6615],{},[1528,6608,6609],{},[695,6610,3187],{},[1528,6612,6613],{},[695,6614,4405],{},[1528,6616,6617,882,6620,1757,6622,1998],{},[695,6618,6619],{},"draft",[695,6621,4405],{},[695,6623,6624],{},"high",[1513,6626,6627,6631,6635],{},[1528,6628,6629],{},[695,6630,4368],{},[1528,6632,6633],{},[695,6634,4374],{},[1528,6636,6637,882,6639,1757,6642,1998],{},[695,6638,4374],{},[695,6640,6641],{},"webm",[695,6643,6644],{},"mov",[1513,6646,6647,6651,6654],{},[1528,6648,6649],{},[695,6650,1545],{},[1528,6652,6653],{},"合成默认值",[1528,6655,6656,882,6658,882,6660,882,6662,882,6664,882,6666,1998],{},[695,6657,1551],{},[695,6659,1555],{},[695,6661,1559],{},[695,6663,1563],{},[695,6665,1567],{},[695,6667,1571],{},[1513,6669,6670,6678,6682],{},[1528,6671,6672,3211,6675],{},[695,6673,6674],{},"--composition",[695,6676,6677],{},"-c",[1528,6679,6680],{},[695,6681,1311],{},[1528,6683,6684],{},"zip 内的入口 HTML 文件。",[1513,6686,6687,6691,6693],{},[1528,6688,6689],{},[695,6690,4600],{},[1528,6692,4421],{},[1528,6694,6695,6696,1998],{},"内联 JSON 对象覆盖 ",[695,6697,4611],{},[1513,6699,6700,6704,6706],{},[1528,6701,6702],{},[695,6703,4623],{},[1528,6705,4421],{},[1528,6707,6708,6709,6711],{},"JSON 文件路径（",[695,6710,4600],{}," 的替代方式）。",[1513,6713,6714,6718,6720],{},[1528,6715,6716],{},[695,6717,4640],{},[1528,6719,4497],{},[1528,6721,6722],{},"当变量未声明或类型错误时失败。",[1513,6724,6725,6730,6732],{},[1528,6726,6727],{},[695,6728,6729],{},"--title",[1528,6731,4421],{},[1528,6733,6734],{},"自由文本标签，在详细响应中回显。",[1513,6736,6737,6744,6749],{},[1528,6738,6739,3211,6741],{},[695,6740,888],{},[695,6742,6743],{},"-o",[1528,6745,6746],{},[695,6747,6748],{},"renders\u002F\u003Crender_id>.\u003Cext>",[1528,6750,6751],{},"下载视频的本地目标路径。",[692,6753,6754],{},"生命周期\u002F控制标志：",[1507,6756,6757,6765],{},[1510,6758,6759],{},[1513,6760,6761,6763],{},[1516,6762,1518],{},[1516,6764,6589],{},[1523,6766,6767,6781,6794,6804,6818,6830,6843,6856,6873],{},[1513,6768,6769,6774],{},[1528,6770,6771],{},[695,6772,6773],{},"--no-wait",[1528,6775,6776,6777,6780],{},"提交并立即退出；将 ",[695,6778,6779],{},"render_id"," 打印到 stdout。",[1513,6782,6783,6788],{},[1528,6784,6785],{},[695,6786,6787],{},"--callback-url",[1528,6789,6790,6791,6793],{},"渲染终止时触发的 HTTPS webhook（与 ",[695,6792,6773],{}," 组合使用）。",[1513,6795,6796,6801],{},[1528,6797,6798],{},[695,6799,6800],{},"--callback-id",[1528,6802,6803],{},"webhook 有效载荷中回显的不透明跟踪 ID。",[1513,6805,6806,6811],{},[1528,6807,6808],{},[695,6809,6810],{},"--asset-id",[1528,6812,6813,6814,6817],{},"跳过压缩+上传；提交已上传的合成。与项目目录和 ",[695,6815,6816],{},"--url"," 互斥。",[1513,6819,6820,6824],{},[1528,6821,6822],{},[695,6823,6816],{},[1528,6825,6826,6827,6829],{},"提交公共 HTTPS zip URL。与 ",[695,6828,6810],{}," 的互斥关系相同。",[1513,6831,6832,6837],{},[1528,6833,6834],{},[695,6835,6836],{},"--poll-interval",[1528,6838,6839,6840,6443],{},"轮询频率（秒）（默认 ",[695,6841,6842],{},"10",[1513,6844,6845,6850],{},[1528,6846,6847],{},[695,6848,6849],{},"--max-wait",[1528,6851,6852,6853,6443],{},"最大轮询时长（分钟）（默认 ",[695,6854,6855],{},"60",[1513,6857,6858,6863],{},[1528,6859,6860],{},[695,6861,6862],{},"--idempotency-key",[1528,6864,6865,6866,6869,6870,6443],{},"可选的 ",[695,6867,6868],{},"Idempotency-Key"," 用于安全重试（1-255 个字符，来自 ",[695,6871,6872],{},"[A-Za-z0-9_:.-]",[1513,6874,6875,6879],{},[1528,6876,6877],{},[695,6878,1059],{},[1528,6880,6881],{},"发出机器可读的 JSON 而非友好进度。",[700,6883,6885],{"className":702,"code":6884,"language":704,"meta":705,"style":705},"# 默认流程 — 渲染当前目录。\nhyperframes cloud render\n\n# 选择合成 + 输出路径。\nhyperframes cloud render . \\\n--composition compositions\u002Fintro.html \\\n--output .\u002Frenders\u002Fintro.mp4\n\n# 更高质量，60fps。\nhyperframes cloud render --quality high --fps 60\n\n# 使用 webhook 的即发即忘（无本地轮询）。\nhyperframes cloud render --callback-url https:\u002F\u002Fexample.com\u002Fhf-hook --no-wait\n\n# 重新渲染已上传的合成（跳过压缩 + 上传）。\nhyperframes cloud render --asset-id asst_abc123\n\n# 从公共 URL 渲染（无需上传）。\nhyperframes cloud render --url https:\u002F\u002Fcdn.example.com\u002Fsite.zip\n",[695,6886,6887,6892,6901,6905,6910,6923,6933,6941,6945,6950,6968,6972,6977,6994,6998,7003,7017,7021,7026],{"__ignoreMap":705},[709,6888,6889],{"class":711,"line":712},[709,6890,6891],{"class":732},"# 默认流程 — 渲染当前目录。\n",[709,6893,6894,6896,6898],{"class":711,"line":729},[709,6895,697],{"class":715},[709,6897,6494],{"class":719},[709,6899,6900],{"class":719}," render\n",[709,6902,6903],{"class":711,"line":736},[709,6904,1027],{"emptyLinePlaceholder":1026},[709,6906,6907],{"class":711,"line":984},[709,6908,6909],{"class":732},"# 选择合成 + 输出路径。\n",[709,6911,6912,6914,6916,6918,6921],{"class":711,"line":1035},[709,6913,697],{"class":715},[709,6915,6494],{"class":719},[709,6917,962],{"class":719},[709,6919,6920],{"class":719}," .",[709,6922,3048],{"class":752},[709,6924,6925,6928,6931],{"class":711,"line":1152},[709,6926,6927],{"class":752},"--composition ",[709,6929,6930],{"class":719},"compositions\u002Fintro.html",[709,6932,3048],{"class":752},[709,6934,6935,6938],{"class":711,"line":1173},[709,6936,6937],{"class":752},"--output ",[709,6939,6940],{"class":719},".\u002Frenders\u002Fintro.mp4\n",[709,6942,6943],{"class":711,"line":1188},[709,6944,1027],{"emptyLinePlaceholder":1026},[709,6946,6947],{"class":711,"line":1194},[709,6948,6949],{"class":732},"# 更高质量，60fps。\n",[709,6951,6952,6954,6956,6958,6960,6963,6965],{"class":711,"line":1900},[709,6953,697],{"class":715},[709,6955,6494],{"class":719},[709,6957,962],{"class":719},[709,6959,978],{"class":719},[709,6961,6962],{"class":719}," high",[709,6964,971],{"class":719},[709,6966,6967],{"class":974}," 60\n",[709,6969,6970],{"class":711,"line":1906},[709,6971,1027],{"emptyLinePlaceholder":1026},[709,6973,6974],{"class":711,"line":2123},[709,6975,6976],{"class":732},"# 使用 webhook 的即发即忘（无本地轮询）。\n",[709,6978,6979,6981,6983,6985,6988,6991],{"class":711,"line":2652},[709,6980,697],{"class":715},[709,6982,6494],{"class":719},[709,6984,962],{"class":719},[709,6986,6987],{"class":719}," --callback-url",[709,6989,6990],{"class":719}," https:\u002F\u002Fexample.com\u002Fhf-hook",[709,6992,6993],{"class":719}," --no-wait\n",[709,6995,6996],{"class":711,"line":2658},[709,6997,1027],{"emptyLinePlaceholder":1026},[709,6999,7000],{"class":711,"line":2684},[709,7001,7002],{"class":732},"# 重新渲染已上传的合成（跳过压缩 + 上传）。\n",[709,7004,7005,7007,7009,7011,7014],{"class":711,"line":2689},[709,7006,697],{"class":715},[709,7008,6494],{"class":719},[709,7010,962],{"class":719},[709,7012,7013],{"class":719}," --asset-id",[709,7015,7016],{"class":719}," asst_abc123\n",[709,7018,7019],{"class":711,"line":2695},[709,7020,1027],{"emptyLinePlaceholder":1026},[709,7022,7023],{"class":711,"line":2722},[709,7024,7025],{"class":732},"# 从公共 URL 渲染（无需上传）。\n",[709,7027,7028,7030,7032,7034,7037],{"class":711,"line":2727},[709,7029,697],{"class":715},[709,7031,6494],{"class":719},[709,7033,962],{"class":719},[709,7035,7036],{"class":719}," --url",[709,7038,7039],{"class":719}," https:\u002F\u002Fcdn.example.com\u002Fsite.zip\n",[7041,7042,7044,7045,7047],"h5",{"id":7043},"通过-idempotency-key-实现安全重试","通过 ",[695,7046,6862],{}," 实现安全重试",[692,7049,7050,7051,7054,7055,7057,7058,7061,7062,7064],{},"CLI 在遇到 ",[695,7052,7053],{},"401 Unauthorized"," 时会透明重试，通过强制刷新 OAuth 令牌并重放失败的请求。对于大多数读操作这是无害的，但 ",[695,7056,6560],{},"（zip 上传）本身",[3584,7059,7060],{},"不是","幂等的 — 没有 ",[695,7063,6868],{}," 的重试会创建重复资产并为工作区收取两次费用。",[692,7066,7067,7068,7071,7072,7075,7076,7078],{},"当你希望 ",[695,7069,7070],{},"cloud render"," 安全重试时，传入 ",[695,7073,7074],{},"--idempotency-key \u003Ckey>","。该密钥会转发到上传和提交调用；服务器按端点划分幂等性，因此在两个步骤中复用相同的值是安全的，可以防止任一步骤的重复。每个逻辑渲染使用一个 UUID，或任何 ",[695,7077,6872],{}," 中的不透明字符串（1-255 个字符）。",[700,7080,7082],{"className":702,"code":7081,"language":704,"meta":705,"style":705},"hyperframes cloud render . --idempotency-key \"$(uuidgen)\"\n",[695,7083,7084],{"__ignoreMap":705},[709,7085,7086,7088,7090,7092,7094,7097,7100,7103],{"class":711,"line":712},[709,7087,697],{"class":715},[709,7089,6494],{"class":719},[709,7091,962],{"class":719},[709,7093,6920],{"class":719},[709,7095,7096],{"class":719}," --idempotency-key",[709,7098,7099],{"class":745}," \"$(",[709,7101,7102],{"class":715},"uuidgen",[709,7104,7105],{"class":745},")\"\n",[4673,7107,7109],{"id":7108},"cloud-list",[695,7110,7111],{},"cloud list",[692,7113,7114,7115,7118,7119,7122,7123,7126,7127,7130],{},"分页浏览最近的渲染。基于游标：",[695,7116,7117],{},"--limit"," 限制单页数量（1-100），",[695,7120,7121],{},"--token"," 从之前的 ",[695,7124,7125],{},"next_token"," 继续，",[695,7128,7129],{},"--all"," 遍历完整列表直到耗尽。",[700,7132,7134],{"className":702,"code":7133,"language":704,"meta":705,"style":705},"hyperframes cloud list\nhyperframes cloud list --limit 50 --json\nhyperframes cloud list --all\n",[695,7135,7136,7145,7161],{"__ignoreMap":705},[709,7137,7138,7140,7142],{"class":711,"line":712},[709,7139,697],{"class":715},[709,7141,6494],{"class":719},[709,7143,7144],{"class":719}," list\n",[709,7146,7147,7149,7151,7153,7156,7159],{"class":711,"line":729},[709,7148,697],{"class":715},[709,7150,6494],{"class":719},[709,7152,6527],{"class":719},[709,7154,7155],{"class":719}," --limit",[709,7157,7158],{"class":974}," 50",[709,7160,997],{"class":719},[709,7162,7163,7165,7167,7169],{"class":711,"line":736},[709,7164,697],{"class":715},[709,7166,6494],{"class":719},[709,7168,6527],{"class":719},[709,7170,7171],{"class":719}," --all\n",[4673,7173,7175],{"id":7174},"cloud-get-render_id",[695,7176,7177],{},"cloud get \u003Crender_id>",[692,7179,7180,7181,1781,7184,7187],{},"获取一个渲染的完整详细记录，包括短期签名的 ",[695,7182,7183],{},"video_url",[695,7185,7186],{},"thumbnail_url","（预签名的 S3 URL — 按需获取而非缓存）。",[700,7189,7191],{"className":702,"code":7190,"language":704,"meta":705,"style":705},"hyperframes cloud get hfr_abc123\nhyperframes cloud get hfr_abc123 --json\n",[695,7192,7193,7205],{"__ignoreMap":705},[709,7194,7195,7197,7199,7202],{"class":711,"line":712},[709,7196,697],{"class":715},[709,7198,6494],{"class":719},[709,7200,7201],{"class":719}," get",[709,7203,7204],{"class":719}," hfr_abc123\n",[709,7206,7207,7209,7211,7213,7216],{"class":711,"line":729},[709,7208,697],{"class":715},[709,7210,6494],{"class":719},[709,7212,7201],{"class":719},[709,7214,7215],{"class":719}," hfr_abc123",[709,7217,997],{"class":719},[4673,7219,7221],{"id":7220},"cloud-delete-render_id",[695,7222,7223],{},"cloud delete \u003Crender_id>",[692,7225,7226,7227,7230,7231,7234],{},"软删除一个渲染。后续 ",[695,7228,7229],{},"GET"," 调用返回 404，签名的视频 URL 短暂后也会失效。交互式提示确认；脚本使用 ",[695,7232,7233],{},"--no-confirm"," 跳过。",[700,7236,7238],{"className":702,"code":7237,"language":704,"meta":705,"style":705},"hyperframes cloud delete hfr_abc123\nhyperframes cloud delete hfr_abc123 --no-confirm --json\n",[695,7239,7240,7251],{"__ignoreMap":705},[709,7241,7242,7244,7246,7249],{"class":711,"line":712},[709,7243,697],{"class":715},[709,7245,6494],{"class":719},[709,7247,7248],{"class":719}," delete",[709,7250,7204],{"class":719},[709,7252,7253,7255,7257,7259,7261,7264],{"class":711,"line":729},[709,7254,697],{"class":715},[709,7256,6494],{"class":719},[709,7258,7248],{"class":719},[709,7260,7215],{"class":719},[709,7262,7263],{"class":719}," --no-confirm",[709,7265,997],{"class":719},[916,7267,7269,7270,7272,7273,7276],{"id":7268},"何时选择-cloud-vs-lambda-vs-本地渲染","何时选择 ",[695,7271,6470],{}," vs ",[695,7274,7275],{},"lambda"," vs 本地渲染",[768,7278,7279,7284,7290],{},[771,7280,7281,7283],{},[695,7282,6575],{},"（本地）：最快的迭代循环。合成编写期间使用。",[771,7285,7286,7289],{},[695,7287,7288],{},"hyperframes lambda render","：自带 AWS 分布式渲染。当你已经投资 AWS 并希望在自己的账户上获得分块并行性时使用。",[771,7291,7292,7295],{},[695,7293,7294],{},"hyperframes cloud render","：零基础设施选项。HeyGen 运行渲染；你按积分付费。当你不想在本地管理 Chrome\u002Fffmpeg\u002FAWS 时使用。",[916,7297,7299],{"id":7298},"认证-基础-url","认证 + 基础 URL",[692,7301,7302,7304,7305,7308,7309,7311,7312,7314],{},[695,7303,6470],{}," 复用 ",[695,7306,7307],{},"hyperframes auth status"," 解析的凭证。使用 ",[695,7310,6436],{},"（默认 ",[695,7313,6442],{},"）覆盖用于暂存测试的 API 基础 URL。",[758,7316,7318],{"id":7317},"hyperframes-lambda","hyperframes lambda",[692,7320,7321],{},"将 HyperFrames 分布式渲染部署到 AWS Lambda，并从你的笔记本电脑或 CI 驱动渲染。",[692,7323,7324,7326,7327,7330],{},[695,7325,7318],{}," 命令组封装了 ",[695,7328,7329],{},"@hyperframes\u002Faws-lambda"," SDK 加上 AWS SAM，因此端到端渲染只需要三个命令：",[700,7332,7334],{"className":702,"code":7333,"language":704,"meta":705,"style":705},"hyperframes lambda deploy\nhyperframes lambda render .\u002Fmy-project --width 1920 --height 1080 --wait\nhyperframes lambda destroy   # 完成后\n",[695,7335,7336,7346,7372],{"__ignoreMap":705},[709,7337,7338,7340,7343],{"class":711,"line":712},[709,7339,697],{"class":715},[709,7341,7342],{"class":719}," lambda",[709,7344,7345],{"class":719}," deploy\n",[709,7347,7348,7350,7352,7354,7357,7360,7363,7366,7369],{"class":711,"line":729},[709,7349,697],{"class":715},[709,7351,7342],{"class":719},[709,7353,962],{"class":719},[709,7355,7356],{"class":719}," .\u002Fmy-project",[709,7358,7359],{"class":719}," --width",[709,7361,7362],{"class":974}," 1920",[709,7364,7365],{"class":719}," --height",[709,7367,7368],{"class":974}," 1080",[709,7370,7371],{"class":719}," --wait\n",[709,7373,7374,7376,7378,7381],{"class":711,"line":736},[709,7375,697],{"class":715},[709,7377,7342],{"class":719},[709,7379,7380],{"class":719}," destroy",[709,7382,7383],{"class":732},"   # 完成后\n",[916,7385,7386],{"id":7386},"前提条件",[768,7388,7389,7396,7408],{},[771,7390,7391,7392,7395],{},"已配置 AWS 凭证（环境变量、",[695,7393,7394],{},"~\u002F.aws\u002Fcredentials","、SSO 或 IMDS）。",[771,7397,7398,7403,7404,7407],{},[831,7399,7402],{"href":7400,"rel":7401},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fserverless-application-model\u002Flatest\u002Fdeveloperguide\u002Finstall-sam-cli.html",[6188],"AWS SAM CLI"," 在 ",[695,7405,7406],{},"PATH"," 上。",[771,7409,7410,7403,7413,7415],{},[695,7411,7412],{},"bun",[695,7414,7406],{}," 上（用于构建 Lambda handler ZIP）。",[916,7417,6240],{"id":7418},"子命令-2",[4673,7420,7422],{"id":7421},"lambda-deploy",[695,7423,7424],{},"lambda deploy",[692,7426,7427,7428,7431,7432,7435,7436,7439],{},"构建 ",[695,7429,7430],{},"packages\u002Faws-lambda\u002Fdist\u002Fhandler.zip"," 并 SAM 部署 ",[695,7433,7434],{},"examples\u002Faws-lambda\u002Ftemplate.yaml"," 处的堆栈。成功后写入 ",[695,7437,7438],{},"\u003Ccwd>\u002F.hyperframes\u002Flambda-stack-\u003CstackName>.json","，这样其他子命令无需重新推导 bucket \u002F 状态机 ARN。",[700,7441,7443],{"className":702,"code":7442,"language":704,"meta":705,"style":705},"hyperframes lambda deploy \\\n--stack-name=hyperframes-prod \\\n--region=us-east-1 \\\n--concurrency=8 \\\n--memory=10240\n",[695,7444,7445,7456,7461,7466,7471],{"__ignoreMap":705},[709,7446,7447,7449,7451,7454],{"class":711,"line":712},[709,7448,697],{"class":715},[709,7450,7342],{"class":719},[709,7452,7453],{"class":719}," deploy",[709,7455,3048],{"class":752},[709,7457,7458],{"class":711,"line":729},[709,7459,7460],{"class":752},"--stack-name=hyperframes-prod \\\n",[709,7462,7463],{"class":711,"line":736},[709,7464,7465],{"class":752},"--region=us-east-1 \\\n",[709,7467,7468],{"class":711,"line":984},[709,7469,7470],{"class":752},"--concurrency=8 \\\n",[709,7472,7473],{"class":711,"line":1035},[709,7474,7475],{"class":752},"--memory=10240\n",[692,7477,7478,7479,7482],{},"幂等 — 在相同 ",[695,7480,7481],{},"--stack-name"," 上重新运行时，如果没有变更则解析为空操作。",[4673,7484,7486],{"id":7485},"lambda-sites-create-projectdir",[695,7487,7488],{},"lambda sites create \u003CprojectDir>",[692,7490,7491,7492,7495,7496,7499],{},"压缩并上传 ",[695,7493,7494],{},"\u003CprojectDir>"," 到 S3，使用内容寻址键。返回一个 ",[695,7497,7498],{},"siteId","，你可以在多次渲染中复用，这样相同树的重新渲染会跳过上传。",[700,7501,7503],{"className":702,"code":7502,"language":704,"meta":705,"style":705},"hyperframes lambda sites create .\u002Fmy-project\n# → siteId: abc1234deadbeef0  （相同树的重新运行稳定）\n\nhyperframes lambda render .\u002Fmy-project --site-id=abc1234deadbeef0 --width 1920 --height 1080\n",[695,7504,7505,7520,7525,7529],{"__ignoreMap":705},[709,7506,7507,7509,7511,7514,7517],{"class":711,"line":712},[709,7508,697],{"class":715},[709,7510,7342],{"class":719},[709,7512,7513],{"class":719}," sites",[709,7515,7516],{"class":719}," create",[709,7518,7519],{"class":719}," .\u002Fmy-project\n",[709,7521,7522],{"class":711,"line":729},[709,7523,7524],{"class":732},"# → siteId: abc1234deadbeef0  （相同树的重新运行稳定）\n",[709,7526,7527],{"class":711,"line":736},[709,7528,1027],{"emptyLinePlaceholder":1026},[709,7530,7531,7533,7535,7537,7539,7542,7544,7546,7548],{"class":711,"line":984},[709,7532,697],{"class":715},[709,7534,7342],{"class":719},[709,7536,962],{"class":719},[709,7538,7356],{"class":719},[709,7540,7541],{"class":719}," --site-id=abc1234deadbeef0",[709,7543,7359],{"class":719},[709,7545,7362],{"class":974},[709,7547,7365],{"class":719},[709,7549,7550],{"class":974}," 1080\n",[4673,7552,7554],{"id":7553},"lambda-render-projectdir",[695,7555,7556],{},"lambda render \u003CprojectDir>",[692,7558,7559,7560,7563,7564,7567,7568,7571],{},"启动一个 Step Functions 执行。立即返回 ",[695,7561,7562],{},"renderId","（使用 ",[695,7565,7566],{},"lambda progress"," 轮询），除非设置了 ",[695,7569,7570],{},"--wait","，在这种情况下 CLI 会阻塞直到渲染完成并流式传输每块的进度行。",[700,7573,7575],{"className":702,"code":7574,"language":704,"meta":705,"style":705},"hyperframes lambda render .\u002Fmy-project \\\n--width=1920 --height=1080 --fps=30 --format=mp4 \\\n--chunk-size=240 --max-parallel-chunks=16 \\\n--wait\n",[695,7576,7577,7589,7605,7615],{"__ignoreMap":705},[709,7578,7579,7581,7583,7585,7587],{"class":711,"line":712},[709,7580,697],{"class":715},[709,7582,7342],{"class":719},[709,7584,962],{"class":719},[709,7586,7356],{"class":719},[709,7588,3048],{"class":752},[709,7590,7591,7594,7597,7600,7603],{"class":711,"line":729},[709,7592,7593],{"class":752},"--width=1920 ",[709,7595,7596],{"class":719},"--height=1080",[709,7598,7599],{"class":719}," --fps=30",[709,7601,7602],{"class":719}," --format=mp4",[709,7604,3048],{"class":752},[709,7606,7607,7610,7613],{"class":711,"line":736},[709,7608,7609],{"class":752},"--chunk-size=240 ",[709,7611,7612],{"class":719},"--max-parallel-chunks=16",[709,7614,3048],{"class":752},[709,7616,7617],{"class":711,"line":984},[709,7618,7619],{"class":752},"--wait\n",[692,7621,7622,7624],{},[695,7623,1059],{}," 将友好输出替换为机器可解析的 JSON 快照。",[692,7626,7627,7628,3211,7630,7632,7633,7635,7636,7639,7640,7642,7643,7645],{},"合成可以通过 ",[695,7629,4600],{},[695,7631,4623],{}," 进行参数化，镜像本地 ",[695,7634,6575],{}," 标志。变量流入 Step Functions 执行输入，并作为 ",[695,7637,7638],{},"window.__hfVariables"," 到达每个块 worker。与合成的 ",[695,7641,4611],{}," 声明不匹配会打印为警告；传入 ",[695,7644,4640],{}," 可使命令失败。",[700,7647,7649],{"className":702,"code":7648,"language":704,"meta":705,"style":705},"hyperframes lambda render .\u002Fmy-template --site-id=abc1234deadbeef0 \\\n--width=1920 --height=1080 \\\n--variables '{\"title\":\"Hello Alice\",\"accent\":\"#ff0000\"}'\n",[695,7650,7651,7666,7674],{"__ignoreMap":705},[709,7652,7653,7655,7657,7659,7662,7664],{"class":711,"line":712},[709,7654,697],{"class":715},[709,7656,7342],{"class":719},[709,7658,962],{"class":719},[709,7660,7661],{"class":719}," .\u002Fmy-template",[709,7663,7541],{"class":719},[709,7665,3048],{"class":752},[709,7667,7668,7670,7672],{"class":711,"line":729},[709,7669,7593],{"class":752},[709,7671,7596],{"class":719},[709,7673,3048],{"class":752},[709,7675,7676,7679,7681,7684],{"class":711,"line":736},[709,7677,7678],{"class":752},"--variables ",[709,7680,4718],{"class":745},[709,7682,7683],{"class":719},"{\"title\":\"Hello Alice\",\"accent\":\"#ff0000\"}",[709,7685,7686],{"class":745},"'\n",[700,7688,7690],{"className":702,"code":7689,"language":704,"meta":705,"style":705},"hyperframes lambda render .\u002Fmy-template --site-id=abc1234deadbeef0 \\\n--width=1920 --height=1080 \\\n--variables-file .\u002Falice.json --strict-variables\n",[695,7691,7692,7706,7714],{"__ignoreMap":705},[709,7693,7694,7696,7698,7700,7702,7704],{"class":711,"line":712},[709,7695,697],{"class":715},[709,7697,7342],{"class":719},[709,7699,962],{"class":719},[709,7701,7661],{"class":719},[709,7703,7541],{"class":719},[709,7705,3048],{"class":752},[709,7707,7708,7710,7712],{"class":711,"line":729},[709,7709,7593],{"class":752},[709,7711,7596],{"class":719},[709,7713,3048],{"class":752},[709,7715,7716,7719,7722],{"class":711,"line":736},[709,7717,7718],{"class":752},"--variables-file ",[709,7720,7721],{"class":719},".\u002Falice.json",[709,7723,7724],{"class":719}," --strict-variables\n",[692,7726,7727,7728,7731],{},"变量在 Step Functions Standard 执行输入中传输，AWS 将整个有效载荷限制为 256 KiB。通过变量传递类型化数据（字符串、数字、结构化记录）；URL 引用媒体资源（图片、音频、视频），合成在渲染时解析而非内联字节。SDK 在客户端验证大小并在任何 AWS 调用运行之前以清晰的错误拒绝超大输入 — 参见 ",[831,7729,7730],{"href":162},"templates-on-lambda 指南","了解 URL 化资源的约定。",[4673,7733,7735],{"id":7734},"lambda-render-batch-projectdir",[695,7736,7737],{},"lambda render-batch \u003CprojectDir>",[692,7739,7740,7741,7744,7745,7748,7749,1781,7752,7755,7756,7759],{},"从 JSONL 批处理文件分发 N 个个性化渲染 — 这是自动化模板渲染管道的核心人体工程学。部署站点一次（或使用 ",[695,7742,7743],{},"--site-id"," 跳过），然后为每批行调用 ",[695,7746,7747],{},"renderToLambda","，每条带有 ",[695,7750,7751],{},"variables",[695,7753,7754],{},"outputKey","。并发 Step Functions 启动受 ",[695,7757,7758],{},"--max-concurrent","（默认 50）限制，这样 10,000 条目的批处理不会尝试同时生成 10,000 个执行并触发 AWS 账户限制。",[692,7761,7762],{},"批处理文件格式（JSONL — 每行一个 JSON 对象）：",[700,7764,7768],{"className":7765,"code":7766,"language":7767,"meta":705,"style":705},"language-jsonl shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\"outputKey\": \"renders\u002Falice.mp4\", \"variables\": {\"name\": \"Alice\", \"accent\": \"#ff0000\"}}\n{\"outputKey\": \"renders\u002Fbob.mp4\",   \"variables\": {\"name\": \"Bob\",   \"accent\": \"#0000ff\"}}\n{\"outputKey\": \"renders\u002Fcarol.mp4\", \"variables\": {\"name\": \"Carol\"}, \"executionName\": \"hf-carol-001\"}\n","jsonl",[695,7769,7770,7775,7780],{"__ignoreMap":705},[709,7771,7772],{"class":711,"line":712},[709,7773,7774],{},"{\"outputKey\": \"renders\u002Falice.mp4\", \"variables\": {\"name\": \"Alice\", \"accent\": \"#ff0000\"}}\n",[709,7776,7777],{"class":711,"line":729},[709,7778,7779],{},"{\"outputKey\": \"renders\u002Fbob.mp4\",   \"variables\": {\"name\": \"Bob\",   \"accent\": \"#0000ff\"}}\n",[709,7781,7782],{"class":711,"line":736},[709,7783,7784],{},"{\"outputKey\": \"renders\u002Fcarol.mp4\", \"variables\": {\"name\": \"Carol\"}, \"executionName\": \"hf-carol-001\"}\n",[700,7786,7788],{"className":702,"code":7787,"language":704,"meta":705,"style":705},"hyperframes lambda render-batch .\u002Fmy-template \\\n--batch .\u002Fusers.jsonl \\\n--width 1920 --height 1080 \\\n--max-concurrent 10\n",[695,7789,7790,7803,7813,7827],{"__ignoreMap":705},[709,7791,7792,7794,7796,7799,7801],{"class":711,"line":712},[709,7793,697],{"class":715},[709,7795,7342],{"class":719},[709,7797,7798],{"class":719}," render-batch",[709,7800,7661],{"class":719},[709,7802,3048],{"class":752},[709,7804,7805,7808,7811],{"class":711,"line":729},[709,7806,7807],{"class":752},"--batch ",[709,7809,7810],{"class":719},".\u002Fusers.jsonl",[709,7812,3048],{"class":752},[709,7814,7815,7818,7821,7823,7825],{"class":711,"line":736},[709,7816,7817],{"class":752},"--width ",[709,7819,7820],{"class":974},"1920",[709,7822,7365],{"class":719},[709,7824,7368],{"class":974},[709,7826,3048],{"class":752},[709,7828,7829,7832],{"class":711,"line":984},[709,7830,7831],{"class":752},"--max-concurrent ",[709,7833,7834],{"class":974},"10\n",[692,7836,7837,7838,7841],{},"该命令打印一个清单 — 每行一个输入 — 带有 ",[695,7839,7840],{},"executionArn"," + 状态：",[700,7843,7846],{"className":7844,"code":7845,"language":1214},[1212],"Batch dispatched: 3 started, 0 failed-to-start.\n\n✓ line 1  renders\u002Falice.mp4  arn:aws:states:us-east-1:1234:execution:hf:hf-render-...\n✓ line 2  renders\u002Fbob.mp4    arn:aws:states:us-east-1:1234:execution:hf:hf-render-...\n✓ line 3  renders\u002Fcarol.mp4  arn:aws:states:us-east-1:1234:execution:hf:hf-carol-001\n",[695,7847,7845],{"__ignoreMap":705},[692,7849,7850,7851,7853,7854,7857,7858,6443],{},"传入 ",[695,7852,1059],{}," 获取机器可读形式。通过 ",[695,7855,7856],{},"hyperframes lambda progress \u003CrenderId>"," 轮询每个执行（或使用返回的 ",[695,7859,7840],{},[692,7861,7862,7865,7866,7869],{},[695,7863,7864],{},"--dry-run"," 跳过 AWS 调用并打印清单，每条显示 ",[695,7867,7868],{},"status: \"would-invoke\""," — 在提交 N 个计费执行之前用于检查批处理文件：",[700,7871,7873],{"className":702,"code":7872,"language":704,"meta":705,"style":705},"hyperframes lambda render-batch .\u002Fmy-template --batch .\u002Fusers.jsonl \\\n--width 1920 --height 1080 --dry-run --json\n",[695,7874,7875,7893],{"__ignoreMap":705},[709,7876,7877,7879,7881,7883,7885,7888,7891],{"class":711,"line":712},[709,7878,697],{"class":715},[709,7880,7342],{"class":719},[709,7882,7798],{"class":719},[709,7884,7661],{"class":719},[709,7886,7887],{"class":719}," --batch",[709,7889,7890],{"class":719}," .\u002Fusers.jsonl",[709,7892,3048],{"class":752},[709,7894,7895,7897,7899,7901,7903,7906],{"class":711,"line":729},[709,7896,7817],{"class":752},[709,7898,7820],{"class":974},[709,7900,7365],{"class":719},[709,7902,7368],{"class":974},[709,7904,7905],{"class":719}," --dry-run",[709,7907,997],{"class":719},[692,7909,7910,7912,7913,7916,7917,7920,7921,7924,7925,7928,7929,1998],{},[695,7911,7758],{}," 仅在编排器侧：它限制同时运行的 ",[695,7914,7915],{},"StartExecution"," 调用数量，而非账户可运行的 Lambda 调用数量。AWS 账户级 Lambda 并发限制位于更上层，",[695,7918,7919],{},"render-batch"," 无法强制执行；根据你的账户的 ",[695,7922,7923],{},"concurrent-execution"," 配额和你通过 ",[695,7926,7927],{},"lambda deploy --concurrency=\u003CN>"," 配置的 Lambda 保留并发来选择 ",[695,7930,7758],{},[4673,7932,7934],{"id":7933},"lambda-progress-renderid-executionarn",[695,7935,7936],{},"lambda progress \u003CrenderId | executionArn>",[692,7938,7939,7940,7942],{},"打印一个进度快照 — 总体百分比、已渲染帧数、Lambda 调用次数、累计费用和任何错误。接受裸 ",[695,7941,7562],{},"（解析到堆栈的状态机 ARN）或完整的 SFN 执行 ARN。",[700,7944,7946],{"className":702,"code":7945,"language":704,"meta":705,"style":705},"hyperframes lambda progress hf-render-abcd1234\n",[695,7947,7948],{"__ignoreMap":705},[709,7949,7950,7952,7954,7957],{"class":711,"line":712},[709,7951,697],{"class":715},[709,7953,7342],{"class":719},[709,7955,7956],{"class":719}," progress",[709,7958,7959],{"class":719}," hf-render-abcd1234\n",[4673,7961,7963],{"id":7962},"lambda-destroy",[695,7964,7965],{},"lambda destroy",[692,7967,7968,7969,7972,7973,7976],{},"调用 ",[695,7970,7971],{},"sam delete --no-prompts"," 并删除本地状态文件。渲染 S3 bucket 使用 CloudFormation ",[695,7974,7975],{},"Retain"," 配置，因此在销毁时会保留 — 如果你想回收存储，可以通过 AWS 控制台\u002FCLI 清空并删除它。",[4673,7978,7980],{"id":7979},"lambda-policies-role-user-validate",[695,7981,7982],{},"lambda policies role | user | validate",[692,7984,7985],{},"打印或验证 CLI 部署\u002F调用\u002F销毁堆栈所需的最小 IAM 策略。",[700,7987,7989],{"className":702,"code":7988,"language":704,"meta":705,"style":705},"# 打印可附加到运行 CLI 的 IAM 用户的内联策略文档。\nhyperframes lambda policies user\n\n# 打印 { TrustRelationship, InlinePolicy } 用于 IAM 角色（默认：cloudformation 主体）。\nhyperframes lambda policies role --principal=cloudformation\n\n# 验证已签入的策略仍覆盖 CLI 的需求。\nhyperframes lambda policies validate .\u002Finfra\u002Fiam\u002Fhyperframes-deploy.json\n",[695,7990,7991,7996,8008,8012,8017,8031,8035,8040],{"__ignoreMap":705},[709,7992,7993],{"class":711,"line":712},[709,7994,7995],{"class":732},"# 打印可附加到运行 CLI 的 IAM 用户的内联策略文档。\n",[709,7997,7998,8000,8002,8005],{"class":711,"line":729},[709,7999,697],{"class":715},[709,8001,7342],{"class":719},[709,8003,8004],{"class":719}," policies",[709,8006,8007],{"class":719}," user\n",[709,8009,8010],{"class":711,"line":736},[709,8011,1027],{"emptyLinePlaceholder":1026},[709,8013,8014],{"class":711,"line":984},[709,8015,8016],{"class":732},"# 打印 { TrustRelationship, InlinePolicy } 用于 IAM 角色（默认：cloudformation 主体）。\n",[709,8018,8019,8021,8023,8025,8028],{"class":711,"line":1035},[709,8020,697],{"class":715},[709,8022,7342],{"class":719},[709,8024,8004],{"class":719},[709,8026,8027],{"class":719}," role",[709,8029,8030],{"class":719}," --principal=cloudformation\n",[709,8032,8033],{"class":711,"line":1152},[709,8034,1027],{"emptyLinePlaceholder":1026},[709,8036,8037],{"class":711,"line":1173},[709,8038,8039],{"class":732},"# 验证已签入的策略仍覆盖 CLI 的需求。\n",[709,8041,8042,8044,8046,8048,8051],{"class":711,"line":1188},[709,8043,697],{"class":715},[709,8045,7342],{"class":719},[709,8047,8004],{"class":719},[709,8049,8050],{"class":719}," validate",[709,8052,8053],{"class":719}," .\u002Finfra\u002Fiam\u002Fhyperframes-deploy.json\n",[692,8055,8056,8059,8060,8063,8064,3211,8067,3211,8070,8073],{},[695,8057,8058],{},"validate"," 读取 JSON 文档并检查其 ",[695,8061,8062],{},"Effect: Allow"," 操作的并集是否覆盖 CLI 所需的操作集，展开 ",[695,8065,8066],{},"s3:*",[695,8068,8069],{},"s3:Get*",[695,8071,8072],{},"*"," 通配符。缺少的操作会打印到 stderr，命令以非零退出 — 将其集成到 CI 中以在下次部署失败之前捕获漂移。",[692,8075,8076,8077,8080,8081,8084],{},"操作列表故意很广（",[695,8078,8079],{},"Resource: \"*\"","），因为 CloudFormation 在每个采用者的首次部署上创建新的函数\u002F状态机\u002Fbucket ARN。安全态势更严格的采用者应在首次成功运行后将 ",[695,8082,8083],{},"Resource"," 缩窄到已部署的 ARN。",[916,8086,8087],{"id":8087},"状态文件",[692,8089,8090,7403,8092,8095,8096,8099,8100,8103],{},[695,8091,7318],{},[695,8093,8094],{},"\u003Ccwd>\u002F.hyperframes\u002Flambda-stack-\u003Cname>.json"," 下保存每个堆栈的元数据，这样命令无需每次都调用 ",[695,8097,8098],{},"describe-stacks","。根据你的工作流将文件签入仓库或 ",[695,8101,8102],{},".gitignore"," — 它包含 bucket 名称、状态机 ARN 和区域，这些都不是密钥但都可识别 AWS 账户。",[758,8105,1988],{"id":8106},"hyperframesjson",[692,8108,8109,8112,8113,8115,8116,8119],{},[695,8110,8111],{},"hyperframes init"," 在每个新项目的根目录写入 ",[695,8114,1988],{}," 文件。",[695,8117,8118],{},"hyperframes add"," 读取它以知道从哪个注册表拉取项以及将它们放到哪里。编辑文件（或删除它以回退到默认值）以重塑项目布局或指向自定义注册表。",[700,8121,8123],{"className":1066,"code":8122,"language":1068,"meta":705,"style":705},"{\n\"$schema\": \"https:\u002F\u002Fhyperframes.heygen.com\u002Fschema\u002Fhyperframes.json\",\n\"registry\": \"https:\u002F\u002Fraw.githubusercontent.com\u002Fheygen-com\u002Fhyperframes\u002Fmain\u002Fregistry\",\n\"paths\": {\n\"blocks\": \"compositions\",\n\"components\": \"compositions\u002Fcomponents\",\n\"assets\": \"assets\"\n}\n}\n",[695,8124,8125,8129,8149,8169,8182,8201,8221,8238,8242],{"__ignoreMap":705},[709,8126,8127],{"class":711,"line":712},[709,8128,1075],{"class":745},[709,8130,8131,8133,8136,8138,8140,8142,8145,8147],{"class":711,"line":729},[709,8132,1080],{"class":745},[709,8134,8135],{"class":1083},"$schema",[709,8137,1080],{"class":745},[709,8139,1089],{"class":745},[709,8141,1092],{"class":745},[709,8143,8144],{"class":719},"https:\u002F\u002Fhyperframes.heygen.com\u002Fschema\u002Fhyperframes.json",[709,8146,1080],{"class":745},[709,8148,1100],{"class":745},[709,8150,8151,8153,8156,8158,8160,8162,8165,8167],{"class":711,"line":736},[709,8152,1080],{"class":745},[709,8154,8155],{"class":1083},"registry",[709,8157,1080],{"class":745},[709,8159,1089],{"class":745},[709,8161,1092],{"class":745},[709,8163,8164],{"class":719},"https:\u002F\u002Fraw.githubusercontent.com\u002Fheygen-com\u002Fhyperframes\u002Fmain\u002Fregistry",[709,8166,1080],{"class":745},[709,8168,1100],{"class":745},[709,8170,8171,8173,8176,8178,8180],{"class":711,"line":984},[709,8172,1080],{"class":745},[709,8174,8175],{"class":1083},"paths",[709,8177,1080],{"class":745},[709,8179,1089],{"class":745},[709,8181,1129],{"class":745},[709,8183,8184,8186,8189,8191,8193,8195,8197,8199],{"class":711,"line":1035},[709,8185,1080],{"class":745},[709,8187,8188],{"class":715},"blocks",[709,8190,1080],{"class":745},[709,8192,1089],{"class":745},[709,8194,1092],{"class":745},[709,8196,2210],{"class":719},[709,8198,1080],{"class":745},[709,8200,1100],{"class":745},[709,8202,8203,8205,8208,8210,8212,8214,8217,8219],{"class":711,"line":1152},[709,8204,1080],{"class":745},[709,8206,8207],{"class":715},"components",[709,8209,1080],{"class":745},[709,8211,1089],{"class":745},[709,8213,1092],{"class":745},[709,8215,8216],{"class":719},"compositions\u002Fcomponents",[709,8218,1080],{"class":745},[709,8220,1100],{"class":745},[709,8222,8223,8225,8228,8230,8232,8234,8236],{"class":711,"line":1173},[709,8224,1080],{"class":745},[709,8226,8227],{"class":715},"assets",[709,8229,1080],{"class":745},[709,8231,1089],{"class":745},[709,8233,1092],{"class":745},[709,8235,8227],{"class":719},[709,8237,2551],{"class":745},[709,8239,8240],{"class":711,"line":1188},[709,8241,1191],{"class":745},[709,8243,8244],{"class":711,"line":1194},[709,8245,1191],{"class":745},[1507,8247,8248,8257],{},[1510,8249,8250],{},[1513,8251,8252,8255],{},[1516,8253,8254],{},"字段",[1516,8256,1521],{},[1523,8258,8259,8270,8284,8294],{},[1513,8260,8261,8265],{},[1528,8262,8263],{},[695,8264,8155],{},[1528,8266,8267,8269],{},[695,8268,1806],{}," 拉取的注册表基础 URL。默认为公共 Hyperframes 注册表。",[1513,8271,8272,8277],{},[1528,8273,8274],{},[695,8275,8276],{},"paths.blocks",[1528,8278,8279,8280,8283],{},"块 ",[695,8281,8282],{},".html"," 文件的位置（相对于项目根目录）。",[1513,8285,8286,8291],{},[1528,8287,8288],{},[695,8289,8290],{},"paths.components",[1528,8292,8293],{},"组件文件的位置（相对于项目根目录）。",[1513,8295,8296,8301],{},[1528,8297,8298],{},[695,8299,8300],{},"paths.assets",[1528,8302,8303],{},"引用的资源文件（图片、字体）的位置。",[692,8305,8306],{},"缺失的字段用默认值填充 — 你只需要指定要覆盖的内容。",[758,8308,8309],{"id":8309},"相关包",[768,8311,8312,8320,8332,8340],{},[771,8313,8314,8319],{},[764,8315,8316],{},[831,8317,8318],{"href":188},"Producer","\nCLI 底层调用的渲染管道。直接使用以进行编程渲染。",[771,8321,8322,8327,8328,8331],{},[764,8323,8324],{},[831,8325,8326],{"href":192},"Studio","\n驱动 ",[695,8329,8330],{},"hyperframes preview"," 的编辑器 UI。直接使用以嵌入到你自己的应用中。",[771,8333,8334,8339],{},[764,8335,8336],{},[831,8337,8338],{"href":176},"Core","\n类型、Linter 和运行时。直接使用以进行自定义工具和集成。",[771,8341,8342,8347],{},[764,8343,8344],{},[831,8345,8346],{"href":180},"Engine","\n捕获引擎。直接使用以构建自定义帧捕获管道。",[8349,8350,8351],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":705,"searchDepth":712,"depth":729,"links":8353},[8354,8355,8362,8368,8397,8401,8407,8412,8413],{"id":760,"depth":729,"text":760},{"id":866,"depth":729,"text":867,"children":8356},[8357,8358,8359,8361],{"id":918,"depth":736,"text":919},{"id":1000,"depth":736,"text":1000},{"id":1048,"depth":736,"text":8360},"JSON 输出和 _meta 信封",{"id":1205,"depth":736,"text":1205},{"id":5,"depth":729,"text":5,"children":8363},[8364,8365,8366,8367],{"id":1228,"depth":736,"text":1228},{"id":1280,"depth":736,"text":1280},{"id":1315,"depth":736,"text":1315},{"id":1341,"depth":736,"text":1342},{"id":1423,"depth":729,"text":1423,"children":8369},[8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396],{"id":1426,"depth":736,"text":1426},{"id":783,"depth":736,"text":783},{"id":1806,"depth":736,"text":1806},{"id":913,"depth":736,"text":913},{"id":2210,"depth":736,"text":2210},{"id":2256,"depth":736,"text":2256},{"id":2519,"depth":736,"text":2519},{"id":2938,"depth":736,"text":2938},{"id":776,"depth":736,"text":776},{"id":3505,"depth":736,"text":3505},{"id":789,"depth":736,"text":789},{"id":3629,"depth":736,"text":3629},{"id":801,"depth":736,"text":801},{"id":807,"depth":736,"text":807},{"id":813,"depth":736,"text":813},{"id":4165,"depth":736,"text":4165},{"id":795,"depth":736,"text":795},{"id":5161,"depth":736,"text":5161},{"id":5231,"depth":736,"text":5231},{"id":819,"depth":736,"text":819},{"id":5371,"depth":736,"text":5371},{"id":5418,"depth":736,"text":5418},{"id":5655,"depth":736,"text":5655},{"id":5734,"depth":736,"text":5734},{"id":5780,"depth":736,"text":5780},{"id":5891,"depth":736,"text":5891},{"id":1797,"depth":736,"text":1797},{"id":6196,"depth":729,"text":6197,"children":8398},[8399,8400],{"id":6240,"depth":736,"text":6240},{"id":6397,"depth":736,"text":6397},{"id":6459,"depth":729,"text":6460,"children":8402},[8403,8404,8406],{"id":6533,"depth":736,"text":6240},{"id":7268,"depth":736,"text":8405},"何时选择 cloud vs lambda vs 本地渲染",{"id":7298,"depth":736,"text":7299},{"id":7317,"depth":729,"text":7318,"children":8408},[8409,8410,8411],{"id":7386,"depth":736,"text":7386},{"id":7418,"depth":736,"text":6240},{"id":8087,"depth":736,"text":8087},{"id":8106,"depth":729,"text":1988},{"id":8309,"depth":729,"text":8309},"从命令行创建、预览和渲染 HTML 视频合成。","md",null,{},{"title":195,"description":8414},"AoXx--0gbTVg3YmpAAWXBBf2-rI0NkH4Pabm4nfvt-c",[8421,8423],{"title":191,"path":192,"stem":193,"description":8422,"children":-1},"可视化合成编辑器，支持实时预览、时间轴视图和热重载。",{"title":211,"path":212,"stem":213,"description":8424,"children":-1},"从左到右逐词 clip-path 擦除显示",1780322244293]