mcpField
F
ffmpeg-cli

ffmpeg-cli

github.com/henkisdabro创意与媒体9381 次安装3 周前更新
代码仓库

关于 ffmpeg-cli

ffmpeg-cli 是 FFmpeg 命令行操作参考技能,面向需要处理音视频的用户,涵盖转换、编辑和检查,并按任务提供示例与扩展资料。

主要功能

  1. 01格式封装转换
  2. 02视频缩放与填充
  3. 03按时间裁剪
  4. 04滤镜图与流映射
  5. 05媒体元数据检查

适用场景

  1. 01将 MP4 封装为 MKV 或 MOV
  2. 02制作横屏和竖屏视频版本
  3. 03按时间范围裁剪片段
  4. 04用 ffprobe 检查流元数据

安装

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

$npx skills add https://github.com/henkisdabro/wookstar-claude-plugins --skill ffmpeg-cli

安装后在 Claude Code 中输入/ffmpeg-cli确认已加载。

包含的文件

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

references/
advanced-editing.md
asset-generation.md
audio-processing.md
core-concepts.md
encoding-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 整除

scale 参考

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