文章摘要: 本文描述了ffmpeg命令的使用方法。
操作系统: Debian8
软件版本: ffmpeg-4.1.2


编码转换:

ffmpge -i infile.m4a outfile.mp3

-i 指明输出文件名称

正常情况下,可以根据扩展名自动识别编码,也可以指定编码

ffmpeg -i infile.mov -c:v libx265  outfile.avi
ffmpeg -i infile.avi -vcodec h264  outfile.mp4
ffmpeg -i infile.avi -vcodec mpeg4 outfile.mp4

-vcodec 指定视频编码方式.

查看支持格式:

ffmpeg -encoders

剪切:

ffmpeg -ss 00:03:00 -i video.mp4 -t 60 -c copy cut.mp4

ffmpeg -ss 00:03:00 -i video.mp4 -to 00:02:00 -c copy cut.mp4

ffmpeg -ss 00:03:00 -i video.mp4 -c copy cut.mp4

-ss表示起始位置,官方规定最好写在-i参数前边,以获取精确时间,小数点后单位为ms
-t 表示时间长度, -to表示结束位置,如果无此参数,则表示从指定位置一直到最后(去片头)


旋转:

ffmpeg -i input.mp4 -vf "rotate=90*PI/180" output.mp4

缩放:

ffmpeg -i input.mp4 -s 720x480 -b:v 1500k output.mp4

调整播放速度:
加速四倍:

ffmpeg -i TheOrigin.mp4 -vf  "setpts=0.25*PTS" UpTheOrigin.mp4

四倍慢速:

ffmpeg -i TheOrigin.mp4 -vf "setpts=4*PTS" DownTheOrigin.mp4

合并:
先建立一个list.txt文件,输入待合并内容列表:

file '/path/to/file1.mp4'
file '/path/to/file2.mp4'
file '/path/to/file3.mp4'
ffmpeg -f concat -i list.txt -c copy output.mp4

由于合并视频的多样性,可以先转换成同一格式,再进行合并:

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

去除视频声音:

ffmpeg -i rhythmofrain.mp4 -vcodec copy -an selince.mp4 

提取声音: 只需要将输出格式设置为声音格式即可

ffmpge -i input.avi output.mp3

将声音合并至视频:

ffmpeg -i movie.mp4 -i music.mp3 -vcodec copy output.mp4

视频和音频的时间长度最好设置为一致,否则会造成有图像没声音或者有声音没图像的情况。


加图片水印:

ffmpeg  -i movie.mp4 -i logo.png -filter_complex overlay=main_w-overlay_w-10:10 output.mp4

说明:
-filter_complex overlay=左边距:上边距

main_w - 视频单帧图像宽度
main_h - 视频单帧图像高度
overlay_w - 水印图片的宽度
overlay_h - 水印图片的高度

左上角: 0:0(可省略)
右上角: main_w-overlay_w:0
左下角: 0:main_h-overlay_h
右下角: main_w-overlay_w: main_h-overlay_h
中间位置:main_w/2-overlay_w/2:main_h/2-overlay_h/2


查看文件音视频属性

ffprobe -i rain.mp4

参数说明:
-r 指定帧率
-s 指定分辨率
-b 指定比特率

-acodec 指定音频编码,copy表示不解码,直接原样输出
-ab 指定音频比特率
-ac 指定声道数
-ar 指定采样率(44100Hz)
-an 表示丢弃声音数据(disable audio)

-vcodec 指定视频编码方式,copy表示不解码,直接原样输出


参考文档:
http://www.ffmpeg.org/ffmpeg.html
https://www.cnblogs.com/jasonzeng/p/8338019.html
https://blog.csdn.net/Lyman_Ye/article/details/80305904
https://jingyan.baidu.com/article/335530daf82a3b19cb41c339.html