基本命令
查看 FFmpeg 版本
ffmpeg -version
查看支持的编解码器
ffmpeg -codecs
查看支持的格式
ffmpeg -formats
获取输入文件信息
ffmpeg -i input.mov
格式转换
将 MOV 转换为 MP4
ffmpeg -i input.mov output.mp4
将 AVI 转换为 MP4
ffmpeg -i input.avi output.mp4
将音频文件转换为 MP3
ffmpeg -i input.wav output.mp3
视频压缩
FFmpeg 可以通过调整比特率、分辨率和编码器等方式压缩视频。以下是一些压缩视频的常用方法:
通过设置比特率压缩视频
ffmpeg -i input.mp4 -b:v 1000k output.mp4
-b:v 选项设置视频的比特率(此处为 1000 kbps)。
通过设置视频质量压缩视频(使用 CRF 参数)
ffmpeg -i input.mp4 -vcodec libx264 -crf 23 output.mp4
-crf 参数用于控制质量(值越小,质量越高,文件越大;值越大,质量越低,文件越小)。通常范围是 18 到 28。
通过调整分辨率压缩视频
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
-vf scale=width:height 选项用于设置输出视频的分辨率。
提取音频
从视频中提取音频
ffmpeg -i input.mp4 -vn -acodec copy output.aac
-vn 选项表示不包括视频流。
从视频中提取音频并转换为 MP3
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
-q:a 0 选项表示高质量音频(VBR)。
裁剪视频
裁剪视频的前 30 秒
ffmpeg -i input.mp4 -ss 00:00:00 -t 00:00:30 -c copy output.mp4
-ss 选项表示开始时间,-t 选项表示持续时间。
从视频的第 10 秒开始截取到结束
ffmpeg -i input.mp4 -ss 00:00:10 -c copy output.mp4
合并视频
合并多个视频文件
首先,创建一个包含所有视频文件路径的文本文件(如 filelist.txt),内容格式如下:
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
使用 FFmpeg 进行合并:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
视频转码
使用 H.264 编码器进行转码
ffmpeg -i input.mp4 -vcodec libx264 -preset fast -crf 23 -acodec aac -b:a 128k output.mp4
-preset 选项控制编码速度和压缩比,常用值包括 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
其他有用的命令
显示输入视频的帧数、帧率、时长等信息
ffprobe -v error -show_entries format=duration:stream=avg_frame_rate:frame=pkt_pts_time input.mp4
提取视频帧
ffmpeg -i input.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr -q:v 2 frames_%04d.jpg
上面的命令将提取所有关键帧(I 帧)并保存为图像文件