文章摘要
2026年8月4日,开源多媒体框架FFmpeg 9.0发布,代号“Lei”致敬雷霄骅。此次更新超2200次代码提交,核心库版本跃升。新特性包括原生动画WebP解码、Vulkan硬件加速扩展等,音频与容器格式也有改进,重写libswscale引擎。性能提升显著,移除部分废弃功能。文中还给出安装升级指南,预计9.1版本2026年晚些时候发布。

2026年8月4日,开源多媒体框架FFmpeg 9.0正式发布,代号“Lei”。本次大版本更新带来超过2200次代码提交,涉及1781个文件。核心亮点包括原生动画WebP解码、Vulkan APV硬件加速、ProRes RAW VideoToolbox支持、ONNX Runtime GPU推理后端,以及libswscale像素格式转换引擎的全面重写。本文全面解读FFmpeg 9.0发布所带来的各项技术革新与升级指南。

FFmpeg 9.0发布

一、FFmpeg 9.0发布概述

1.1 版本发布背景

FFmpeg 9.0发布距离上一版本8.1“Hoare”仅相隔约四个半月。作为一个大版本号跃迁,FFmpeg 9.0发布标志着该项目在音视频处理领域迈入了全新阶段。来自全球超过160位开发者共同贡献了2200余次提交,累计新增代码近85000行,同时删除了超过33000行陈旧代码。这一代码库的大规模清理与重构,体现了FFmpeg团队在保持项目活力的同时,持续推动技术架构现代化的决心。

1.2 代号“Lei”的深意

FFmpeg 9.0发布的另一个特殊之处在于其代号“Lei”。按照FFmpeg的传统,每个大版本都以一位伟大科学家或数学家的名字命名——牛顿、傅里叶、香农、图灵……而这一次,“Lei”致敬的是已故中国音视频技术专家雷霄骅。

雷霄骅曾是中国传媒大学数字电视技术方向的博士生,长期从事音视频技术研究,围绕FFmpeg制作了大量实验项目和开发示例。在2013至2016年前后,FFmpeg对初学者而言技术门槛极高——C API、AVCodec、AVFormat、AVPacket、AVFrame,每一个概念都足以让刚进入该领域的开发者摸索很久。雷霄骅通过大量中文技术文章、源码分析和开源示例,将这些复杂概念逐一拆解,让一代开发者第一次真正理解FFmpeg。在中国开发者社区,大家尊称他为“雷神”。2026年恰逢他离世十周年。FFmpeg社区选择用一个大版本的名字留下这份纪念。

1.3 核心库版本变更

伴随FFmpeg 9.0发布,所有核心库均迎来了主版本号跃升,这意味着全平台的应用程序二进制接口发生了变更。各库的版本信息如下:

核心库 9.0版本号 说明
libavutil 61.1.100 通用工具函数库
libavcodec 63.1.100 音视频编解码库
libavformat 63.1.100 封装格式处理库
libavdevice 63.1.100 设备输入输出库
libavfilter 12.1.100 滤镜处理库
libswscale 10.1.100 像素格式转换库
libswresample 7.1.100 音频重采样库

二、FFmpeg 9.0核心新特性详解

2.1 原生动画WebP解码

FFmpeg 9.0发布后,用户可以直接读取动画WebP文件,无需再依赖libwebp等外部库。此前,FFmpeg对WebP格式的支持仅限于静态图像,动画WebP需要借助外部解码器处理。本次更新新增了动画WebP解码器(decoder)和解复用器(demuxer),将动画WebP作为标准视频输入源进行处理。这一改进关闭了自2015年就已提交的GitHub工单#4907。

2.2 Vulkan硬件加速全面扩展

Vulkan API加速是本次FFmpeg 9.0发布的核心技术亮点之一。新版在多个维度扩展了Vulkan加速能力:

APV Vulkan硬件加速:FFmpeg 9.0引入了基于Vulkan的APV(Adaptive Predictive Video,自适应预测视频)硬件编解码加速。APV是由三星主导开发的视频编码标准,在同等画质下可比传统编码方案节省更多带宽。

ProRes RAW Vulkan加速:苹果ProRes RAW格式的Vulkan加速解码首次被引入。专业视频制作中,ProRes RAW是常见的高质量中间格式,GPU加速可显著提升后期处理效率。

v360_vulkan滤镜:新增的v360_vulkan滤镜借助Vulkan API在GPU上处理360°全景视频。全景视频的几何变换计算量巨大,GPU加速使其处理效率得到质的提升。

VideoToolbox加速的ProRes RAW解码:在苹果硬件平台上,FFmpeg 9.0发布版本通过VideoToolbox框架为ProRes RAW提供硬件加速解码。

