Communitygithub.com

kdowswell/veo-tools

使用前进-后退-淡入淡出技术,从视频片段创建无缝无限循环。非常适合英雄背景、环境循环以及任何需要连续播放而无明显跳帧的视频。

veo-tools 是什么?

这是一个用于将视频转换为数学上无缝的无限循环的技能。它采用前进-后退-淡入淡出(forward-reverse-crossfade)技术,通过生成视频的反向副本并在原始结尾与反向开头之间、反向结尾与原始开头之间进行淡入淡出,从而消除视频重新播放时出现的跳跃感。该技能仅依赖 ffmpeg 工具,并提供了一个简单的 bash 脚本,支持自定义淡入淡出持续时间(默认 0.5 秒,可调范围 0.25-2.0 秒),输出视频时长约为输入时长的两倍减去两倍的淡入淡出时长。此技能特别适合在网站英雄区、产品展示、环境背景或加载动画等场景中使用,适用于 Claude Code、Cursor 等 AI 代理工具,开发者可以轻松集成并快速生成连续播放的视频资产。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kdowswell/veo-tools/tree/HEAD/skills/video-loop

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

预览

来自技能 README

文档

视频循环技能

将任意视频转换为数学上无缝的无限循环。使用前进-后退-淡入淡出技术,消除视频重新播放时令人不适的“跳跃”。

工作原理

  1. 获取原始视频
  2. 创建其反向副本
  3. 在原始视频结尾与反向视频开头之间进行淡入淡出
  4. 在反向视频结尾与原始视频开头之间进行淡入淡出
  5. 结果:视频先正向播放,再反向播放,形成完美连续性

前置条件

需要安装 ffmpeg:

brew install ffmpeg

用法

运行脚本,指定输入视频和输出路径:

./scripts/create-loop.sh input.mp4 output-loop.mp4

选项

./scripts/create-loop.sh input.mp4 output.mp4 [crossfade_duration]
  • input.mp4 - 源视频文件
  • output.mp4 - 输出的无缝循环文件
  • crossfade_duration - 可选,默认0.5秒(范围:0.25-2.0)

示例

# 基本用法 - 0.5s 淡入淡出(默认)
./scripts/create-loop.sh hero-background.mp4 hero-loop.mp4

# 更长的淡入淡出,实现更平滑的过渡
./scripts/create-loop.sh hero-background.mp4 hero-loop.mp4 1.0

# 快速淡入淡出,适合节奏更快的内容
./scripts/create-loop.sh product-spin.mp4 product-loop.mp4 0.25

输出

输出视频的长度大约为 (2 * 输入时长) - (2 * 淡入淡出时长)。

示例:6秒输入,0.5s 淡入淡出 = 约11秒的无缝循环

HTML 实现

在英雄区中使用无缝循环:

<video
  autoplay
  muted
  loop
  playsinline
  class="hero-background"
>
  <source src="hero-loop.mp4" type="video/mp4">
</video>
.hero-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

使用场景

  • 英雄背景 - 在文字/按钮下方的环境运动
  • 产品展示 - 旋转/漂浮的产品
  • 环境循环 - 适用于显示屏的氛围内容
  • 加载状态 - 平滑的视觉反馈

提示

  • 较短的淡入淡出(0.25-0.5秒) 更适合动作微妙的视频
  • 较长的淡入淡出(0.75-1.5秒) 能平滑具有更多动态运动的视频
  • 包含对称或抽象内容的视频循环效果最自然
  • 避免使用包含定向运动(如行走、滚动文字)的视频 —— 反向播放时会显得奇怪

相关技能