一、版本概述与重要更新
FFmpeg 8.0 "Huffman" 作为 2025 年 8 月 22 日发布的最新主要版本,是自 2024 年 10 月发布的 7.1 版本以来的一次重大升级。这一版本被开发者称为 "迄今为止最大的版本之一",包含了大量新功能、性能优化和架构改进(1)。此次更新距离上一版本发布间隔超过 10 个月,积累了众多重要变更。
1.1 主要新功能概览
FFmpeg 8.0 带来了多项重大改进,包括:
-
集成 OpenAI Whisper 音频 AI 模型,可直接在视频处理流程中实现自动语音识别、
-
显著增强 Vulkan 计算支持,为多个编解码器提供硬件加速
-
新增对 APV (Advanced Professional Video) 编解码器的支持
-
增加 VVC (H.266) VA-API 解码支持
-
提供 RealVideo 6.0 解码器支持
-
引入 G.728 音频解码器
-
实现基于 Vulkan 的 AV1 编码和 VP9 解码硬件加速
1.2 开发架构与工具链变更
除功能增强外,FFmpeg 8.0 还进行了底层架构的调整:
-
完全弃用 YASM 汇编器,转而强制使用 NASM
-
升级要求使用 C11 兼容的编译器进行构建
-
弃用 OpenMAX 视频编码器
-
移除了对 OpenSSL 1.1.0 及更早版本的支持
-
不再禁用 x86、ARM 和 AArch64 架构上的 GCC 自动向量化
二、新功能深度解析
2.1 OpenAI Whisper 音频 AI 集成
FFmpeg 8.0 最引人注目的新功能之一是集成了 OpenAI 的 Whisper 音频处理模型,通过新增的whisper
滤镜实现。这一功能允许用户在视频处理流程中直接进行自动语音识别,无需依赖外部工具,极大提升了工作流程的集成度和便捷性。
核心功能与应用场景:
-
直接在视频处理流程中实现音频到文字的转换
-
支持多种语言的语音识别和翻译
-
可将识别结果输出为字幕文件或结构化数据
-
适用于创建视频字幕、内容分析和语音转文字等场景
根据用户反馈,Whisper 滤镜在实际应用中表现良好,但也存在一些争议。有用户报告在某些视频中使用 "分散式字幕" 获得了负面反馈,而其他测试观众则没有介意。这表明该功能的有效性可能因内容和受众而异。
2.2 Vulkan 计算框架增强
FFmpeg 8.0 在 Vulkan 支持方面进行了重大升级,显著扩展了硬件加速能力:
新增的 Vulkan 加速功能:
-
新增 AV1 Vulkan 编码器,显著提升 AV1 编码性能
-
新增 VP9 Vulkan 解码器,提供 VP9 视频的硬件加速解码
-
实现 ProRes RAW 格式的 Vulkan 硬件加速处理
-
增强 FFV1 编解码器的 Vulkan 支持,包括编码和解码
-
改进 VVC (H.266) 解码的 Vulkan 支持
性能基准测试:
根据公开的基准测试数据,使用 Vulkan 硬件加速处理 5.8K ProRes RAW 视频文件时,不同 GPU 表现如下:
-
AMD Radeon RX 6900 XT:63 FPS
-
AMD Radeon RX 7900 XTX:84 FPS
-
NVIDIA Ada Lovelace 架构:120 FPS
-
Intel 集成显卡:9 FPS
这表明 FFmpeg 8.0 在 Vulkan 支持方面取得了显著进展,尤其是在 NVIDIA GPU 上表现突出,而 Intel 集成显卡的性能仍相对有限。
2.3 新编码格式与编解码器支持
FFmpeg 8.0 显著扩展了对多种音视频编解码器的支持,特别是在专业视频领域:
新增的编解码器支持:
-
APV (Advanced Professional Video):三星主导的专业视频编解码器,作为 Apple ProRes 的竞争对手,预计将在未来的 Galaxy 和 Pixel 手机中出现
-
ProRes RAW:Apple 的高质量压缩视频格式,新增解码支持
-
RealVideo 6.0:为旧格式提供更好的兼容性
-
G.728:低延迟音频编解码器
-
Sanyo LD-ADPCM:特定格式的音频编解码器
视频编码增强:
-
通过 libopenapv 包装器实现 APV 编码支持
-
新增基于 libjxl 库的 JPEG-XL 动态图像编码
-
增强 HDR 视频处理能力,支持更多 HDR 格式
-
改进 VVC (H.266) 支持,包括屏幕内容编码 (SCC)、块间复制 (IBC)、调色板模式和自适应颜色变换 (ACT)
2.4 文件格式与容器支持
除编解码器外,FFmpeg 8.0 还扩展了对多种文件格式和容器的支持:
新增的容器格式支持:
-
Matroska 容器对 VVC 编码的支持扩展
-
增强对 EXIF 元数据的解析功能
-
增加对 Whip 和 MCC 格式的支持
格式处理改进:
-
改进 Matroska 容器对 VVC 编码的支持
-
增强 HDR 视频处理能力
-
改进 EXIF 元数据解析
-
改进 OpenHarmony 数据库中的 H.264/H.265 支持
三、性能优化与基准测试
3.1 CPU 性能改进
FFmpeg 8.0 在 CPU 处理效率方面进行了多项优化,特别是在使用 AVX-512 指令集的平台上:
主要 CPU 优化措施:
-
将默认的汇编工具从 YASM 切换为 NASM,大幅优化 CPU 处理效率
-
不再禁用 x86、ARM 和 AArch64 架构上的 GCC 自动向量化
-
针对 AVX-512 指令集进行专项优化,带来更高效的运算表现
这些优化措施在实际应用中带来了显著的性能提升,尤其是在处理复杂编解码任务时。
3.2 GPU 加速性能
FFmpeg 8.0 的 GPU 加速功能得到了显著增强,特别是通过 Vulkan API:
AV1 编码性能:
-
新增的 AV1 Vulkan 编码器在 NVIDIA RTX 40 系列 "ADA" GPU 上表现出色
-
根据测试,新的 NVENC AV1 编码器在相同质量下比 NVENC HEVC 编码快 75% 到 100%
-
这一改进对于数据中心规模或专业工作室环境具有显著的成本效益
ProRes RAW 解码性能:
-
ProRes RAW 格式的 Vulkan 硬件加速处理在不同 GPU 上表现如下:
-
AMD Radeon RX 6900 XT:63 FPS
-
AMD Radeon RX 7900 XTX:84 FPS
-
NVIDIA Ada Lovelace 架构:120 FPS
-
Intel 集成显卡:9 FPS
-
其他 GPU 加速改进:
-
优化了 FFV1 编解码器的解码速度
-
实现了 ProRes RAW 格式的 Vulkan 硬件加速处理
-
增强了 VVC 解码的 Vulkan 支持
3.3 编解码性能对比
为了全面评估 FFmpeg 8.0 的性能提升,我们对比了关键编解码器在不同配置下的表现:
AV1 编码性能对比:
编码器 | 相对速度 | 质量表现 | 硬件要求 |
---|---|---|---|
NVENC AV1 (FFmpeg 8.0) | 比 HEVC 快 75-100% | 与 SVT-AV1 相当 | NVIDIA RTX 40 系列 |
软件 AV1 编码器 | 约为 H.264 的 1/15 | 高质量 | 无特殊要求 |
libx264 (H.264) | 基准 | 中等质量 | 无特殊要求 |
ProRes RAW 解码性能:
GPU 型号 | 解码速度 (FPS) | 加速方式 |
---|---|---|
NVIDIA 6000 Ada | 120 | Vulkan |
AMD 7900 XTX | 84 | Vulkan |
AMD 6900 XT | 63 | Vulkan |
Intel 集成显卡 | 9 | Vulkan |
DeepRender AI 编解码器性能:
-
DeepRender 是一种 AI 驱动的编解码器,可在 FFmpeg 中编码,在 VLC 中播放
-
根据测试,DeepRender 在低延迟、实时配置下表现出色
-
在主观测试中,DeepRender 比 SVT-AV1 节省 45% 的 BD-rate
-
在 VMAF 测试中,DeepRender 在相同用例中始终优于 x265 和 SVT-AV1,但落后于 VVEnc 约 14%
四、API 与 ABI 兼容性变化
4.1 主要 API 变更
FFmpeg 8.0 引入了多项 API 变更,其中一些是不向后兼容的:
重大 API 变更:
-
移除了旧的基于位掩码的声道布局 API,替换为新的 AVChannelLayout API,支持自定义声道排序和环绕声等功能
-
移除了旧的音频 / 视频编码 API:avcodec_encode_video2 和 avcodec_encode_audio2,替换为 avcodec_send_frame/avcodec_receive_packet,这些新 API 解耦了输入和输出,可以为单个输入帧返回任意数量的输出数据包
-
移除了多个已弃用的 FFmpeg CLI 选项
-
弃用 OpenMAX 视频编码器
新增 API 功能:
-
新增 AVChannelLayout API,提供更灵活的声道布局处理
-
新增 Whisper 音频处理滤镜 API
-
新增 Vulkan 加速编解码器的 API 接口
-
新增 APV 编解码器 API
4.2 ABI 兼容性变化
FFmpeg 8.0 在 ABI 兼容性方面也进行了一些调整:
ABI 兼容性变化:
-
该版本不向后兼容,移除了 6.0 之前弃用的 API
-
移除了旧的音频 / 视频编码 API,这些 API 在之前的版本中已被弃用
-
移除了基于位掩码的声道布局 API,导致 ABI 不兼容
ABI 兼容性保证:
根据 FFmpeg 文档,只要库的主版本号不变,FFmpeg 保证向后 API 和 ABI 兼容性。这意味着公共符号不会被移除或重命名,公共结构成员的类型和名称以及公共宏和枚举的值将保持不变(除非它们被明确声明为不属于公共 API)。
4.3 构建系统变化
FFmpeg 8.0 对构建系统进行了多项重要更改:
构建要求变更:
-
现在需要 C11 兼容的编译器来构建代码
-
现在仅支持 NASM 作为汇编器,YASM 不再被支持
-
移除了对 OpenSSL 1.1.0 及更早版本的支持
-
移除了对 OpenMAX 编码器的支持
构建选项变化:
-
with-postproc 功能标志仅限于版本之前使用
-
现在 NASM 是 8.0 + 版本上唯一支持的汇编器
五、编解码器支持分析
5.1 新增编解码器
FFmpeg 8.0 引入了多个新的编解码器支持,显著扩展了其处理能力:
新增视频编解码器:
-
APV (Advanced Professional Video) 编解码器:三星参与开发的高质量视频编解码器,作为 Apple ProRes 的竞争对手,预计将在未来的 Galaxy 和 Pixel 手机中出现
-
RealVideo 6.0 解码器:提供对旧格式的更好兼容性
-
VVC VA-API 解码器:支持最新的 H.266/VVC 视频编码标准
-
ProRes RAW 解码器:支持 Apple 的高质量压缩视频格式
新增音频编解码器:
-
G.728 音频解码器:低延迟音频编解码器
-
Sanyo LD-ADPCM 解码器:特定格式的音频编解码器
-
ADPCM IMA Xbox 解码器
5.2 编解码器性能与质量
不同编解码器在 FFmpeg 8.0 中表现各异,以下是主要编解码器的性能与质量分析:
AV1 编解码器:
-
新增 AV1 Vulkan 编码器,显著提升 AV1 编码性能
-
支持完整的 BT.2100 标准,包括特定色域以及 EOTF SMPTE ST 2084 (PQ)、HLG、HDR10 和 HDR10+
-
支持 Dolby Vision 的动态元数据格式
-
通过 NVENC 支持 AV1 硬件加速编码,比 HEVC 快 75-100%
VVC (H.266) 编解码器:
-
新增 VVC VA-API 解码支持
-
改进了对屏幕内容编码 (SCC) 的支持,包括块间复制 (IBC)、调色板模式和自适应颜色变换 (ACT)
-
增强 Matroska 容器对 VVC 编码的支持
VP9 编解码器:
-
新增 VP9 Vulkan 解码器,提供 VP9 视频的硬件加速解码
-
提升了 VP9 视频的解码性能
ProRes RAW 编解码器: -
新增 ProRes RAW 格式的 Vulkan 硬件加速处理
-
在不同 GPU 上表现差异较大:从 Intel 集成显卡的 9 FPS 到 NVIDIA 6000 Ada 的 120 FPS
5.3 编解码器硬件加速支持
FFmpeg 8.0 显著增强了对多种编解码器的硬件加速支持:
Vulkan 加速编解码器:
-
FFV1:支持编码和解码
-
ProRes RAW:支持解码
-
AV1:新增 Vulkan 编码器
-
VP9:新增 Vulkan 解码器
-
VVC:增强 Vulkan 支持
其他硬件加速支持:
-
ProRes RAW 解码的 Vulkan 硬件加速
-
AMD AMF 解码支持
-
FSR 超分辨率技术支持
-
OpenHarmony 数据库中的 H.264/H.265 支持
六、开发者与用户迁移指南
6.1 对开发者的影响
FFmpeg 8.0 的发布对开发者有重大影响,特别是那些依赖 FFmpeg 库的项目:
主要影响与建议:
-
API 迁移:使用旧版音频 / 视频编码 API(avcodec_encode_video2 和 avcodec_encode_audio2)的开发者需要迁移到新的 avcodec_send_frame/avcodec_receive_packet API
-
声道布局处理:使用基于位掩码的声道布局 API 的开发者需要迁移到新的 AVChannelLayout API
-
构建系统调整:开发者需要确保他们的构建系统使用 C11 兼容的编译器和 NASM 汇编器
-
OpenSSL 版本:应用程序需要升级到 OpenSSL 1.1.1 或更高版本
-
OpenMAX 编码器替代:使用 OpenMAX 编码器的应用需要寻找替代方案
迁移时间表:
由于这些变更在 FFmpeg 8.0 中是强制性的,开发者应尽快开始迁移过程。根据 FFmpeg 的发布政策,这些 API 在被移除前已经被弃用了足够长的时间,因此开发者应该已经有了过渡的时间。
6.2 对终端用户的影响
FFmpeg 8.0 对终端用户也有一些重要影响:
主要影响:
-
功能变化:一些旧的命令行选项被移除,用户需要调整他们的脚本和命令
-
性能提升:用户可以期待在支持 AVX-512 的平台上获得更好的性能
-
新功能可用性:新增的 Whisper 滤镜、Vulkan 加速功能和新的编解码器支持为用户提供了更多处理选项
用户建议:
-
更新脚本:检查并更新现有的 FFmpeg 命令和脚本,确保它们不使用已移除的选项
-
利用新功能:探索新增的 Whisper 滤镜和 Vulkan 加速功能,以提高工作效率
-
硬件要求:为了充分利用新的 Vulkan 加速功能,用户需要兼容的 GPU 和驱动程序
6.3 第三方软件兼容性
FFmpeg 8.0 的发布对依赖它的第三方软件产生了一定影响:
兼容性问题报告:
-
有用户报告在使用 FFmpeg 8.0 构建 MakeMKV 时遇到错误,出现大量关于已弃用功能的错误,最终导致构建失败
-
其他用户报告了 ffmpeg-hi 构建中的问题,特别是在尝试编码到 H.264 高配置文件时出现错误
软件适配情况:
-
一些软件包已经开始适配 FFmpeg 8.0,如 ffmpeg-kit-min-gpl-unify 包,它提供了兼容性更新以适配更新的 Flutter 版本
-
对于 Mac 用户,ffworks 被推荐为一个优秀的 FFmpeg 前端,它展示了大多数功能,但提供了一个像样的 GUI,支持批处理和预设设置
七、与竞争工具的对比分析
7.1 FFmpeg 与其他工具的性能对比
与其他专业视频处理工具相比,FFmpeg 8.0 在某些方面表现出色,但在其他方面仍有改进空间:
编码速度对比:
-
根据用户反馈,使用 FFmpeg 进行 ProRes 到 H.264 的转码比使用 Resolve、Silver Stack 或 Compressor 等工具慢很多倍
-
这导致用户经常询问是否可以改用其他工具,但由于 FFmpeg 的单一文化现象,似乎没有替代方案
AV1 编码性能:
-
FFmpeg 8.0 的 NVENC AV1 编码器在 NVIDIA RTX 40 系列 GPU 上比 HEVC 快 75-100%
-
这一性能提升在专业环境中具有显著的成本效益
DeepRender AI 编解码器:
-
DeepRender 是一种 AI 驱动的编解码器,可在 FFmpeg 中编码,在 VLC 中播放
-
根据测试,DeepRender 在低延迟、实时配置下表现出色
-
在主观测试中,DeepRender 比 SVT-AV1 节省 45% 的 BD-rate
-
在 VMAF 测试中,DeepRender 在相同用例中始终优于 x265 和 SVT-AV1,但落后于 VVEnc 约 14%
7.2 FFmpeg 生态系统优势
尽管存在一些性能挑战,FFmpeg 仍然保持着显著的生态系统优势:
跨平台支持:
-
FFmpeg 是一个跨平台的解决方案,可在 Linux、Windows、macOS 和其他操作系统上运行
-
这种跨平台一致性使其成为需要在不同环境中工作的开发者和用户的理想选择
开源与社区支持:
-
FFmpeg 作为开源项目拥有强大的社区支持
-
活跃的开发社区确保了持续的更新和改进
-
丰富的文档和资源使学习和使用 FFmpeg 变得更加容易
编解码器和格式支持:
-
FFmpeg 支持极其广泛的编解码器和格式
-
这种全面的支持使 FFmpeg 成为处理各种多媒体内容的一站式解决方案
-
8.0 版本进一步扩展了这种支持,新增了多个编解码器和格式
7.3 未来发展方向
基于 FFmpeg 8.0 的更新内容,我们可以预见 FFmpeg 的一些未来发展方向:
AI 集成深化:
-
OpenAI Whisper 滤镜的引入表明 FFmpeg 正在向 AI 集成方向发展
-
未来版本可能会引入更多 AI 驱动的功能,如自动内容分析、智能编码参数选择等
Vulkan 加速扩展:
-
FFmpeg 8.0 对 Vulkan 的增强支持表明这是一个重要的发展方向
-
未来可能会有更多编解码器获得 Vulkan 支持,进一步提升性能
-
改进的 GPU 加速将使 FFmpeg 能够更高效地处理高分辨率和高帧率内容
编解码器创新:
-
支持如 APV 和 DeepRender 等新兴编解码器表明 FFmpeg 致力于保持技术前沿
-
未来可能会支持更多创新编解码器和格式,特别是那些具有高效压缩和高质量特性的编解码器
八、总结与评价
8.1 FFmpeg 8.0 的主要成就
FFmpeg 8.0 "Huffman" 是一次重大的版本更新,代表了 FFmpeg 项目的重要进步:
技术成就:
-
Vulkan 计算框架增强:显著扩展了硬件加速能力,特别是通过新增的 AV1 Vulkan 编码器和 VP9 Vulkan 解码器
-
AI 集成:引入 OpenAI Whisper 滤镜,实现视频处理流程中的自动语音识别
-
编解码器扩展:新增对 APV、RealVideo 6.0、G.728 等多种编解码器的支持
-
性能优化:通过切换到 NASM 和优化 AVX-512 指令集使用,显著提升了 CPU 性能
-
API 现代化:移除过时的 API,推动项目向现代编程实践发展
生态系统贡献:
-
通过弃用旧技术(如 YASM 和 OpenSSL 1.1.0)推动了整个生态系统的升级
-
通过增强的硬件加速支持,使 FFmpeg 能够更好地利用现代 GPU 硬件
-
通过引入新的编解码器支持,促进了多媒体格式的标准化和互操作性
8.2 局限性与改进空间
尽管有诸多进步,FFmpeg 8.0 仍存在一些局限性:
性能挑战:
-
一些用户报告在某些任务(如 ProRes 到 H.264 的转码)中,FFmpeg 比专用工具如 Resolve、Silver Stack 或 Compressor 慢很多倍
-
这种性能差距可能影响 FFmpeg 在某些专业工作流程中的适用性
API 兼容性:
-
移除旧 API 虽然必要,但可能给依赖这些 API 的开发者带来迁移挑战
-
虽然 FFmpeg 通常保证 API 和 ABI 兼容性,但主要版本更新仍然可能带来兼容性问题
用户体验:
-
FFmpeg 的命令行界面对于新手来说可能较为复杂
-
缺乏直观的 GUI 工具可能限制了其在某些用户群体中的采用
-
尽管有一些第三方 GUI 工具可用(如 ffworks),但官方对 GUI 的支持仍然有限
8.3 总体评价与建议
综合考虑 FFmpeg 8.0 的更新内容、性能表现和对生态系统的影响,我们对其进行如下评价:
对开发者的建议:
-
对于新开发的项目,FFmpeg 8.0 是一个优秀的选择,特别是那些需要处理多种多媒体格式的项目
-
现有项目应尽快开始迁移到 FFmpeg 8.0,以利用新功能和性能改进
-
开发者应关注 API 变化,并相应调整他们的代码库,以确保兼容性和安全性
对终端用户的建议:
-
高级用户和专业人士会欣赏 FFmpeg 8.0 提供的强大功能和灵活性
-
初学者可能需要投入一些时间来学习 FFmpeg 的命令行界面,但丰富的文档和社区资源可以提供帮助
-
考虑使用第三方 GUI 工具(如 ffworks)来简化常见任务的操作