关于 ffmpeg-cli
ffmpeg-cli 是 FFmpeg 命令行操作参考技能,面向需要处理音视频的用户,涵盖转换、编辑和检查,并按任务提供示例与扩展资料。
主要功能
- 01格式封装转换
- 02视频缩放与填充
- 03按时间裁剪
- 04滤镜图与流映射
- 05媒体元数据检查
适用场景
- 01将 MP4 封装为 MKV 或 MOV
- 02制作横屏和竖屏视频版本
- 03按时间范围裁剪片段
- 04用 ffprobe 检查流元数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ henkisdabro/ wookstar-claude-plugins --skill ffmpeg-cli安装后在 Claude Code 中输入/ffmpeg-cli确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced-editing.mdasset-generation.mdaudio-processing.mdcore-concepts.mdencoding-and-settings.md详细介绍
FFmpeg CLI 参考
目录
依赖项
验证是否已安装 ffmpeg:
ffmpeg -version
如果未安装,请安装:
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows (scoop)
scoop install ffmpeg
标志和滤镜术语表
| 标志/滤镜 | 用途 |
|---|---|
-vf(也可用 -filter:v) | 视频滤镜 |
-af(也可用 -filter:a) | 音频滤镜 |
-filter_complex | 用于多流滤镜处理的复杂滤镜图 |
[0] | 第一个输入中的所有流(从 0 开始编号) |
[0:v] | 第一个输入中的视频流 |
[1:a] | 第二个输入中的音频流 |
0:v:0 | 第一个输入中的第一个视频流 |
0:a:1 | 第一个输入中的第二个音频流 |
[name] | 命名流,与 -filter_complex 搭配使用 |
-map [name] | 选择输出流 |
-y | 无需确认,自动覆盖输出文件 |
表达式求值:if、lte、gte 等。
格式转换
将 MP4 重封装为 MKV(不重新编码):
ffmpeg -i input.mp4 -c copy output.mkv
MKV 和 MP4 都是用于 H264/H265 视频和 AAC/MP3 音频的容器。视频质量由编解码器决定,而非容器。MKV 支持多个视频流;MP4 的设备兼容性更广。
将 MP4 重封装为 MOV:
ffmpeg -i input.mp4 -c copy output.mov
将 MP4 编码为 AVI(会重新编码):
ffmpeg -i input.mp4 output.avi
调整大小和填充
放大到 1080x1920,保持宽高比,并填充黑边:
ffmpeg -i input.mp4 -vf "scale=w=1080:h=1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1:1" output.mp4
scale 选项:
force_original_aspect_ratio=decrease- 自动缩小输出尺寸以适配宽高比force_original_aspect_ratio=increase- 自动增大尺寸scale=w=1080:h=-1- 让 ffmpeg 根据宽高比选择合适的高度scale=w=1080:h=-2- 强制尺寸可被 2 整除
pad 选项:
pad=width:height:x:y:color- x:y 是左上角的位置(ow-iw)/2:(oh-ih)/2使视频居中;负值也可使其居中- pad 参考
setsar=1:1 可确保像素宽高比为 1:1,避免 ffmpeg 补偿宽高比变化。setsar 参考
从一个输入生成两个缩放输出(横屏和竖屏,并叠加徽标):
ffmpeg -i input.mp4 -i logo.png \
-filter_complex "[0:v]split=2[s0][s1]; \
[s0]scale=w=1920:h=1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1:1[out1]; \
[s1]scale=w=720:h=1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1:1[s2]; \
[s2][1]overlay=(main_w-overlay_w)/2:(main_w-overlay_w)/5[out2]" \
-map [out1] -map 0:a output_youtube.mp4 \
-map [out2] -map 0:a output_shorts.mp4
按时间裁剪
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:25 output.mp4
如需更快但精度较低的裁剪,请参阅 references/encoding-and-settings.md 中的 输入/输出定位 一节。有关裁剪时使用 -c copy 的权衡,请参阅 references/core-concepts.md。
验证和检查
列出受支持的格式:
ffmpeg -formats
列出受支持的编解码器:
ffmpeg -codecs
ffprobe
ffprobe 可提供媒体文件的结构化元数据。
显示详细的流信息:
ffprobe -show_streams -i input.mp4
验证 moov atom 的位置(faststart):
ffprobe -v trace -i input.mp4
查看输出开头附近是否有 type:'moov',以确认已应用 faststart。
参考文件
需要深入了解时,使用 Read 工具按需加载这些文件。
| 文件 | 主题 |
|---|---|
references/core-concepts.md | -c copy(重新封装与转码)、输入/输出定位、编码速查(H264/H265/VP9 CRF 范围)、GPU 加速概述、format=yuv420p、-movflags +faststart |
references/audio-processing.md | 替换音频、提取音频、混合音频、合并 MP3 音轨、交叉淡化、更改音频格式、合并与标准化 |
references/advanced-editing.md | 播放速度、FPS 更改、跳切、社交媒体视频裁剪、drawtext 叠加、字幕(烧录/嵌入/提取)、合并媒体(叠加、徽标、背景、串接片头/主体/片尾、vstack) |
references/asset-generation.md | 图片转视频、带淡入淡出的幻灯片、Ken Burns(zoompan)、GIF、带淡入淡出的视频合集、缩略图(单张/多张/场景)、图片缩略图、故事板(场景拼图/关键帧/第 N 帧) |
references/encoding-and-settings.md | 优化的日常命令、H264(libx264)深入解析、H265(libx265)Apple 兼容性、VP9(libvpx-vp9)恒定质量、单遍与双遍、-c copy 详解、定位详解、GPU 详解(Nvidia/Intel/AMD) |
评论
支持 Markdown