- Scale
Scale 保存DAR不变,改变SAR.并且如果输入流的格式不等于下一个filter的输入格式,scale会自动转换格式。
scale=w=200:h=100转到200*100scale=200:100scale=qcif 变成1/4
format
把输入文件转换到指定的像素格式。ffmpeg -i xxx.mp4 -vf format=yuv444p out7.mp4
把一个420p转换到444p.movie, amovie
setpts ,asetpts
修改输入frame的PTS。crop
将输入视频剪切到指定的宽高。
- w,h,out_w,out_h 输出视频的宽高。默认是iw,ih.只在一开始的时候计算一次。
- x,y : 从输入视频的那个位置开始剪切。每帧都会计算一次。
- keep_aspect:是否保持宽高比不变。
- exact:是否使用精确的剪切采样,默认不开启就是使用近视值。
ffmpeg -i xxx.mp4 -vf crop=100:100:12:34 out11.mp4
ffmpeg -i test.mp4 -vf "crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)" out12.mp4 这个输出的视频会有摄像头晃动的效果。
- slip
把输入分成多个相同的输出。需要有个指定输出数量的的参数。默认是2.[in] split [out0][out1].
ffmpeg -i test.mp4 -filter_complex asplit=5 11.mp4 这条命令输出的视频包含5个音频流。
hflip
水平翻转输入视频。ffmpeg -i test.mp4 -vf hflip 11.mp4这个很像录制时候的镜像功能。pad
对输入的图片添加边框,并把原来的输入放到x,y参数的位置。
ffmpeg -i test.mp4 -vf "pad=2*iw:2*ih:ow-iw:oh-ih" 11.mp4 如下图,把原来视频放大两倍,把输入视频放到右下角。屌屌的。

- overlay
把一个视频放到另一个上。有两个输入一个输出。第一个输入作为main,第二个覆盖到上面。
- x,y : 设置上面视频的坐标。
- eof_action:第二个视频结束的时候,如何处理。repeat 重复最后一帧;endall 结束全部;pass main视频继续。
- shortest: 当最短的输入流结束的时候强制结束输出。默认0.
- format: 设置输出视频的格式。yuv420,yuv422,yuv444,rgb,grgb,auto,默认是yuv420
repeatlasr:强制绘制overlay最后一帧直到结束。默认1.
加水印
ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output加两个水印
ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
