视频转为图片帧
ffmpeg -i input.mp4 -r 10 -f image2 ./out/%d.jpg
参数说明:-i 设定输入流;-r 设定帧速率,默认为25;-f设定输出格式,image2表示输出格式为图片;事先保证输出目录存在,否则运行出错
视频裁剪
A:时间维度,例如把一个视频从time1开始的duration这段剪出来
方式1:ffmpeg -y -i input -vcodec libx264 -ss time1 -t duration output
这种方式速度较慢,但是剪完的视频文件较小
示例:将test.mp4从第5秒开始剪出一段时长为4秒的视频
ffmpeg -y -i test.mp4 -vcodec libx264 -ss 5 -t 4 result_1.mp4
ffmpeg -y -i test.mp4 -vcodec libx264 -ss 00:00:05 -t 00:00:04 result_2.mp4
方式2: ffmpeg -y -i Input -ss time1 -t duration -codec copy Output
此种方式速度较快,但是相对于方式1剪完的视频文件较大
ffmpeg -y -i test.mp4 -ss 5 -t 4 -codec copy result_3.mp4
ffmpeg -y -i test.mp4 -ss 00:00:05 -t 00:00:04 -codec copy result_4.mp4
B:空间维度,把一个视频剪出画面的一部分,例如把视频从像素(left,top)开始剪出一段宽为w,高为h的视频,left表示离视频左边缘像素数,top表示离视频上边缘像素数
方式1:ffmpeg -y -i Input -vcodec libx264 -vf crop=w:h:left:top Output
示例:将test.mp4从像素坐标(20,30)开始剪出一段宽300高200的视频
ffmpeg -y -i test.mp4 -vcodec libx264 -vf crop=300:200:20:30 result_5.mp4
方式2: ffmpeg -y -i Input -vf crop=w:h:l:r Output
示例:将test.mp4从像素坐标(20,30)开始剪出一段宽300高200的视频
ffmpeg -y -i test.mp4 -vf crop=300:200:0:100 result_8.mp4
C:也可以将两条命令合并同时在空间维度和时间维度剪裁
ffmpeg -y -i test.mp4 -vf crop=500:600:30:30 -ss 10 -t 5 result1230.mp4
ffmpeg -y -i test.mp4 -vcodec libx264 -vf crop=300:200:0:100 -ss 5 -t 10 result_10.mp4