神级开源软件 FFmpeg 新版发布,万能播放器的根基

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需要用到
安装命令: linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install yasm nasm
4、命令行进入到解压后的配置安装ffmpeg
linuxmi@linuxmi:~/www.linuxmi.com/ffmpeg-5.0$ ./configure
5、执行make
linuxmi@linuxmi:~/www.linuxmi.com/ffmpeg-5.0$ make
6、执行make install
linuxmi@linuxmi:~/www.linuxmi.com/ffmpeg-5.0$ sudo make install
就是这样。FFmpeg现在已安装在您的系统上,您可以开始使用它了。
要验证安装,请使用以下ffmpeg -version命令,该命令将显示FFmpeg版本:
linuxmi@linuxmi:~/www.linuxmi.com$ ffmpeg -version
ffmpeg version 5.0 Copyright (c) 2000-2022 the FFmpeg developersbuilt with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04)configuration:libavutil 57. 17.100 / 57. 17.100libavcodec 59. 18.100 / 59. 18.100libavformat 59. 16.100 / 59. 16.100libavdevice 59. 4.100 / 59. 4.100libavfilter 8. 24.100 / 8. 24.100libswscale 6. 4.100 / 6. 4.100libswresample 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的规矩开了源。如果你想要支持开源事业,不妨优先使用这些守规矩的软件。

来自:Linux迷

链接:https://www.linuxmi.com/ffmpeg-5-0.html

作者:极客石头

在搞事情的路上越走越远。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注