GifHorse:对白搜索与 GIF 制作
GifHorse 用于从本地视频库中检索对白并制作带时间轴字幕的反应类 GIF。
主要用途
- 从电影、电视剧等视频中搜索对白或台词。
- 制作反应类 GIF,并为片段添加精准定时的字幕。
- 为视频片段转录带时间戳的对白,使其可被检索。
主要能力
- 转录视频:通过在线下载字幕、使用本地 .srt 文件或 Whisper AI 提取带时间戳的对白。
- 搜索对白:在整个视频库中即时查找台词。
- 预览片段:在生成 GIF 前查看将要截取的内容。
- 创建 GIF:生成带精准定时字幕的 GIF,并可选添加水印。
安装与初始化
- 安装 gifhorse。
- 安装 FFmpeg-full 以支持字幕渲染。
- 转录视频库(会自动下载字幕): cd ~/gifhorse && source venv/bin/activate gifhorse transcribe ~/Movies
gifhorse 命令必须在虚拟环境中运行,可先激活虚拟环境: cd ~/gifhorse && source venv/bin/activate 或使用激活辅助脚本: source ~/gifhorse/activate.sh
常用命令 转录视频(每个视频只需一次):
- 默认方式:从在线提供方下载字幕(快,推荐) gifhorse transcribe /path/to/videos
- 仅使用本地 .srt 文件(不下载,不使用 Whisper) gifhorse transcribe /path/to/videos --use-subtitles
- 使用 Whisper AI(较慢,但适用于任何视频) gifhorse transcribe /path/to/video.mp4 --use-whisper
仅下载字幕(不存入数据库): gifhorse fetch-subtitles /path/to/videos gifhorse fetch-subtitles /path/to/videos --skip-existing
搜索对白: gifhorse search "memorable quote" gifhorse search "memorable quote" --context 2
创建前预览: gifhorse preview "memorable quote" 1 gifhorse preview "quote" 1 --include-before 1 --include-after 1
创建 GIF: gifhorse create "memorable quote" 1 --output reaction.gif gifhorse create "quote" 1 --width 720 --fps 24 --quality high gifhorse create "quote" 1 --include-before 2 --include-after 1
查看状态: gifhorse stats gifhorse list
时间控制选项
- --include-before N:包含匹配对白前的 N 个对白片段。
- --include-after N:包含匹配对白后的 N 个对白片段。
- --padding-before SECS:在对白开始前增加缓冲秒数(默认 1.0)。
- --padding-after SECS:在对白结束后增加缓冲秒数(默认 1.0)。
- --start-offset SECS:手动调整开始时间(可为负)。
- --end-offset SECS:手动调整结束时间(可为负)。
注意:若想捕捉对白之后的反应画面,应使用 --padding-after 而非 --include-after。include-after 会一直截取到下一个对白片段,可能超过 30 秒。
质量选项
- --quality low|medium|high:调色板质量(影响文件大小)。
- --fps N:帧率(默认 15,24 更流畅)。
- --width N:宽度像素(默认 480,720 为高清)。
- --no-subtitles:生成不带字幕叠加的 GIF。
注意:所有 GIF 都会自动在右下角带有低调的 "gifhorse" 水印。
常见工作流 快速反应 GIF: gifhorse search "perfect" gifhorse create "perfect" 1 --padding-after 2.0 --output perfect.gif
完整对话往返: gifhorse search "key phrase" gifhorse preview "key phrase" 1 --include-before 2 --include-after 1 gifhorse create "key phrase" 1 --include-before 2 --include-after 1
面向 Twitter/X 的高清输出: gifhorse create "quote" 1 --width 720 --fps 24 --quality high --output tweet.gif
带对白后反应的场景: gifhorse create "memorable line" 1 --padding-after 3.0
提示与技巧
- 始终先预览,用 preview 验证时间轴后再创建。
- 默认会下载字幕,直接运行 gifhorse transcribe 即可自动获取字幕。
- 留意文件大小:高质量加长时长会生成大文件(20 秒可能超过 20 MB)。
- Padding 与 Include 的区别:捕捉反应画面时用 --padding-after,而非 --include-after。
- 带上下文搜索:添加 --context 2 可查看周边对白。
文件大小参考
- 低质量,10 秒,360p:约 1–2 MB
- 中质量,10 秒,480p:约 3–5 MB
- 高质量,20 秒,720p:约 20+ MB
故障排查
- 提示 "command not found: gifhorse":激活虚拟环境: cd ~/gifhorse && source venv/bin/activate
- 字幕渲染错误:确认已安装 FFmpeg-full: brew install ffmpeg-full
- 找不到视频文件:数据库保存的是绝对路径;若转录后移动了视频,请在新位置重新转录。
网络共享支持 GifHorse 可处理网络挂载的视频:
- 挂载网络共享(macOS): open "smb://server-ip/share-name"
- 从网络转录: gifhorse transcribe "/Volumes/server-ip/Movies"
适用时机 当用户希望进行以下操作时可使用 gifhorse:
- 在视频库中搜索对白或台词。
- 从电影或电视剧制作反应 GIF。
- 为视频片段添加字幕。
- 转录视频以获得可搜索的对白。
- 在创建前预览 GIF 效果。
- 为社交媒体添加水印。
更多信息
- GitHub:https://github.com/Coyote-git/gifhorse
- 使用指南:https://github.com/Coyote-git/gifhorse/blob/main/USAGE_GUIDE.md
- 路线图:https://github.com/Coyote-git/gifhorse/blob/main/ROADMAP.md
许可证 MIT