FFmpeg 是一个处理视频和音频内容的开源工具库,可以实现编码、解码、转码、流媒体和后处理等服务。
| ffmpeg -i input.mov output.mp4 |
-i
输入文件
| ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 128k -pix_fmt yuv420p output.mp4 |
| ffmpeg -ss 0:0 -t 0:10 -i input.mov output.mp4 |
-ss
开始时间 -t
持续时间
| ffmpeg -sseof -0:10 -i input.mov output.mp4 |
-sseof
相对于文件末尾的开始时间
将原视频缩小一半,并裁剪画面正中的正方形区域:
| ffmpeg -i input.mov -vf scale=iw/2:-1,crop=ih output.mp4 |
scale=width:height
iw/ih
表示输入宽度/高度 -1
表示按输入尺寸等比自动计算 crop=width:height:x:y
x:y
指定裁剪的左上角位置,默认值为 (in_w-out_w)/2
和 (in_h-out_h)/2
,即输出视频为原视频的中央区域
| ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2[a]" -map "[v]" -map "[a]" output.mp4 |
setpts=0.5*PTS
中的 0.5 是视频速度放慢一半 atempo=2
中的 2 是相对应的音频速度(=1/视频速度)
| ffmpeg -i input.mov -vcodec copy -an output.mp4 |
-vcodec copy
复制视频编码 -an
禁止音频输出
| ffmpeg -i input.mov -write_xing 0 output.mp3 |
-write_xing 0
#2697: MP3 output duration incorrect in OS X
时长为 20 秒的视频,前 3 秒淡入,最后 3 秒淡出:
| ffmpeg -i input.mov -af afade=t=in:st=0:d=3,afade=t=out:st=13:d=3 output.mp4 |
| ffmpeg -i input.mov -r 10 output.gif |
-r
fps 帧率
| ffmpeg -f gif -i input.gif output.mp4 |
-f gif
强制输入文件识别为 GIF 格式
| ffmpeg -i input.mov -vf fps=1 -q:v 2 output%03d.png |
| ffmpeg -i input.mov -ss 00:00:10 -vframes 1 output.jpg |
| ffmpeg -y -i input.mp4 -vf "fps=1,scale=iw/2:-1,tile=10x3" -an output.jpg |