关于 tella-auto-layouts
tella-auto-layouts 是用于分析 Tella 视频片段并应用布局的技能,布局会根据口述内容和屏幕活动调整。它面向视频编辑者,在保留片段基础外观的同时添加有依据的布局变化,不改动其他编辑内容。
主要功能
- 01读取转录文本、光标事件和画面
- 02选择基础布局及有依据的变化
- 03应用并检查布局编辑
- 04保留现有的媒体布局
- 05不改动剪辑、缩放、叠加层和字幕
适用场景
- 01为屏幕演示设置布局
- 02突出展示讲解者在演示中的反应
- 03聚焦菜单、代码或屏幕结果
- 04保留现有画中素材并调整布局
MCP 相关
需要 Tella MCP 来查看片段时间线、转录文本、事件和画面,并应用及验证布局编辑。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tellahq/ skills --skill tella-auto-layouts安装后在 Claude Code 中输入/tella-auto-layouts确认已加载。
附带文件agents/openai.yaml
详细介绍
Tella 片段的自动布局
根据转录文本、光标数据和画面,弄清楚片段中发生了什么。选择观众大多数时间应该看到的布局,只在能让某个时刻更清晰或更有冲击力时添加布局变化。然后应用布局并检查效果。
此技能需要 Tella MCP。如果缺少 get_timeline 等工具,请先按照 tella 技能中的连接步骤操作。
范围
自动布局是一项直接操作:应用布局,然后报告你做了什么。无需事先征求批准;用户可以撤销或要求修改。只有在无法确定具体是哪段片段时才询问。
自动布局会替换片段现有的布局变化。保留包含 B-roll media 的布局,并围绕它们进行规划。不要更改剪辑点、缩放、叠加内容或字幕。只有用户要求添加 B-roll 时,才生成 B-roll(先用 generate_image,再用包含 media 的 add_layout)。
如果用户指定了风格(产品演示、教程、演示文稿、仅片头/片尾)或给出了指示,则以用户的要求为准,优先于以下所有内容。
工作流
- 阅读剪辑。
get_timeline会提供剪辑的 ID、播放时长和layoutSceneType。list_layouts会提供剪辑的基础布局(含cameraStyle、popOut和crop)及其各个片段。followsBase: true的片段只显示基础布局;其他片段则显示当前的布局更改。基础布局的外观由用户选择:除非用户要求更换外观,否则保留其摄像头样式、弹出效果、摄像头形状和裁剪。list_saved_layouts会提供用户的收藏布局;只有sceneType与剪辑的layoutSceneType匹配(对于自定义布局,还需canvasRatio与视频匹配)的收藏布局才能在这里使用。 - 了解发生了什么。 使用
get_transcript查看说了什么以及何时说的。get_mouse_events配合types: ["clicks"]可显示屏幕上的操作位置。对剪辑使用get_storyboard,查看屏幕上显示的内容及其变化时间:按时间段覆盖整个剪辑(默认每段 80 秒,长剪辑则使用更长时间段),再缩小范围,找出内容变化的位置。查看get_clip_frame帧,了解讲者面向的方向以及摄像头覆盖的区域。渲染帧显示的是观众看到的摄像头画面,包括镜像效果。 - 决定如何编辑,遵循下方指引:先确定基础布局,再列出值得更改的少数时刻,并说明每项更改的原因。
- 应用更改。 如果要将收藏布局设为基础布局,先不带时间范围调用
apply_saved_layout。然后调用一次apply_video_edits:对每个旧布局更改调用remove_layout(仅限followsBase: false的片段;followsBase: true的片段已经显示基础布局,无法移除),如果应更改基础布局,则对base调用update_layout,每项更改调用一次add_layout。每项会对摄像头构图的更改都要指定基础布局的cameraStyle和popOut,因为新布局不会继承这些设置。apply_video_edits无法设置裁剪,因此,如果基础布局有自己的裁剪,还需再执行一个步骤:批量操作后运行list_layouts,对每个显示屏幕且报告的crop与基础布局不同的新布局,调用update_layout并指定基础布局的crop。使用收藏布局的更改不能放入批量操作:对每项更改,先调用apply_saved_layout并指定时间范围,然后在cameraStyle、popOut或crop与基础布局不同时,通过update_layout为其设置相应值。自定义收藏布局(在list_layouts中标记为kind: custom)不接受cameraStyle:请改用layout: {kind: "custom", presentation: {shape}}设置摄像头形状,这会保留其几何形状(shape取与基础布局cameraStyle相同的值);并通过单独的update_layout设置其crop。时间单位是剪辑播放时间线上的毫秒,与转录内容的时间单位相同;每项更改至少持续 200 毫秒。 - 检查结果。 使用该
list_layouts,在基础布局以及最重要的更改的中间位置运行get_clip_frame。修正任何遮挡文本、光标、菜单或结果的摄像头画面,以及任何与错误字句对齐的更改。 - 汇报几行内容:基础布局、每项更改及其时间和原因,以及你有意保留不动的内容。
观众应该看到什么
每个时刻都要思考观众应该看什么:
- 屏幕:当屏幕上正在发生某事或有人指向屏幕时,例如点击、输入、菜单、结果出现、幻灯片切换、代码、图表,或提到可见内容的句子(“这个”“这里”“如你所见”)。这些时刻绝不要遮住屏幕。
- 讲者:屏幕静止或不重要时的问候、引子、观点、反应、笑话、总结或告别。
- 两者:其他大多数时候,这正是基础布局的用途。
基础布局
基础布局是主画面,贯穿片段的大部分时间。为整个片段选择基础布局:
- 以屏幕为主的演示和教程:使用尺寸为 M 的
camera-bubble,放在遮挡内容最少的角落。 - 演讲、推介和回顾中,讲者与幻灯片同样重要:使用
side-by-side(overlap或regular)或tv-presenter。 - 如果片段已有刻意设计的基础布局(摄像头样式、弹出画面、抠像讲者、自定义布局),保留它,只添加变化。
- 否则,如果用户收藏的布局适合作为片段的基础布局,就使用该布局,而非默认布局:收藏的布局代表用户自己的风格。
布局变化
布局变化需要有让观众能感受到的理由。片段的大部分时间应保持基础布局,各次变化之间留出间隔。连续变化适用于有意设计的小段落,例如先显示全屏摄像头画面,再推进突出关键短语。每分钟最多安排几次位置恰当的变化就足够了,静态或很短的片段可能完全不需要变化。自动布局最常见的抱怨就是变化过多,因此拿不准时就保留基础布局。Short 是个例外:对于时长不超过一分钟的竖屏视频,请遵循 tella-short 技能中的节奏。
以下是一些实用的变化方式,使用 MCP 的术语(add_layout schema 列出了每种 layoutSceneType 接受的参数):
- 聚焦屏幕(
screen-only,或将气泡缩小到尺寸 S):用于信息密集的 UI、代码、设置,或需要全神贯注查看的结果。通常持续 2–8 秒,处理细节时可以更长。 - 摄像头切出画面(
camera-only,style: fullscreen):屏幕内容不重要时,突出表现讲者的精彩瞬间。通常持续 2–5 秒。 - 推进特写(
camera-only,punchIn: true):用于切出画面中最有力的话语,或开场钩子。至少持续 1.5 秒,最好为 2–4 秒。 - 气泡尺寸强调(同一个
camera-bubble先设为尺寸 L,再恢复基础布局):在屏幕内容仍然重要时,突出讲解或反应。 - 分屏或演讲者画面(
side-by-side、tv-presenter):用于讲者和幻灯片或页面都很重要的片段。文字或代码较小时避免使用。
如果某个实用的收藏布局能完成上述某种效果(例如适合聚焦屏幕的屏幕主导布局,或适合切出画面的摄像头主导布局),优先使用收藏布局。
开场:如果第一句话只是问候或铺垫,不需要屏幕内容,可以采用简短的摄像头开场。如果第一句话已经提到屏幕上的内容,则第一帧就必须显示屏幕。
如果片段只有屏幕录制或只有摄像头录制,可供切换的内容很少:只安排少数几次推进特写或聚焦时刻,或者完全保留基础布局。
位置和视线
将摄像头放在讲者背向的一侧,让他们看向屏幕。如果他们看向观众的左侧,就把摄像头放在右侧(分屏和演讲者布局使用 position: right,气泡放在右侧角落);反之亦然。如果他们直视前方,就选择遮挡最不重要内容的一侧。选定后,保持位置稳定:优先调整尺寸或布局,而不是移动摄像头;只有在摄像头会遮挡观众需要看到的内容时才移动它。
转场
transitionStyle 设置布局进入时的方式:hardCut 或 spring(动画)。
- 在截然不同的全屏画面之间(仅屏幕到仅摄像头,或反向切换),以及切入简短的摄像头切出画面时,使用
hardCut。 - 调整气泡尺寸、切换分屏和演讲者布局,以及逐渐推进特写时,使用
spring。 - 推进特写可以使用
hardCut,营造快速、果断的节奏;如果同一思路逐步展开,则可以使用spring。
布局退出时会采用后续布局的 transitionStyle,后续布局通常是基础布局段(followsBase: true)。全屏摄像头布局结束后,请在 list_layouts 中检查该布局;如果返回屏幕时会出现动画,则使用 update_layout 将其设为 hardCut。
如果出现问题
如果 apply_video_edits 失败,则不会进行任何更改:修复它指出的操作,然后重新发送批次。如果不确定某次调用的结果,请在重试前运行 list_layouts,并且不要重复添加相同的布局。若要重新开始,请移除剪辑的布局更改,然后再次应用计划。