FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
下面是常见的一些ffmpeg命令。
一:视频压缩分辨率
命令示例:
ffmpeg -y -i input.mp4 -vf scale=1920:1080 output.mp4
说明:
常见视频分辨率有: 720P:【1280x720】、1080P:【1920*1080】、2K:【2560*1440】、4K:【3840*2160】、8K:【7680×4320】
二:改变视频格式
命令示例:
ffmpeg -i input.mp4 -c:v copy output.ts
说明:
常见视频格式有:【.mp4】、【.ts】、【.mov】、【.mpeg】、【.avi】等等
三:视频合并
命令示例:
ffmpeg -f concat -i filelist.txt -c copy output.mp4
说明:
首先需要创建个名为filelist的txt的文本文档,把需要合并的视频一行行添加进去,如:
file 'input1.mp4'
file 'input2.mp4'
然后再执行上面的合并命令。
PS:合并命令常见问题,
1、合并后时间不对
解决办法:先将原视频转成ts文件在合并。ffmpeg -i input.mp4 -c:v copy output.ts
2、合并后视频没有声音
解决办法:FFMPEG合并视频后,合并后的视频音轨信息用的是txt文档排在第一个的信息,如果第一个视频没有声音,则合并后整个视频都会没有声音。因此,我们需要先得到原视频的音轨信息。命令如下:
ffprobe -i input2.mp4 -show_streams -select_streams a -loglevel error
返回结果如下:
将红框中的信息提取出来,给第一个视频导入进去即可,命令如下:
ffmpeg -i input1.mp4 -f lavfi -i anullsrc=cl=stereo:r=44100 -shortest -y output.mp4
四:图片合成视频
命令示例:
ffmpeg -f image2 -i %d.jpeg output.mp4
说明:
%d是数字编号占位符,ffmpeg会按次序加载1-250.jpeg做为输入。这里我们没有指定如何其他参数,所以ffmpeg使用了默认的参数,比如帧率是25fps,视频使用了h264编码,分辨率直接使用了图片原始分辨率……