ffmpeg工具实用命令

说明:ffmpeg是一款非常好用的媒体操作工具,包含了许多对于视频、音频的操作,有些视频播放器里面实际上就是使用了ffmpeg。本文介绍ffmpeg的使用以及一些较为实用的命令。

安装

ffmpeg是命令行操作的,不需要安装,可在官网下载压缩包;

ffmpeg工具实用命令_第1张图片

解压到一个没有中文、没有数字的路径下,配置一下环境变量,这些都是基本操作,不再详细介绍;

ffmpeg工具实用命令_第2张图片

打开CMD,输入ffmepg,出现以下信息表示环境变量配置成功;

ffmpeg工具实用命令_第3张图片

使用

命令1:提取视频所有帧

有时我们需要对视频图像进行处理,可以考虑把视频按帧提取出来成图片,再使用代码对图像进行逐帧处理,可使用以下命令:

ffmpeg -i <视频文件名> -r 60(帧数) -qscale:v 2 out/%04d.jpg(图片路径及命令规则)

参数介绍:

  • out/%04d.jpg:表示提取出来的图片放在当前目录下的out文件夹,名称按照"0001.jpg、0002.jpg……"的方式命名;

比如,我这里有一个视频(before.mp4)

ffmpeg工具实用命令_第4张图片

在当前目录创建一个out文件夹,用于接收图片,输入下面命令,将视频按照24帧/秒转为图片;

ffmpeg工具实用命令_第5张图片

可以感受到提取速度还是非常快的,1分半的视频,2090帧,几秒钟就全部提取出来了,这是因为ffmpeg工具是使用C系语言开发的;

ffmpeg工具实用命令_第6张图片

另外,记住转换的解码率,后面合并图片为视频时需要用;

ffmpeg工具实用命令_第7张图片

命令2:图片合成视频

一般来说,我们将上面提取出来的图片进行了一些处理后,就可以将处理后的图片集合成视频,使用下面这行命令:

ffmpeg -f image2 -framerate 24(帧数) -i %04d.jpg -b:v 5626k(转码率) <生成视频名>
  • %04d.jpg:表示输入的图片集合是以“0001.jpg、0002.jpg……”命名规则命名的;

比如将上面提取出来的图片再合成一个视频,如下:

ffmpeg工具实用命令_第8张图片

啊?!视频怎么这么小,并且画质非常糟糕?

ffmpeg工具实用命令_第9张图片

因为上面的命令中,解码率是7920k,我少了一个k,删掉视频,重新合并:

ffmpeg工具实用命令_第10张图片

这会正常了,而且画质也和原视频一样,所以注意合并视频时,解码率需要和提取视频帧时一致

ffmpeg工具实用命令_第11张图片

命令3:提取视频的音频

可使用下面的命令,提取出视频中的音频;

ffmpeg -i <视频文件> -f mp3 -vn <生成的音频文件>

比如把我这个视频(before.mp4)中的音频提取出来,命名为audio.mp3

ffmpeg工具实用命令_第12张图片

实际使用时,可以灵活一点,比如需要把某种音频类型,转为另一种类型,直接修改后缀名可能会造成文件损坏不可用,就可以使用这种方式进行提取,达到音频类型转换的目的;

ffmpeg工具实用命令_第13张图片

命令4:音视频合并

可以使用下面这个命令,把音频和视频进行合并;

ffmpeg -i <视频文件名> -i <音频文件名> -c:v copy -c:a aac -strict experimental <生成视频名>

像上面使用命令2合成的视频,当然是没有声音的,想做成一个完整的视频,还需要把音频进行合并,如下:

ffmpeg工具实用命令_第14张图片

这样,一个完整的视频抽取图片,处理图片,提取音频,合成视频的制作流程就完成了;

ffmpeg工具实用命令_第15张图片

命令5:分割视频

分割视频的命令有许多方式,如下:

ffmpeg -ss 01:00:00 -i <视频文件> -vcodec copy -acodec copy -t 00:06:00 <生成视频文件>

ffmpeg -ss 00:00:00 -i <视频文件> -c copy -t  600  <生成视频文件>

ffmpeg -i <视频文件> -ss 1 -c copy -to 75 <生成视频文件>

我最喜欢用最后这种,非常方便,前面的数字表示起始秒,后面表示末尾秒,比如把上面的视频final.mp4截取第10~20秒,如下:

ffmpeg工具实用命令_第16张图片

需要注意,切割视频会有画面的丢失,需要手动微调一下分割点,比如从10秒开始,画面有丢失,稍微加一点,比如10.5秒,10.7秒可能丢失的画面会变少(当然减一点也可以,看自己的情况),可通过微调达到画面基本不丢失;

ffmpeg工具实用命令_第17张图片

命令6:合并视频

可输入以下命令,合并两个视频;

ffmpeg -f concat -safe 0 -i <合并视频列表.txt> -c copy <生成视频名.mp4>
  • 合并视频列表.txt:指合并的视频清单,如下表示合并part1.mp4,part2.mp4这两个视频;

ffmpeg工具实用命令_第18张图片

我再分割出来一个视频(part2.mp4),然后把这两个视频进行合并,如下:

ffmpeg工具实用命令_第19张图片


ffmpeg工具实用命令_第20张图片

命令7:播放视频

上面合成后的视频通过系统播放器可能无法播放,这时可以通过ffmpeg自带的播放视频/音频的命令ffplay来打开视频/音频文件;

ffplay <视频/音频文件>

打开上面合成的视频,如下:

ffmpeg工具实用命令_第21张图片

总结

ffmpeg是一款非常方便,功能强大的媒体操作工具,本文介绍了ffmpeg较为常用的一些操作命令;

你可能感兴趣的:(ffmpeg,java,视频编解码)