关于 video-processor
用于处理视频和音频文件的命令行技能,适合下载、格式转换、音轨提取和转录等任务。它通过一个脚本调用 yt-dlp、FFmpeg 和 OpenAI Whisper。
主要功能
- 01使用 yt-dlp 下载视频和音频
- 02以多种格式提取音频
- 03将视频转换为 MP4 或 WebM
- 04使用 Whisper 转录
- 05导出 txt、srt、vtt 或 json
适用场景
- 01下载视频片段或其音频
- 02提取音频以单独使用
- 03转换视频以便网页播放
- 04生成转录文本或带时间戳字幕
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ iamzhihuix/ happy-claude-skills --skill video-processor安装后在 Claude Code 中输入/video-processor确认已加载。
附带文件scripts/video_processor.py
详细介绍
视频处理器
说明
此技能提供全面的视频处理实用工具,包括 YouTube 视频下载、音频提取、格式转换,以及使用 yt-dlp、FFmpeg 和 OpenAI 的 Whisper 模型进行音频转录。
先决条件
必需工具(必须安装在您的环境中):
-
yt-dlp:用于从 YouTube 和数千个其他网站下载视频
# Install via pip pip install -U yt-dlp # Verify installation yt-dlp --version -
FFmpeg:用于视频/音频处理的多媒体框架
# macOS brew install ffmpeg # Ubuntu/Debian apt-get install ffmpeg # Verify installation ffmpeg -version -
OpenAI Whisper:语音转文本转录模型
# Install via pip pip install -U openai-whisper # Verify installation whisper --help
Python 软件包(通过 PEP 723 包含在脚本中):
- click(命令行框架)
- ffmpeg-python(FFmpeg 的 Python 封装)
- yt-dlp(视频下载器)
工作流
所有视频处理任务均使用 scripts/video_processor.py 脚本。此脚本提供了一个简单的命令行界面,包含以下命令:
0. 从 YouTube 或其他平台下载视频(新增!)
从 YouTube 和数千个其他受支持的网站下载视频:
# Download video
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." output.mp4
# Download audio only (as MP3)
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." --audio-only
# Show video info without downloading
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." --info
# Download with subtitles
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." output.mp4 --subtitle
选项:
--audio-only:仅下载音频(提取为 MP3)--subtitle:下载并嵌入字幕(支持 en、zh-Hans、zh-Hant)--info:显示视频信息,但不下载--format:指定视频格式偏好(默认为最佳画质)
1. 从视频中提取音频
从视频文件中提取音轨:
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio input.mp4 output.wav
选项:
--format:输出音频格式(默认为 wav)。支持:wav、mp3、aac、flac- 输出适用于转录或作为独立音频使用
2. 将视频转换为 MP4
将任意视频文件转换为 MP4 格式:
uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 input.avi output.mp4
选项:
--codec:视频编解码器(默认为 libx264)。常见选项:libx264、libx265、h264--preset:编码速度/质量预设(默认为 medium)。选项:ultrafast、fast、medium、slow、veryslow
3. 将视频转换为 WebM
将任意视频文件转换为 WebM 格式(针对网页优化):
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm input.mp4 output.webm
选项:
--codec:视频编解码器(默认为 libvpx-vp9)。选项:libvpx、libvpx-vp9- WebM 针对网页播放和流式传输进行了优化
4. 使用 Whisper 转录音频
使用 OpenAI 的 Whisper 模型将音频或视频文件转录为文本:
# Transcribe video file (audio will be extracted automatically)
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe input.mp4 transcript.txt
# Transcribe audio file directly
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe audio.wav transcript.txt
选项:
--model:Whisper 模型大小(默认为 base)。选项:tiny:速度最快,准确度最低(约 1GB RAM)base:速度快,准确度较好(约 1GB RAM)[默认]small:均衡(约 2GB RAM)medium:准确度高(约 5GB RAM)large:准确度最高,速度最慢(约 10GB RAM)
--language:语言代码(默认为自动检测)。示例:en、es、fr、de、zh--format:输出格式(默认为 txt)。选项:txt、srt、vtt、json
转录工作流:
- 如果输入是视频,FFmpeg 会将音频提取到临时 WAV 文件
- Whisper 处理音频文件
- 转录内容会以指定格式保存
- 临时文件会自动清理
5. 组合工作流示例
端到端处理视频:
# 1. Extract audio for analysis
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio lecture.mp4 lecture.wav
# 2. Transcribe to SRT subtitles
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe lecture.mp4 lecture.srt --format srt --model small
# 3. Convert to web format
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm lecture.mp4 lecture.webm
关键技术细节
FFmpeg 与 Whisper 的集成:
- FFmpeg 本身不转录音频,而是为外部转录准备音频
- 工作流为:提取音频(FFmpeg)→ 转录(Whisper)→ 可选:重新与视频合并
- FFmpeg 可以将音频直接传输给 Whisper,以进行实时处理(高级用例)
用于转录的音频格式:
- Whisper 使用 WAV 或 MP3 格式的效果最佳
- 采样率:16kHz 为最佳(脚本会自动处理转换)
- 脚本会使用适合 Whisper 的最佳设置提取音频
输出格式:
- txt:纯文本转录内容
- srt:SubRip 字幕格式(包含时间戳)
- vtt:WebVTT 字幕格式(网页标准)
- json:包含词级时间戳的详细 JSON
错误处理
脚本包含全面的错误处理:
- 验证输入文件是否存在
- 检查是否已安装 FFmpeg 和 Whisper
- 为缺失的依赖项提供清晰的错误消息
- 出错时处理临时文件清理
性能提示
- 使用
tiny或base模型快速起草 - 使用
small或medium进行生产级转录 - 仅在需要最高准确度时使用
large - 对于较长的视频,可先提取音频,再分段转录
- 使用 VP9 转换 WebM 耗时更长,但生成的文件更小
示例
示例 1:快速将视频转换为 MP4
用户请求:
I have an AVI file from my old camera. Can you convert it to MP4?
你会:
- 使用带默认设置的 to-mp4 命令:
uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 old_video.avi output.mp4 - 确认转换已成功完成
- 告知用户输出文件的位置
示例 2:提取音频并转录
用户请求:
I recorded a lecture video and need a transcript. Can you extract the audio and transcribe it?
你会:
- 先提取音频:
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio lecture.mp4 lecture.wav - 然后使用 base 模型转录(在速度和准确度之间取得良好平衡):
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe lecture.mp4 transcript.txt --model base - 将 transcript.txt 文件分享给用户
示例 3:创建适用于 Web 的视频并添加字幕
用户请求:
I need to put this video on my website with subtitles. Can you help?
你会:
- 转换为 WebM,以优化 Web 播放:
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm presentation.mp4 presentation.webm - 生成 SRT 字幕文件:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe presentation.mp4 subtitles.srt --format srt --model small - 告知用户现在已有:
- presentation.webm(适用于 Web 的视频)
- subtitles.srt(用于嵌入的字幕文件)
示例 4:指定语言进行高质量转录
用户请求:
I have a Spanish interview video that needs an accurate transcript for publication.
你会:
- 指定语言并使用更大的模型,以获得最佳准确度:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe interview.mp4 transcript.txt --model medium --language es - 可选择创建 SRT 以供审核:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe interview.mp4 transcript.srt --format srt --model medium --language es - 与用户一起审核转录文本,并进行必要的修正
示例 5:批量处理多个视频
用户请求:
I have a folder of training videos that all need to be converted to WebM and transcribed.
你会:
- 列出目录中的所有视频文件:
ls training_videos/*.mp4 - 对每个视频文件运行转换和转录:
# For each video: video1.mp4, video2.mp4, etc. uv run .claude/skills/video-processor/scripts/video_processor.py to-webm training_videos/video1.mp4 output/video1.webm uv run .claude/skills/video-processor/scripts/video_processor.py transcribe training_videos/video1.mp4 output/video1.txt --model base # Repeat for each file - 确认所有转换和转录均已完成
- 提供输出文件摘要
总结
video-processor 技能为常见的视频处理任务提供统一接口:
- 音频提取:以各种格式提取音轨
- 格式转换:转换为 MP4(通用格式)或 WebM(针对 Web 优化)
- 转录:语音转文本,支持多种输出格式
- 灵活性:通过 CLI 参数选择模型、语言和输出格式
所有操作均通过一个文档完善的脚本处理,该脚本具有合理的默认设置和全面的错误处理。