2.3 AMD AMF框架增强

针对AMD Advanced Media Framework,FFmpeg 9.0发布带来了多项增强:

  • AMF色彩转换器HDR扩展:现有的vf_vpp_amf色彩转换滤镜获得了更广泛的HDR能力支持
  • AMF帧率转换器:新增vf_frc_amf滤镜,支持硬件辅助帧率转换
  • AMF视频质量增强器:新增vf_vqe_amf滤镜
  • AMF硬件内存映射支持

2.4 NVIDIA CUDA新滤镜

NVIDIA CUDA用户在此次FFmpeg 9.0发布中获得了一个重要新工具——transpose_cuda滤镜。该滤镜允许画面旋转与转置操作直接在GPU上完成,减少了视频帧在GPU与系统内存之间往返后再交由CPU处理的需求。对于需要频繁处理视频方向的大规模转码任务,这一改进可显著提升处理效率。

2.5 ONNX Runtime GPU推理后端

FFmpeg 9.0发布中,深度神经网络后端新增了对ONNX Runtime的支持,并提供了GPU执行提供程序。支持的执行提供程序包括:

  • CPU执行提供程序
  • CUDA(NVIDIA GPU)
  • DirectML(Windows平台AMD/Intel/NVIDIA GPU)
  • VitisAI(AMD Ryzen AI NPU)

这意味着AI模型驱动的超分辨率、画质增强、背景分割等任务,现在可以直接在FFmpeg框架内通过GPU完成推理。对于需要将AI能力集成到音视频处理流水线的开发者而言,这是一个具有前瞻性的重要功能。

三、音频与容器格式改进

3.1 HE-AAC 960解码支持

FFmpeg 9.0发布新增了对HE-AAC 960的解码支持,面向DAB+数字广播内容。常见的AAC帧配置使用1024个采样,而部分数字广播服务使用960个采样帧。此前这类内容无法被正确解码,本次更新填补了这一空白。

3.2 Dolby Vision多层HEVC比特流滤波器

新版增加了一个比特流滤波器,用于分割Dolby Vision多图层HEVC流。在处理Ultra HD Blu-ray中的Dolby Vision内容时,这一滤波器能够在容器格式转换过程中更优地处理Dolby Vision元数据。

3.3 SMPTE 2094-50元数据支持

FFmpeg 9.0发布版本支持SMPTE 2094-50动态元数据,并可直接传递这类元数据。SMPTE 2094-50是HDR动态元数据的行业标准之一,其支持意味着依赖元数据的HDR处理流程将得到显著改善。

3.4 LCEVC轨道复用与Playdate编码器

在容器格式方面,FFmpeg 9.0发布支持将LCEVC(Low Complexity Enhancement Video Coding,低复杂度增强视频编码)轨道复用到MP4文件中。LCEVC在基础视频流之外加入增强层,兼容解码器可据此重建更高质量的视频,同时保留向后兼容能力。

此外,新版还加入了Panic Playdate掌机专用的视频编码器和对应复用器。开发者可以直接借助FFmpeg 9.0发布版本创建适用于该掌机设备的视频文件。

四、libswscale像素格式转换引擎重写

4.1 二十年技术债务的清理

FFmpeg 9.0发布中最重要但最不易被用户察觉的变化,是libswscale像素格式转换引擎的全面重写。该引擎由Niklas Haas主导,在本周期内仅在libswscale中就提交了超过300次代码变更。旧的swscale代码已积累了近二十年,包含大量针对特定格式的手工优化代码,维护成本极高。

4.2 新架构设计

新架构将每一次格式转换分解为一系列基本操作——读取、通道重排、线性变换、缩放、打包等。一个优化器负责简化并拆分这一操作列表,随后由后端将其编译为内核链。在FFmpeg 9.0发布版本中,这一设计已面向用户开放:公共API新增了SwsBackend选择器,后端包括:

  • 基于模板的C参考实现
  • 快速memcpy路径
  • 链式x86 SIMD内核
  • 链式AArch64 NEON内核
  • Vulkan SPIR-V后端(将相同操作列表编译为计算着色器)

这意味着同样的格式转换流程可以运行在CPU或GPU上。

4.3 精度与性能提升

新架构在精度方面也取得了重要进展:驱动所有转换的常量数学运算迁移到了新的64位有理数类型,采用精确计算而非浮点运算。开启SWS_BITEXACT标志后,即便是Vulkan后端也能保证与CPU完全一致的输出结果。

新路径目前仍通过SWS_UNSTABLE标志进行门控,旧版代码作为稳定的默认实现。但新架构已为未来性能的持续优化奠定了坚实基础。

五、性能提升与基准测试

5.1 AVX-512优化

