FFMpeg教程
https://blog.csdn.net/class_brick/article/details/82893967
缩放
ffmpeg -i IMG_6188.MOV -filter_complex scale=180:320 -y 缩放.mp4
说明:scale参数为宽高。
视频剪切(时间)
ffmpeg -ss 0:0 -t 0:5 -i IMG_6188.MOV 剪切.mp4
-ss 开始时间
-t 持续时间
剪裁
ffmpeg -i IMG_6188.MOV -filter_complex crop=360:640:100:100 -y 裁剪.mp4
说明:其中的 crop=320:240:0:0为裁剪参数,具体含义是 crop=width:height:x:y,其中 width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。
加水印
ffmpeg -i IMG_6188.MOV -vf "movie=logo.png[logo];[in][logo]overlay=100:100[out]" -y 水印.mp4
说明:LogoName为图片名,overlay=100:100意义为overlay=x:y,在(x,y)坐标处开始添加水印。
左上角:overlay=10:10
右上角:overlay=main_w-overlay_w-10:10
左下角:overlay=10:main_h-overlay_h-10
右下角:overlay=main_w-overlay_w-10:main_h-overlay_h-10
旋转
ffmpeg -i IMG_6188.MOV -filter_complex transpose=1 -y 旋转.mp4
说明:transpose=1为顺时针旋转90°,transpose=2逆时针旋转90°。
上下镜像
ffmpeg -i IMG_6188.MOV -vf "split[mian][tmp];[tmp]crop=iw:ih/2:0:0,vflip[flip];[mian][flip]overlay=0:H/2"-y 上下镜像.mp4
左右镜像
ffmpeg -i IMG_6188.MOV -vf "split [main][tmp]; [tmp] crop=iw/2:ih:0:0, hflip [flip]; [main][flip]overlay=W/2:0" 左右镜像.mp4
加黑边
ffmpeg -i IMG_6188.MOV -vf pad=1120:1960:20:20:black -y 加黑边.mp4
说明:pad=width:high:x:y:coler,这里的宽和高指的是结果视频尺寸(包含加黑边的尺寸),XY指的是源视频添加到结果视频所在位置,coler为填充颜色。
加速/减速视频
ffmpeg -i IMG_6188.MOV -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2[a]" -map "[v]" -map "[a]" 加速.mp4
setpts=0.5*PTS 中的 0.5 是视频速度放慢一半
atempo=2 中的 2 是相对应的音频速度(=1/视频速度)
提取视频
ffmpeg -i IMG_6188.MOV -vcodec copy -an 提取视频.mp4
提取音频
ffmpeg -i IMG_6188.MOV -write_xing 0 提取音频.mp3
音频淡入/淡出
ffmpeg -i IMG_6188.MOV -af afade=t=in:st=0:d=3,afade=t=out:st=13:d=3 音频淡入.mp4
视频截图
ffmpeg -i IMG_6188.MOV -ss 00:00:10 -vframes 1 视频截图.jpg
输出第 10 秒的截图
视频 GIF 转换
ffmpeg -i 剪切.mp4 -r 10 output.gif
GIF 转视频
ffmpeg -f gif -i output.gif GIF.mp4
去logo滤镜
ffmpeg -i IMG_6188.MOV -vf mp=delogo=560:10:190:60:20 -y 去logo滤镜.mp4
将mp4转成ts
ffmpeg -y -i dance_5.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb dance_5.ts
将ts文件切割成一段段(segment_time 每段10秒)
ffmpeg -i dance_3.ts -c copy -map 0 -f segment -segment_list 3/index.m3u8 -segment_time 10 3/nxb-%04d.ts
mp4转yuv
ffmpeg -i test.mp4 test.yuv
播放yuv
ffplay -video_size 640x480 -pixel_format yuv420p out.yuv