FFmpeg 常用命令
语法
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
常用命令
获取版本
ffmpeg -version
获取帮助
ffmpeg -help
获取媒体信息
ffmpeg -i input.mp4 -hide_banner
转换格式
ffmpeg -i input.mp4 output.flv
ffmpeg -i input.mp4 -vcodec copy -acodec copy output.flv
-vcodec copy
和 -acodec copy
表示音视频直接拷贝,无编解码。或者可以写为 -c copy
。
抽取视频
ffmpeg -i input.mp4 -vcodec copy -an output.h264
-an
表示无音频。
抽取音频
ffmpeg -i input.mp4 -acodec copy -vn output.aac
-vn
表示无视频。
音视频合并
ffmpeg -i input.h264 -i input.aac -vcodec copy -acodec copy output.mp4
改变音频音量
ffmpeg -i input.mp3 -af volume=0.5 output.mp3
上面的例子会将音量调整为原来的一半。
改变视频分辨率
ffmpeg -i input.mp4 -vf scale=1280:720 -acodec copy output.mp4
ffmpeg -i input.mp4 -vf scale=1280:-1 -acodec copy output.mp4
使用 -1
以保持视频原始宽高比。
视频翻转
ffmpeg -i input.mp4 -vf hflip -acodec copy output.mp4
ffmpeg -i input.mp4 -vf vflip -acodec copy output.mp4
视频旋转
ffmpeg -i input.mp4 -vf transpose=1 -acodec copy output.mp4
上面的例子会将视频顺时针旋转 90°。
视频裁剪
ffmpeg -ss 00:00:10 -i input.mp4 -t 30 -c copy output.mp4
-ss
指定起始时间,-t
指定时长。
值得注意的是,当使用 -c copy
时会出现裁剪不精确的情况。
视频分割为多份
ffmpeg -i input.mp4 -t 10 1.mp4 -ss 00:00:10 -t 10 2.mp4 -ss 00:00:20 -t 10 3.mp4
提取视频图像
ffmpeg -ss 00:00:30 -i input.mp4 -vframes 1 output.jpg