OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  ffmpeg-master:针对音视频处理任务的专业级 FFmpeg 核心工具

ffmpeg-master:针对音视频处理任务的专业级 FFmpeg 核心工具

 
  field ·  2026-02-04 14:36:30 · 17 次点击  · 0 条评论  

名称: ffmpeg-master
版本: 1.0.0
描述: 适用于使用 FFmpeg 进行视频/音频处理任务,包括转码、过滤、流处理、元数据操作或复杂滤镜图操作。
触发器:
- ffmpeg
- ffprobe
- video processing
- audio conversion
- codec
- transcoding
- filter_complex
- h264
- h265
- mp4
- mkv
- hardware acceleration
role: specialist
scope: implementation
output-format: shell-command


FFmpeg 大师指南

使用 FFmpeg 和 FFprobe 进行专业音视频处理的综合指南。

核心概念

FFmpeg 是领先的多媒体框架,能够解码、编码、转码、复用、解复用、流式传输、过滤和播放几乎所有人类和机器创建的内容。它是一个命令行工具,通过解复用器、解码器、过滤器、编码器和复用器组成的复杂管道来处理流。

常用操作

# 基础转码 (MP4 转 MKV)
ffmpeg -i input.mp4 output.mkv

# 更改视频编码器 (转为 H.265/HEVC)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a copy output.mp4

# 提取音频 (无视频)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

# 调整视频尺寸/缩放
ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4

# 剪切视频 (从第10秒开始,持续30秒)
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4

# 快速精确剪切 (仅对剪切点重新编码较为复杂,因此标准重新编码对于精度更安全)
ffmpeg -ss 00:00:10 -i input.mp4 -to 00:00:40 -c:v libx264 -crf 23 -c:a aac output.mp4

# 合并文件 (使用解复用器)
# 创建 filelist.txt: file 'part1.mp4' \n file 'part2.mp4'
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

# 视频加速/减速 (2倍速)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4

处理类别与应用场景

编码器与质量

选项 应用场景
-c:v libx264 标准 H.264 编码 (最佳兼容性)
-c:v libx265 H.265/HEVC 编码 (最佳压缩/质量)
-crf [0-51] 恒定速率因子 (数值越低质量越高,推荐 18-28)
-preset 编码速度与压缩率权衡 (ultrafast, medium, veryslow)
-c:a copy 音频直通,无需重新编码 (节省时间/保持质量)

过滤器与操作

过滤器 应用场景
scale 更改分辨率 (例如,scale=1920:-1 表示宽度为1080p)
crop 裁剪边缘 (例如,crop=w:h:x:y)
transpose 旋转视频 (1=顺时针90度,2=逆时针90度)
fps 更改帧率 (例如,fps=30)
drawtext 添加文字叠加/水印
overlay 画中画或添加图片水印
fade 添加淡入/淡出效果 (例如,fade=in:0:30 表示前30帧淡入)
volume 调整音频音量 (例如,volume=1.5 表示150%音量)
setpts 更改视频速度 (例如,setpts=0.5*PTS 表示2倍速)
atempo 更改音频速度而不改变音高 (范围 0.5 到 2.0)

检查与元数据

工具/选项 应用场景
ffprobe -v error -show_format -show_streams 获取文件的详细技术信息
-metadata title="名称" 设置全局元数据标签
-map 选择特定流 (例如,-map 0:v:0 -map 0:a:1)

高级:复杂滤镜图

当需要处理多个输入或创建非线性滤镜链时,使用 filter_complex

# 示例:在右下角添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" output.mp4

# 示例:垂直堆叠 (2个视频)
ffmpeg -i top.mp4 -i bottom.mp4 -filter_complex "vstack=inputs=2" output.mp4

# 示例:并排 (2个视频)
ffmpeg -i left.mp4 -i right.mp4 -filter_complex "hstack=inputs=2" output.mp4

# 示例:网格 (4个视频 2x2)
ffmpeg -i v1.mp4 -i v2.mp4 -i v3.mp4 -i v4.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2[top];[2:v][3:v]hstack=inputs=2[bottom];[top][bottom]vstack=inputs=2" output.mp4

# 示例:淡入淡出过渡 (两个片段间的简单交叉淡入淡出)
# 需要手动计算偏移,使用 xfade 滤镜更好
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "xfade=transition=fade:duration=1:offset=9" output.mp4

硬件加速

平台 编码器 命令
NVIDIA (NVENC) H.264 -c:v h264_nvenc
Intel (QSV) H.264 -c:v h264_qsv
Apple (VideoToolbox) H.265 -c:v hevc_videotoolbox

约束与错误处理

  • 流映射:对于复杂文件,始终使用 -map 以确保获取正确的音频/字幕轨道。
  • 定位:将 -ss 放在 -i 之前 用于快速定位 (输入定位),或放在 -i 之后 用于精确定位 (输出定位)。
  • 格式支持:确保输出容器 (文件扩展名) 支持您选择的编码器。
17 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 16 ms
Developed with Cursor