FFmpeg 是一个开源和跨平台的多媒体框架,提供了一系列库和工具来处理多媒体内容,已更新至 5.0 版。

尽管人们日常接触的多是金玉其外的商业软件,但是软件界今时今日的繁荣,离不开FFmpeg这样的开源软件们的默默奉献。

在FFmpeg 4.4 “Rao”发布大约九个月后,FFmpeg 5.0 “Lorentz” 现在推出了几款新的编码器和解码器,例如 ADPCM IMA Westwood 编码器、ADPCM IMA Acorn Replay 解码器、Apple Graphics (SMC) 编码器、 MSN Siren 解码器、GEM Raster 图像解码器、speex 解码器、bitpacked 编码器以及 VideoToolbox ProRes 编码器。

ffmpeg -codecs 命令可以查看 FFmpeg 支持的编码格式,视频编码和音频编码都在内。

此主要版本中还包含新的复用器和解复用器,包括 AV1 低开销比特流格式复用器、Argonaut Games CVG 解复用器、Argonaut Games CVG 复用器、Westwood AUD 复用器和实验性 IMF 解复用器。

在其他值得注意的变化中,FFmpeg 5.0 增加了对 Concatf 协议的支持、swscale 切片线程支持、amr 解析器、VideoToolbox VP9 和 ProRes 硬件加速、loongarch 支持以及用于未压缩视频的 RTP 分包器 (RFC 4175)。

FFmpeg 5.0 还引入了许多新的音频和视频过滤器。新增的音频过滤器包括 aspectralstats 音频过滤器、adynamicsmooth 音频过滤器、adynamicequalizer 音频过滤器、anlmf 音频过滤器、asdr 音频过滤器、apsyclip 音频过滤器、afwtdn 音频过滤器、去相关音频过滤器和 atilt 音频过滤器。

新添加的视频滤镜包括 varblur 视频滤镜、limitdiff 视频滤镜、xcorrelate 视频滤镜、huesaturation 视频滤镜、colorspectrum 源视频滤镜、scharr 视频滤镜、morpho 视频滤镜、grayworld 视频滤镜、hsvkey 和 hsvhold 视频滤镜以及 yadif_videotoolbox 滤镜。

FFmpeg 5.0 版本中包含的其他新过滤器包括 libplacebo 过滤器、(a) 延迟过滤器、音频和视频片段过滤器,以及 vflip_vulkan、hflip_vulkan 和 flip_vulkan 过滤器。

如果你是 Linux系统维护者或者你只想自己编译 FFmpeg,您现在可以从官方网站下载 FFmpeg 5.0。否则,您应该等待此版本登陆你最喜欢的 GNU/Linux 发行版的稳定软件存储库,然后再进行更新。

Ubuntu 20.04 LTS 编译安装 FFmpeg

官方的Ubuntu存储库包含FFmpeg软件包,可以使用apt软件包管理器进行安装。这是在Ubuntu上安装FFmpeg的最简单方法。新的主要版本每六个月发布一次,存储库中包含的版本通常落后于FFmpeg的最新版本。

1、安装编译所需工具 GCC
2、安装yasm nasm

yasm和nasm是两个编译器,编译ffmpeg需要用到

安装命令: sudo apt install yasm nasm

4、命令行进入到解压后的配置安装ffmpeg

./configure

5、执行make

6、执行make install

就是这样。FFmpeg现在已安装在您的系统上,您可以开始使用它了。

要验证安装,请使用以下ffmpeg -version命令,该命令将显示FFmpeg版本:

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -version

ffmpeg version 5.0 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04)
configuration:
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100

FFmpeg示例

在本节中,我们将看一些有关如何使用该ffmpeg实用程序的基本示例。

 

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -ss 00:00:00 -i www.linuxmi.com.mp4 -c copy -t 60 linuxmi.com.mp4

基本转换

使用转换音频和视频文件时ffmpeg,不必指定输入和输出格式。自动检测到输入文件格式,并从文件扩展名中猜测输出格式。

把 www.linuxmi.com.mp4 视频声音提取到 linuxmi.com.aac,命令如下:

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -i www.linuxmi.com.mp4 -acodec copy -vn linuxmi.com.aac

把www.linuxmi.com.mp4 转为ts。

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -i www.linuxmi.com.mp4 www.linuxmi.com.ts

视频剪切

有时要测试视频,但是只需要测几秒钟,可是视频却有几个G,怎么办呢?那就需要剪辑。

下面的命令,就可以从时间为00:00:00开始,截取5秒钟的linuxmi.com.mp4视频。

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -ss 00:00:00 -t 00:00:05 -i www.linuxmi.com.mp4 -vcodec copy -acodec copy linuxmi.com.mp4

下面的命令,就可以从时间为00:00:00开始,截取60秒钟的linuxmi.com.mp4视频。

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -ss 00:00:00 -i www.linuxmi.com.mp4 -c copy -t 60 linuxmi.com.mp4

-ss表示开始切割的时间,-t表示要切多少。上面就是从开始,切几秒钟出来。

将视频文件从mp4转换为webm:

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -i input.mp4 output.webm

将音频文件从mp3转换为ogg:

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -i input.mp3 output.ogg

指定编解码器

转换文件时,请使用该-c选项指定编解码器。它可以是任何受支持的解码器/编码器的名称,也可以是copy仅复制输入流的特殊值。

使用libvpx视频编解码器和libvorbis音频编解码器将视频文件从mp4转换为webm :

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -i input.mp4 -c:v libvpx -c:a libvorbis output.webm

将音频文件从mp3转换为使用libopus编解码器编码的ogg 。

linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -i input.mp3 -c:a libopus output.ogg

结论

我们已经向您展示了如何在Ubuntu 20.04上安装FFmpeg。现在,您可以访问FFmpeg官方文档 页面,并了解如何使用FFmpeg转换视频和音频文件。

KMP等著名播放器都是FFmpeg的抄袭者,无论是国内外,都有大量播放软件非法使用了FFmpeg的代码。都采用了FFmpeg的代码但却不按规矩开源,被放入了FFmpeg的耻辱名单当中。当然,守规矩的软件也是有的,例如前面提到的MPC、MPlayer、VLC都按照FFmpeg的规矩开了源。如果你想要支持开源事业,不妨优先使用这些守规矩的软件。

发表评论