FFmpeg安装和使用

发布于:2025-04-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

1. 安装与环境配置

Windows
# 方法1:官网下载预编译二进制包
https://ffmpeg.org/download.html#build-windows
解压后添加bin目录到系统PATH

# 方法2:通过Chocolatey安装
choco install ffmpeg
macOS
# 使用Homebrew安装
brew install ffmpeg
Linux
# Debian/Ubuntu
sudo apt install ffmpeg

# CentOS/RHEL
sudo yum install epel-release
sudo yum install ffmpeg
验证安装
ffmpeg -version  # 输出版本信息
ffmpeg -i input.mp4 -c:v libx264 output.mp4  # 简单转码测试

2. 基本命令与功能

命令结构
ffmpeg [全局选项] -i 输入文件 [操作选项] 输出文件
常用参数
参数 作用
-i 指定输入文件
-c:v 视频编解码器(如libx264
-c:a 音频编解码器(如aac
-b:v 视频比特率(如2000k
-ss 跳转到指定时间(如00:01:23
-t 持续时间(如60秒)
基础示例
# 转换视频格式(MP4 → MKV)
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mkv

3. 音视频转换

格式转换
# MP4转MKV(直接复制流)
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mkv

# FLAC转MP3(音频编码)
ffmpeg -i audio.flac -c:a libmp3lame -b:a 320k output.mp3
视频转音频
ffmpeg -i video.mp4 -vn -c:a libmp3lame audio.mp3
# -vn : 禁用视频流
调整参数
# 修改分辨率(缩放到640x480)
ffmpeg -i input.mp4 -vf scale=640:480 output.mp4

# 调整帧率为30fps
ffmpeg -i input.mp4 -r 30 output.mp4

# 设置视频比特率为2Mbps
ffmpeg -i input.mp4 -b:v 2000k output.mp4
提取与合并流
# 提取音频流
ffmpeg -i video.mp4 -map 0:a -c:a copy audio.aac

# 合并音视频
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4

4. 视频切割与拼接

精确切割
# 从第10秒开始截取30秒
ffmpeg -ss 00:00:10 -i input.mp4 -t 30 -c:v copy -c:a copy cut.mp4
文件拼接
# 创建待拼接文件列表(filelist.txt)
file 'part1.mp4'
file 'part2.mp4'

# 执行拼接(相同编码格式)
ffmpeg -f concat -i filelist.txt -c copy output.mp4

5. 信息提取与分析

查看详细信息
ffprobe -v error -show_format -show_streams input.mp4
# 生成JSON格式报告
ffprobe -v quiet -print_format json -show_streams input.mp4
提取关键帧与缩略图
# 提取所有关键帧
ffmpeg -i input.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr keyframes_%03d.jpg

# 生成缩略图(每秒1张)
ffmpeg -i input.mp4 -vf fps=1 thumbnails_%03d.jpg

6. 高级功能与优化

视频压缩
# H.265编码(CRF值越小质量越高,推荐18-28)
ffmpeg -i input.mp4 -c:v libx265 -crf 23 -c:a aac output.mp4
添加水印与字幕
# 添加图片水印(右上角)
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=W-w-10:10" output.mp4

# 嵌入字幕
ffmpeg -i video.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4
多音轨处理
# 保留所有音轨和字幕
ffmpeg -i input.mkv -map 0 -c copy output.mp4

# 选择特定音轨(例如第2条)
ffmpeg -i input.mkv -map 0:v -map 0:a:1 -c copy output.mp4

7. 常见问题与优化

常见错误解决
  1. “Unrecognized option”
    检查参数拼写,确保FFmpeg版本支持该选项。
  2. “Codec not supported”
    安装对应编码器(如libx264)或使用-c:v copy跳过转码。
性能优化
  • 启用硬件加速(例如NVIDIA显卡):
    ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc output.mp4
    
  • 限制线程数:-threads 4
  • 降低处理分辨率:-vf scale=1280:-1

推荐学习资源

  1. 官方文档:https://ffmpeg.org/documentation.html
  2. FFmpeg Wiki:https://trac.ffmpeg.org/wiki
  3. 实用命令大全:https://gist.github.com/steven2358/ba153c642fe2bb1e47485962df07c730
  4. 视频教程:B站搜索“FFmpeg实战教程”