视频拆帧
ffmpeg -i demo.mp4 -r 24 ./%06d.png
切帧(一段时间,从600s开始 持续60s):
ffmpeg -i input.mp4 -ss 600 -t 60 -r 25 raw/%06d.png
图片合成视频
ffmpeg -f image2 -start_number 2935 -r 24 -i raw/%06d.png -c:v libx264 -preset slow -crf 15 -pix_fmt yuv420p -an -y output.mp4
截取视频片段
ffmpeg -y -ss start -t duration -i filename -c:v libx264 -crf 10 -preset superfast -an outfile
其中“-an”表示去掉音频
拼接视频
两个视频左右拼接
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "[0:v]pad=iw*2:ih[a];[a][1:v]overlay=w*1[b]" -map [b] -r 24 -c:v libx264 -preset slow -crf 16 -pix_fmt yuv420p result.mp4
四个视频拼接
ffmpeg -i ori.mp4 -i color4.mp4 -i color7.mp4 -i xiaomi.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h[d]" -map "[d]" -r 25 -c:v libx264 -preset slow -crf 16 -pix_fmt yuv420p result.mp4
其中pad=iw2:ih2表示拼接后视频大小,第一个视频默认放置在左上角,[a]用来代表该视频的占位符,[1:v]表示第几个视频,下表从0开始,[1:v]overlay=w则表示第二个视频放在坐标(w,0)的位置上。
调整视频分辨率
ffmpeg -i xxx.mp4 -vf scale=iw*0.5:ih*0.5 -sws_flags fast_bilinear -c:v libx264 -c:a copy xxx_bli.mp4
剪切视频
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
w : h : x : y 分别表示输出视频的尺寸,剪切视频的位置