在 Ubuntu 中安装 FFmpeg2025年3月17日 | 阅读 10 分钟 FFmpeg 是什么?FFmpeg 是一个开源免费的软件项目,由一系列用于处理音频、视频和其他多媒体流和文件的程序和库组成。其核心本身是一个命令行工具,即 ffmpeg,用于处理音频和视频文件。它广泛用于视频缩放、基本编辑(连接和剪辑)、格式转码、视频后期制作标准和效果合规性(ITU、SMPTE)。 此外,FFmpeg 还包含一些其他工具,如 ffplay,一个标准的媒体播放器,以及 ffprobe,一个命令行工具,用于显示媒体信息。其中包含的库有 libavcodec,一个被多个免费和商业软件产品使用的视频/音频编解码器库;libavformat,一个视频/音频 解复用库 和 容器复用器;以及 libavfilter,一个用于增强和编辑 类似 Gstreamer 的 filtergraph 中过滤器的库。 它是许多其他软件项目的流程的一部分,并且所有库都是 VLC 等软件媒体播放器的核心组成部分,并且它已被添加到 BiliBili 和 YouTube 的核心处理中。它包含了多种视频和音频文件格式的解码器和编码器,使其非常适合转码不常见和常见的媒体文件。FFmpeg 在 GPL-2.0 或更高版本 或 LGPL-2.1 或更高版本 下发布,具体取决于启用的选项。 FFmpeg 的历史该项目由 Fabrice Bellard 于 2000 年开始,并由 Michael Niedermayer 于 2004 年至 2015 年期间指导。此外,FFmpeg 的一些开发人员也参与了 MPlayer 项目。 项目名称源自 MPEG 视频标准组,与 “FF” 完美契合,“FF” 代表 “快进”。其 徽标 应用了 锯齿形图案,显示了 MPEG 视频编解码器如何管理熵编码。 2014 年 1 月 10 日,两名 Google 员工宣布,在过去两年中,通过 模糊测试,FFmpeg 的 1000 多个错误已得到解决。 作为 FFmpeg 长期组件的命令行程序 ffserver,于 2018 年 1 月被删除。此前,开发人员已弃用该程序,理由是由于其内部应用程序编程接口的使用,维护工作量过大。 该项目每三个月发布一个新版本。已发布的版本可从网站下载。FFmpeg 的开发人员建议用户通过当前从源代码 GIT 版本控制系统构建的源代码来使用该软件。 编解码器历史FFmpeg 项目开发了两种视频编码格式及其相应的编解码器,以及一种容器格式。这两种视频编解码器是 无损 FFV1,以及 有损 Snow 和 无损编解码器。Snow 的开发已延迟,其比特流格式尚未最终确定,自 2011 年以来一直处于实验状态。名为 NUT 的多媒体容器格式尚未积极开发,但仍得到支持。 FFmpeg 的开发人员 David Conrad、Ronald Bultje、Fiona Glazer 于 2010 年夏季宣布了 ffvp8 解码器。他们通过测试决定 ffvp8 比 Google 的 libvpx 解码器快。从 0.6 版本开始,FFmpeg 还支持 VP8 和 WebM。 FFmpeg 的组成部分命令行工具
FFmpeg 库
FFmpeg 支持的硬件CPUFFmpeg 包含音频和视频解压缩及压缩算法的软件实现。这些可以在不同的指令集上进行编译和执行。FFmpeg 提供了几个广泛使用的指令集,包括 MIPS、SPARC、DEC Alpha、ARM、PPC PowerPC 和 x86(x86-64 和 IA-32)。 专用硬件有一系列用于视频/音频解压缩和压缩的应用特定集成电路(ASIC)。这些可以完全或部分将计算过程卸载到主机 CPU。而不是完整实现算法,API 仅需要像 ASIC 一样使用。 与 FFmpeg 工具应用内部硬件的加速解码通过选项 -hwaccel 激活。通常,它开始解码,但当在硬件中找到可解码的流时,解码器会为该硬件执行所有重要处理,从而加速解码过程。 当找不到可解码的流时(例如,当编解码器的配置文件不受支持时),硬件加速将被跳过,并且仍然在软件中解码。选项 -hwaccel_device 用于当硬件需要特定设备工作时,特别是当存在多个图形卡时。 支持的格式和编解码器图像格式FFmpeg 支持一些不常见和常见的图像格式。PGMYUV 图像格式是二进制 (P5) PGM Netpbm 格式的自制版本。此外,它还支持 PPM 和 PGM 16 位深度格式,以及带或不带 Alpha 通道的二进制 (P7) PAM 格式,对于 pix_fmts rgb64be、rgba、ya8、rgb48be、rgb24、gray16be、gray、monob,深度为 16 位或 8 位。 复用器FFmpeg 中生成的格式(许多容器格式和其他创建结果流的方式)称为 “复用器”。以下列出了一些 FFmpeg 支持的 复用器:
像素格式FFmpeg 支持多种像素格式。其中一些格式仅作为输入格式支持。它不支持 Log RGB、RGBE、CYMK、AI44、IMC1-IMC4 等格式。此外,它还不支持不常用的 ARGB 2:10:10:10、1:5:5:5 或其他 BMP 位域格式。 FFmpeg 支持的协议开放标准
事实标准
支持的接口和媒体FFmpeg 通过外部库支持以下设备 物理接口
媒体
音频 IO
视频 IO
屏幕输出和捕获
其他
FFmpeg 支持的滤镜FFmpeg 支持以下滤镜 Audio(音频)
视频
支持的测试图案
支持的 LUT 格式
FFmpeg 的应用法律方面FFmpeg 包含 100 多种编解码器,几乎所有编解码器都采用某种压缩方法。其中一些压缩方法可能涉及与软件专利相关的法律索赔。这些索赔可能在某些拥有软件专利的国家(如 美国)具有强制执行力,但在某些 欧盟 成员国则被视为无效或不可执行。 某些旧编解码器(如所有 MPEG-2 和 MPEG-1 编解码器以及 AC3)的专利已过期。FFmpeg 在 LGPL 许可下授权,但是,如果特定的 FFmpeg 构建链接到一个 GPL 库,那么整个二进制文件将在 GPL 许可下授权。 使用 FFmpeg 的项目FFmpeg 被 FFmpeglnterop、OpenMAX IL、Perian 和 Gstreamer FFmpeg 插件使用,以扩展相应多媒体平台的解码和编码功能。 FFmpeg 被 MPC-HC、VirtualDub fork、VirtualDub2、YouTube、HandBrake、Blender、Kodi、Plex、Cinelerra-GG 视频编辑器、Shotcut、xine 和 VLC 媒体播放器等软件使用。它在 Google Chrome 和 Firefox Linux 版本中管理音频和视频播放媒体。对于 FFmpeg,已经集成了图形用户界面前端,例如 XMedia Recode。 作为 NASA 的火星 2020 任务 的一部分,毅力号火星车 在 火星 上使用 FFmpeg 对视频和图像进行压缩,然后传输回地球。 如何在 Ubuntu 中安装 FFmpeg?FFmpeg 是一个开源免费的命令行工具,用于转码多媒体文件。它包含一组共享的视频和音频库,如 libavutil、libavformat 和 libavcodec。我们可以使用 FFmpeg 在多种视频和音频格式之间进行转换、调整视频大小和设置采样率。 它是一个非常著名的软件项目,由一组用于处理视频和音频文件转换、录制其他多媒体文件和流的库和程序组成。它是一个命令行工具箱,用于转换、流式传输和操作多媒体内容。 在本文中,我们将解释如何在 Ubuntu 的 20.04 版本中安装 FFmpeg。 安装过程有几种在 Ubuntu 20.04 版本中安装 FFmpeg 的方法,例如使用 Ubuntu 的官方软件包存储库、使用源代码以及使用 snap store 进行安装。 安装稳定版 FFmpeg 最方便、最简单的方法是使用 APT 包管理器进行安装。 我们将安装 4.2.4 版本,该版本可在 Ubuntu 的 APT 包存储库中找到。 1. 我们需要先更新系统的 APT 缓存存储库才能安装它。下面提供了更新系统的命令 ![]() 2. 更新完系统的 APT 缓存存储库后,我们可以使用下面的命令安装 FFmpeg 软件 ![]() 3. 它可能会要求在安装过程中占用额外的磁盘空间,我们需要输入 “y” 然后按 Enter 键。 4. FFmpeg 现在已安装在我们的 Ubuntu 20.04 LTS 版本中。 5. 接下来,我们应该通过在批准安装后使用命令来检查 FFmpeg 版本。下面提供了该命令 ![]() 打印/查看解码器和编码器我们需要在终端窗口中输入以下命令来打印/查看 FFmpeg 中可用的解码器和编码器 ![]() ![]() FFmpeg 在我们的系统上运行正常并已安装。让我们尝试一些其他任务,例如提取文件信息、使用视频文件提取音频以及将音频或视频文件转换为其他格式。 提取文件信息我们可以使用 Ubuntu 20.04 LTS 系统中的终端窗口执行以下命令,以获取任何媒体文件的所有信息,并使用 FFmpeg 请确保将 “audio_file_mp3” 替换为我们的视频或音频文件名。我们可以使用上面提供的相同命令获取视频文件的信息。 使用视频文件提取音频我们可以使用终端窗口中的以下命令,使用 ffmpeg 从任何视频文件中提取音频 我们可以使用上面的命令从任何视频文件中提取音频。我们需要将 “video_file_mp4” 替换为我们的视频文件名,然后给出我们即将提取的新音频文件的名称。 将任何媒体文件转换为其他格式如果我们希望将视频或音频文件转换为我们需要的其他格式,可以通过在终端窗口中输入以下命令来实现。例如,将一个视频(MP4 格式)转换为 WEBM 格式,假设。 这就是我们将媒体文件转换为其他文件格式的方法。 命令与上面的类似,可以将音频文件转换为任何其他格式。我们需要先给出要转换到的文件的名称,然后给出带有文件格式的新文件名。 |
我们请求您订阅我们的新闻通讯以获取最新更新。