mcpField
B
blender-video-editing

blender-video-editing

github.com/el4cteo创意与媒体1.1k242 次安装1 天前更新
代码仓库

关于 blender-video-editing

blender-video-editing 是用于剪辑视频和跟踪摄像机运动的 Blender 技能。它通过脚本构建序列编辑,并支持实时会话中的跟踪,可配置切换、标题、音频和跟踪场景。

主要功能

  1. 01在独立场景中构建剪辑
  2. 02组合影片、静帧和图像序列
  3. 03添加交叉淡化、标题和音频
  4. 04渲染视频或 PNG 帧
  5. 05跟踪摄像机运动并求解场景

适用场景

  1. 01将渲染镜头剪成审片版本
  2. 02制作硬切的图像序列输出
  3. 03跟踪素材以匹配摄像机位置
  4. 04设置平面屏幕或标牌替换

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/el4cteo/blender-skills --skill blender-video-editing

安装后在 Claude Code 中输入/blender-video-editing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
_bpyx.py
track_camera.py
vse_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_error px 的跟踪并重新求解,随后运行 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