1. 查看视频信息
ffprobe -v error -show_format -show_streams + 视频的路径
2. 将视频以图片的方式转出
ffmpeg -i 【视频的绝对路径】 -q 0 -f image2 【命令执行同级目录下的文件夹】/image_%d.bmp
例如:ffmpeg -i /Users/lepingxu/Downloads/IMG_5660.MOV -q 0 -f image2 out/image_%d.bmp
3. 统计视频中I,B,P帧的数量["pict_type=I"]
ffprobe -v quiet -show_frames /Users/lepingxu/Desktop/不同分辨率/out.mp4 | grep "pict_type=I" | wc -l
4. 统计每一帧的属性(是I,B,P?):
ffprobe -i test4_720.mp4 -select_streams v -show_frames -show_entries frame=pict_type -of csv > frame_index.txt
4. 设置关键帧
//每隔10帧设置一个关键帧,如果是30帧的视频,则代表每秒3个关键帧
ffmpeg -i /Users/lepingxu/Desktop/不同分辨率/out.mp4 -c:v libx264 -x264opts keyint=10 -y /Users/lepingxu/Desktop/不同分辨率/out1.mp4
//每帧都是关键帧
ffmpeg -i /Users/lepingxu/Desktop/不同分辨率/out.mp4 -c:v libx264 -x264opts keyint=1 -y /Users/lepingxu/Desktop/不同分辨率/out1.mp4
//每秒一个关键帧
ffmpeg -i /Users/lepingxu/Desktop/不同分辨率/out.mp4 -c:v libx264 -x264opts keyint=30 -y /Users/lepingxu/Desktop/不同分辨率/out1.mp4
设置默认关键帧:
ffmpeg -i /Users/lepingxu/Desktop/720P.mp4 /Users/lepingxu/Desktop/不同分辨率/out1.mp4
可以设置更少的帧:
ffmpeg -i /Users/lepingxu/Desktop/720.mp4 -keyint_min 300 -g 300 -sc_threshold 0 /Users/lepingxu/Desktop/不同分辨率/out.mp4
3. 裁剪视频
如果想将3840 × 2160分辨率的视频中间裁剪部分数据出来:
ffmpeg -i /Users/lepingxu/Desktop/不同分辨率/out.mp4 -strict -2 -vf crop=1080:1080:0:420 /Users/lepingxu/Desktop/不同分辨率/out1.mp4
5. 将moov信息前置
ffmpeg -i overlay.mp4 -movflags faststart overlayout.mp4
6. 视频关键帧输出到文件
ffprobe -i /Users/lepingxu/Desktop/不同分辨率/out1.mp4 -select_streams v -show_frames -show_entries frame=pict_type -of csv | grep -n I | cut -d ':' -f 1 > /Users/lepingxu/Desktop/不同分辨率/frame_index.txt
7. 设定帧率输出
ffmpeg -i input.avi -r 30 output.mp4
8. 设定分辨率输出
ffmpeg -i input.mp4 -vf scale=800:600 output.mp4
9. 添加文字水印
ffmpeg -i input.mp4 -vf "drawtext=fontfile=simhei.ttf: text=‘4K_60FPS’:x=10:y=10:fontsize=24:fontcolor=white:shadowy=2" output.mp4