FFmpeg 9.0发布版本包含了更多AVX-512指令集优化。对于支持AVX-512的现代处理器,这些优化可带来显著的编解码性能提升。

5.2 实际转码性能提升

据社区公布的基准测试数据,FFmpeg 9.0发布版本在AV1到H.264的转码任务中,速度比7.1版本快了约14%;硬件加速的H.265到VP9转码则提升了约18%。

5.3 Vulkan滤镜性能表现

借助Vulkan加速的4K HDR源色调映射与下采样处理,每帧处理时间可控制在5毫秒以内,而此前需要30毫秒甚至更长时间。

六、移除的废弃功能

伴随FFmpeg 9.0发布,部分长期废弃的功能被正式移除:

  • CELT解码支持:移除独立的CELT解码支持(不影响Opus中的CELT部分)
  • OGG/CELT解析:移除ogg/celt解析器
  • 旧版NVENC选项:移除已弃用的NVENC选项及对11.1之前NVIDIA Video Codec SDK版本的支持

这些移除操作是FFmpeg代码库持续现代化的一部分,有助于降低维护负担并提升整体代码质量。

七、FFmpeg 9.0安装与升级指南

7.1 源码编译安装

FFmpeg 9.0发布版本的源代码标签已可在官方Git仓库获取。从源码编译的标准流程如下:

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout 5b9252abfe2fda0ccb71ed45cd7a954cc45d2b6f
./configure --enable-gpl --enable-nonfree \
            --enable-vulkan --enable-cuda --enable-nvenc \
            --enable-libonnxruntime
make -j$(nproc)
sudo make install

7.2 各平台预编译包

  • Linux:主流发行版将在未来数周内将FFmpeg 9.0发布版本纳入软件仓库
  • Windows:可通过gyan.dev、BtbN等第三方构建渠道获取预编译二进制文件
  • macOS:Homebrew用户可通过brew upgrade ffmpeg升级(需等待Formula更新)

八、未来展望

FFmpeg 9.0发布标志着该项目在GPU加速、AI推理和代码现代化方面迈出了重要一步。Vulkan加速的持续扩展、ONNX Runtime GPU后端的引入,以及libswscale引擎的全面重写,为未来版本的性能持续提升铺平了道路。

根据FFmpeg开发社区的规划,9.1版本预计将在2026年晚些时候发布。


常见问题解答(FAQ)

Q1:FFmpeg 9.0发布版本与8.x系列有哪些主要区别?

FFmpeg 9.0发布是主版本号跃迁,带来了ABI变更。主要区别包括:原生动画WebP解码、Vulkan APV硬件加速、ProRes RAW VideoToolbox支持、ONNX Runtime GPU推理后端、libswscale引擎重写,以及多项AMD AMF和NVIDIA CUDA滤镜增强。

Q2:FFmpeg 9.0发布版本的代号“Lei”有什么含义?

“Lei”是为了纪念已故中国音视频技术专家雷霄骅(Lei Xiaohua)。他通过大量中文技术文章和开源示例,帮助无数中国开发者跨入了FFmpeg的大门,被社区尊称为“雷神”。2026年是他离世十周年。

Q3:现有基于FFmpeg 8.x的应用程序能否直接使用FFmpeg 9.0?

不可以直接替换。由于FFmpeg 9.0发布涉及所有核心库的主版本号变更(libavcodec 60→63、libavformat 60→63等),应用程序需要重新编译以适应新的ABI。

Q4:FFmpeg 9.0发布版本如何启用Vulkan硬件加速?

编译时需要添加--enable-vulkan配置选项,并在运行时通过-hwaccel vulkan参数或在滤镜链中使用v360_vulkan等Vulkan加速滤镜。

Q5:ONNX Runtime GPU后端在FFmpeg 9.0中如何使用?

编译时需启用--enable-libonnxruntime,并在使用DNN相关滤镜时指定GPU执行提供程序。支持的提供程序包括CUDA、DirectML和VitisAI。

Q6:FFmpeg 9.0发布版本对动画WebP的处理能力有何提升?

此前FFmpeg处理动画WebP需要依赖libwebp等外部库。FFmpeg 9.0发布新增了原生动画WebP解码器和解复用器,可以直接将动画WebP作为标准视频输入源进行处理。

Q7:libswscale重写对普通用户有什么实际影响?

libswscale是FFmpeg中进行像素格式转换(如YUV与RGB互转、画面缩放等)的核心引擎。重写后,相同的转换操作可在CPU或GPU上执行,精度更高,且为未来性能优化预留了架构空间。普通用户在使用scale等滤镜时将获得更稳定和高效的体验。

以上内容不代表本平台立场,仅供读者参考