FFmpeg的使用

1、视频转换格式—-将test.avi格式的软件转换为test.mp4

   ffmpeg -i test.avi test.mp4

2、视频截图保存为图片

   ffmpeg -i inputfile.avi -r 1 -q:v 2 -f image2 image-%05d.jpg

   -r:指定抽取的帧  即从视频中每秒抽取图片的数量 1代表每秒抽取一帧

   -f:保存图片使用的格式  可省略

   Image-%05d.jpg:指定文件的输出名字

3、截取与合并视频

截取:

ffmpeg  -i 0005.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:00:100 d:/cutout1.mp4 -y   -ss:指定从什么时候开始

   -t:指定需要截取多长时间

   -i:指定输入文件

   截取视频如果出现时间点不对,出现这种情况的原因是因为截取到的地方不是关键帧,如果项目中对时间要求比较精确的话,需要先将视频将所有的帧提前转换关键帧—-将所有的帧编码方式转变为帧内编码

   具体操作:老版本:ffmpeg -i input -samep -intra output

             -i:输入视频文件

             -sameq :保持同样的视频质量

             -intra :帧内编码

             output:输出文件名

             新版本:ffmpeg -i inputfile -strict -2 -qscale 0 -intra output.mp4

合成:

ffmpeg -ss 00:00:00 -t 00:00:20 -i input.mp4 -vcodec copy output.mp4

ffmpeg -f concat -i list.txt -c copy concat.mp4

list.txt文件中的书写方式:

 file video1.mp4

 file video2.mp4

4、给视频添加水印

ffmpeg -i xiaozheng.mp4 -i mark.png -filter_complex overlay test1.mp4

给视频添加文字水印:

ffmpeg -i xiaozheng.mp4 -vf “drawtext=fontfile=simsunb.ttf: text=’zhengqijia’:x=100:y=10:fontsize=24:fontcolor=yellow:shadowy=2” drawtext.mp4

文字水印filter是drawtext simsunb.ttf:text=’zhengqijia’

x:y是显示位置

fontsize:文字大小

fontcolor:文字颜色

给视频添加图片水印:

ffmpeg -i input.mp4 -vf “movie=mark.png[watermark];[in][watermark] overlay=10:10[out]” output.mp4