因为工作汇报原因总是需要ffmpeg来加减速视频,转换格式。但每次用的时候都记不住几个常用的指令,特此记录一下,方便下次再用:
格式转换:(-i 输入)
把2.wmv转换为exploration_2.mp4
ffmpeg -i 2.wmv exploration_2.mp4
时长截取:(-ss 开始时间,-t持续时长)
把walk1.mp4从第二秒开始截取,向后截取8.5秒,输出为walk2.mp4
ffmpeg -i walk1.mp4 -ss 00:00:02 -t 8.5 walk2.mp4
尺寸调整:(-s)
把walk1.mp4大小改为320x960,输出为walk2.mp4
注意,修改完的视频,如果用ubuntu默认的视频播放器打开,还是原先的大小,似乎没变,实际上查看属性,是已经改掉的状态了。
ffmpeg -i walk1.mp4 -s 320x960 walk2.mp4
还有一种写法
ffmpeg -i walk1.mp4 -vf scale=960:320 walk2.mp4
为了让视频可以等比例缩放,可以用-1代替其中的一位。
ffmpeg -i walk1.gif -vf scale=320:-1 walk2.gif
加速处理(-vf setpts=PTS/2)
把视频加速两倍,转为gif格式:
ffmpeg -i walk1.mp4 -vf setpts=PTS/2 walk2.gif
其中,PTS/2中的2就是2倍。
注意,转完的gif会变的很大。
那么可以通过上面调整图像大小来处理,也可以调整帧速率来解决。前者会让图片变小,后者会让图片看起来不连贯。
调整帧速率(-r):
把walk1.gif 以每秒15帧来输出:
ffmpeg -i walk1.gif -r 15 walk3.gif
把两个视频一左一右拼起来:
ffmpeg -i 11.mp4 -i 22.mp4 -filter_complex hstack output.mp4
图片拼成视频:
ffmpeg -f image2 -i %d.jpg -vcodec libx264 image_test.mp4
视频拆帧:
ffmpeg -i suit_image.mp4 -f image%05d.jpg
视频压缩:
ffmpeg -i Video.avi -fs 30MB save-name.mp4
更换编码:
ffmpeg -i source.mp4 -pix_fmt yuv420p -c:a copy -movflags +faststart out.mp4
更换编码多用于:
使用ubuntu的kazam软件录屏,产生的mp4无法在手机、windows等平台播放,需要通过上述指令,修改格式,从而进行播放。
以上就是我常用的一些指令,其余指令参见百度。