2020.10.31更新
python调用ffmpeg 使用ffmpy3
链接https://ffmpy3.readthedocs.io/en/latest/examples.html
pip install ffmpy3
2020.10.30更新
将ffmpeg加入到环境变量
2020.10.28更新
添加了FFMPEG解码MP4帧数不对问题
添加了获取视频总帧数的指令
0.添加环境变量
将ffmpeg解压后的\bin目录加入到系统变量的Path中(路径尽量不要出现奇怪的字符,由数字字母下划线组成)
1.查看视频属性
ffmpeg -i input.mp4
1.1获取视频总帧数
ffprobe -v error -count_frames -select_streams v:0 -show_entries \
stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input.mp4
2.裁剪视频
2.1裁剪尺寸
crop=w:h:x:y
w、h输出视频宽高,x、y视频中某点向右下裁剪(默认居中)
ffmpeg -i input.mp4 -vf crop=256:256:0:0 out.mp4
2.2裁剪时间
ffmpeg -i input.mp4 -ss 00:00:00 -t 5 out.mp4
-ss 起始时间
-t 持续时间
2.3裁剪帧数(YUV)
ffmpeg -s 64x64 -i input.yuv -vframes 30 out.yuv
-vframes 指定帧数
3.转换视频格式
3.1视频封装转换
ffmpeg -i input.mp4 out.mkv
ffmpeg -i input.mp4 -c copy out.mkv
-c copy直接复制码流
3.2视频编码格式转换
ffmpeg -i input.mp4 -vcodec h264 out.mp4
ffmpeg -i input.mp4 -c:v libx265 out.mp4
-vcodec 指定编码器
-c 指定编码格式
-c:v 指定视频编码格式
3.3指定码率&帧率转换
ffmpeg -i input.mp4 -r 30 -b:v 125k out.mp4
-r 指定帧率
-b 控制码率
-b:v 控制视频码率
4.视频解码为yuv文件
ffmpeg -i input.mp4 out.yuv
ffmpeg -i input.mp4 -pix_fmt yuv420p out.yuv
直接解码产生的yuv可能比原封装下的MP4帧数变多,通过-vsync参数控制
ffmpeg -i input.mp4 -vsync passthrough out.yuv
5.yuv文件编码
ffmpeg -s 1280x720 -pix_fmt yuv420p -r 30 -i input.yuv -b:v 125k -r 30 -vcodec libx264 out.mkv
-s 指定yuv文件尺寸
-pix_fmt 指定yuv文件格式
-r 指定输入yuv文件帧率
-b:v 指定视频码率
-r 指定输出视频帧率
-vcodec 指定编码器
网友评论