关于 blender-video-editing
blender-video-editing 是用于剪辑视频和跟踪摄像机运动的 Blender 技能。它通过脚本构建序列编辑,并支持实时会话中的跟踪,可配置切换、标题、音频和跟踪场景。
主要功能
- 01在独立场景中构建剪辑
- 02组合影片、静帧和图像序列
- 03添加交叉淡化、标题和音频
- 04渲染视频或 PNG 帧
- 05跟踪摄像机运动并求解场景
适用场景
- 01将渲染镜头剪成审片版本
- 02制作硬切的图像序列输出
- 03跟踪素材以匹配摄像机位置
- 04设置平面屏幕或标牌替换
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ el4cteo/ blender-skills --skill blender-video-editing安装后在 Claude Code 中输入/blender-video-editing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/_bpyx.pytrack_camera.pyvse_edit.py详细介绍
视频剪辑与跟踪
执行模型位于 blender-core。3D 镜头渲染和合成器(5.0 API)位于 blender-rendering。
每项各调用一次
scripts/vse_edit.py -- --clips //renders/sh010/ //renders/sh020/ //logo.png --crossfade 12 --title "Project" --audio //music.wav --out //edit.mp4 --render
scripts/vse_edit.py -- --clips a.mp4 b.mp4 c.mp4 --crossfade 0 --fps 24 --out //review/f_#### --render # hard cuts to PNG
import track_camera; print(track_camera.run(clip="C:/shots/sh010.mp4", focal=35, sensor=36)) # live/MCP only
vse_edit.py
- 在专属的
Edit场景(--scene)中构建,因此不会触碰 3D 场景。片段交替放在通道 1/2,交叉淡化(CROSS)放在通道 3,标题放在通道 4,片段音频放在通道 6/7(影片会带有自己的声音条),音乐放在通道 8(裁剪至剪辑长度,并使用--audio-fade淡出音量)。 - 片段可以是影片、静帧(
--still-seconds)、帧文件夹或####模式。每次交叉淡化都会与前一个片段重叠--crossfade帧,因此每个剪切都会使剪辑缩短相应时长。重新运行会替换上一次的剪辑。 - 设置视图变换为 Standard:素材必须原样通过(实测:AgX 会将纯红色变为 0.86/0.23/0.13)。如需调色,请使用条带修改器。
- 输出:
.mp4/.mov/.mkv= H.264(CRF 较高、预设为 good)+ AAC 192k 立体声。其他路径 = PNG 帧。5.0+ 需要先设置image_settings.media_type = "VIDEO",再设置file_format = "FFMPEG"。程序会报告文件大小,并通过解码回测(帧数、大小)。
专业人士遵循的剪辑规则
- 先匹配帧率(
--fps= 素材/渲染帧率)。混合帧率会导致音频漂移。应重新渲染或重新定时(SPEED效果)。 - 大型素材:构建代理(
strip.use_proxy = True,25/50%,sequencer.rebuild_proxy)。5.2 只构建代理(不再生成.blen_tc时间码文件)。 - 每个条带的色彩空间:
strip.colorspace_settings.name(8-bit 视频使用 sRGB,EXR 渲染使用 Linear Rec.709)。专属剪辑场景可避免 3D 色彩设置影响剪辑。 - 5.2 API:
strips.new_movie(..., stream=N)/new_sound(stream=N)可从多轨文件中选择流。strip.connections会列出连接的条带。新增效果类型COMPOSITOR(节点树效果)。文本条带在界面中提供 Subtitles / Main Title / Corner Title 预设。时间使用left_handle/right_handle/duration(5.1 名称)。条带关键帧位于场景的动作中。
运动跟踪(track_camera.py,实时会话)
- 剪辑编辑器操作符需要窗口,因此此脚本会借用面积最大的区域,运行后再恢复。在
-b模式下会报错退出。它会在首帧和末帧检测特征,双向跟踪,删除短于min_frames的跟踪,求解(自动关键帧,仅在焦距未知时进行细化),删除误差超过max_errorpx 的跟踪并重新求解,随后运行setup_tracking_scene(摄像机 + Camera Solver 约束、背景素材、帧范围)。 - 在 960×540 的合成 40 帧推轨镜头上实测:56 个跟踪点,求解误差为 0.19 px,精确保留 35 mm 焦距。质量标准:< 0.3 px 很好,< 0.5 很好,> 1 px 会滑动。
- 已知时请提供
focal/sensor。与细化焦距相比,求解器稳定得多。先设置传感器,再设置焦距(焦距以 px 存储)。 - 节点式摇摄(仅摄像机旋转):
tripod=True。没有视差时,普通求解会失败。 - 求解后调整场景朝向(界面、剪辑编辑器上下文):选择 3 个地面跟踪点 →
clip.set_plane(plane="FLOOR"),选择 1 个跟踪点 →clip.set_origin(),选择相距已知距离的 2 个跟踪点 →clip.set_scale(distance=…)。否则比例和向上方向都不确定。 - 其他用途:替换屏幕/标牌 → 在平面表面的 4 个以上跟踪点上使用
clip.create_plane_track()。抖动画面 → 2D 稳定(tracking.stabilization.use_2d_stabilization,添加跟踪点)。建模用点 →clip.bundles_to_mesh()。
有助于成功求解的拍摄/素材技巧
使用快门速度较快的设置(减少运动模糊)、确保有真实视差(移动摄像机,不要只摇摄)、在多个深度拍摄有纹理的静态表面、避免卷帘快门下的快速摇摄;使用广角镜头时,拍摄镜头网格以校准畸变。
注意事项
- 只有在启用
scene.render.use_sequencer且条带位于正在渲染的场景中时,bpy.ops.render.render(animation=True)才会渲染序列编辑器。该脚本会渲染其自身的剪辑场景。 - 移除片段时也会移除其效果条带。在循环中删除前,请先收集名称。
- 图像序列必须连续。缺失的帧会显示为黑色。
评论
支持 Markdown