FFmpeg 是一个用于处理多媒体文件的开源工具,可以在命令行中使用。下面是一些常用的 FFmpeg 命令及其案例:
转格式系列
转换视频格式
ffmpeg -i input.mp4 output.avi
该命令将 MP4 格式的视频转换为 AVI 格式。
转换音频格式
ffmpeg -i input.mp3 output.ogg
该命令将 MP3 格式的音频转换为 Ogg 格式。
提取视频中的音频
ffmpeg -i input.mp4 -vn -acodec copy output.aac
该命令从输入视频中提取音频并将其保存为 AAC 格式。
转换视频为 GIF
ffmpeg -i input.mp4 -vf "scale=320:-1:flags=lanczos,palettegen" -y palette.png
ffmpeg -i input.mp4 -i palette.png -filter_complex "scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" -y output.gif
该命令将输入视频转换为 GIF 动画,先生成调色板,再将其应用于视频。
提取视频帧
ffmpeg -i input.mp4 -r 1 -f image2 output-%03d.png
该命令从输入视频中提取每秒钟的一帧,并将这些帧保存为 PNG 格式的图像文件。
提取某一帧
ffmpeg -i input.mp4 -ss 00:00:30 -frames:v 1 output-30.png
该命令从输入视频中提取第30秒的一帧,并将这些帧保存为 PNG 格式的图像文件。
修改系列
调整视频大小
ffmpeg -i input.mp4 -vf scale=640:360 output.mp4
该命令将输入视频的分辨率调整为 640x360 并将输出保存为 MP4 格式。
添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
该命令在输入视频的左上角添加一个水印,并将输出保存为 MP4 格式。
调整音频音量
ffmpeg -i input.mp3 -af "volume=2" output.mp3
该命令将输入音频的音量调整为原来的 2 倍,并将输出保存为 MP3 格式。
压缩视频
ffmpeg -i input.mp4 -vf "scale=640:-1" -c:v libx264 -crf 23 -preset veryfast -c:a copy output.mp4
该命令将输入视频压缩为分辨率为 640x? 的视频,并使用 H.264 编码器进行编码。压缩质量由 CRF 参数控制,值越小压缩质量越高。Preset 参数控制编码速度,值越小编码速度越快,但压缩质量可能会降低。
添加字幕
ffmpeg -i input.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4
该命令将输入视频与字幕文件结合,将字幕文件编码为 mov_text 格式,将输出保存为 MP4 格式。
旋转视频
ffmpeg -i input.mp4 -vf "transpose=1" -c:a copy output.mp4
该命令将输入视频逆时针旋转 90 度,并将输出保存为 MP4 格式。
修改视频的帧率
ffmpeg -i input.mp4 -r 30 -c:v libx264 -crf 23 -preset veryfast -c:a copy output.mp4
该命令将输入视频的帧率修改为 30 帧每秒,然后使用 H.264 编码器进行编码。
拼接剪辑系列
裁剪视频
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c copy output.mp4
该命令从输入视频的第 10 秒开始裁剪,裁剪时长为 20 秒,然后将裁剪后的视频保存为 MP4 格式。
合并多个视频文件
ffmpeg -i "concat:input1.mp4|input2.mp4" -c copy output.mp4
该命令将两个 MP4 格式的视频文件合并为一个文件,并将其保存为 MP4 格式。
分离视频的音频和视频流
ffmpeg -i input.mp4 -vn audio.mp3
ffmpeg -i input.mp4 -an -vcodec copy video.mp4
该命令将输入视频的音频流和视频流分别保存为 MP3 和 MP4 格式的文件。
合并音频和视频
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4
如果视频中已经包含了音频,这个时候还可以替换视频中的音频,使用下面命令行。
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental
-map 0:v:0 -map 1:a:0 output.mp4
拼接音频文件
ffmpeg -i "concat:input1.mp3|input2.mp3" -acodec copy output.mp3
该命令将两个 MP3 格式的音频文件拼接为一个文件,并将其保存为 MP3 格式。
裁剪音频
ffmpeg -i input.mp3 -ss 00:00:30 -t 00:02:00 -acodec copy output.mp3
该命令从输入音频的第 30 秒开始裁剪,裁剪时长为 2 分钟,然后将裁剪后的音频保存为 MP3 格式。