1. 常用的帮助命令
可用的bit流 :ffmpeg –bsfs
可用的编解码器:ffmpeg –codecs
可用的解码器:ffmpeg –decoders
可用的编码器:ffmpeg –encoders
可用的过滤器:ffmpeg –filters
可用的视频格式:ffmpeg –formats
可用的声道布局:ffmpeg –layouts
可用的license:ffmpeg –L
可用的像素格式:ffmpeg –pix_fmts
可用的协议:ffmpeg -protocals
2. 获取视频信息
ffprobe -i input.mp4
或者使用第三方工具软件 mediainfo 查看视频信息
3. 单独提取出视频和音频
ffmpeg -i input.mp4 -an output.mp4
#提取视频
ffmpeg -i input.mp4 -vn output.mp3
#提取音频
另外:
当使用ffmpeg -i input.mp4 -acodec copy -vn output.mp3
应该注意原始的input.mp4中音频的编码格式,如果audio codec是acc ,则该命令运行失败。
4. 视频文件格式转换
ffmpeg -i input.mp4 output.avi
ffmpeg -i input.mkv output.mov
5. 视频编码格式转换
ffmpeg -i input.mp4 -vcodec h264 output.mp4
#将input.mp4的编码格式转换为H.264
ffmpeg -i input.mp4 -vcodec mpeg4 output.mp4
#将input.mp4的编码格式转换为MPEG4
另外:
当H264编码格式转换为MPEG4编码格式时,会使码率降低,画质变差,文件变小,因此,当转换编码格式时,若要求码率不变,则在转换中写出特定的码率:
ffmpeg -i input.mp4 -vcodec mpeg4 -b:v 1490k optput.mp4
6. 视频剪切
ffmpeg -i input.mp4 -ss 00:00:03 -t 22 -vcodec copy -acodec copy output.mp4
#起始时间为视频的第03秒,截取的时间长度为22秒。
ffmpeg -i input.mp4 -ss 00:00:03 -t 00:00:22 -vcodec copy -acodec copy output.mp4
#表示#起始时间为视频的第03秒,截取的时间长度为22秒。
ffmpeg -i input.mp4 -ss 00:00:03 -to 00:00:22 -vcodec copy -acodec copy output.mp4
#表示#起始时间为视频的第03秒,剪切到视频的第22秒,则截取的时间长度为19秒。
7. 视频截图
ffmpeg -i input.mp4 -f mjpeg -ss 8 -t 1 output.jpg
ffmpeg -i input.mp4 -f image2 -ss 8 -vframes 1 output.jpg
上面两条命令得到的图像相同。
8. 从视频中连续取图
ffmpeg -i input.mp4 -r 1 -s 1280*720 -f image2 picture-%03d.jpeg
#将input.mp4每秒生成一张图片,图片大小为1280*720,图片名按照picture-001.jpeg,picture-002.jpeg…
9. 将图片变成视频
ffmpeg -f image2 -framerate 1 -i picture-%03d.jpeg output.mp4
#将picture-001.jpeg,picture-002.jpeg…等图片以每秒一张图的速度生成视频播放。
10. 视频码率控制
转换后的视频码率可以高于转换前,但是画质不会改变;
也可以通过命令将原码率降低,但画质会变差。
ffmpeg -i input.mp4 -b:v 1500k -bufsize 1500k -minrate 1400k -maxrate 2500k output.mp4
# 将原视频的码率转换为1.5Mbps,控制在1.4Mbps至2.5Mbps之间,码率控制缓冲器为1.5Mbps。
11. 添加logo
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:0 output.mp4
# 在左上角添加logo
其他位置:
overlay=W-w
#右上角
overlay=0:H-h
#左下角
overlay=W-w:H-h
# 右下角
12. 去除logo
语法:-vf delogo=x:y:w:h:t:show
x:y
logo离左上角的坐标
w:h
logo的宽和高
show
设置一个矩形 默认为0
ffmpeg -i input.mp4 -vf delogo=1:1:80:80:0 delogo.mp4
13.视频分辨率,方向改变
ffmpeg -i input.mp4 -vf scale=1280*720 output.mp4
ffmpeg -i input.mp4 -s 1282*720 output.mp4
#将原视频图像大小改为1280*720
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
#顺时针旋转90°
"transpose=2"
#逆时针旋转90°;
"transpose=3"
#顺时针旋转90°后再水平翻转;
"transpose=0"
#逆时针旋转90°后再水平翻转;
ffmpeg -i input.mp4 -vf hflip out.mp4
#水平翻转视频画面;
ffmpeg -i input.mp4 -vf vflip out.mp4
#垂直翻转视频画面。
参考链接以及补充链接:https://www.jianshu.com/p/3c8c4a892f3c