2026 年 8 月 4 日,FFmpeg 9.0 正式发布,代号“Lei”。知乎
消息刷遍中文技术圈的那几天,知乎上被顶得最高的评论只有一句:传播知识的人,和创造知识的人一样值得被记住。知乎 FFmpeg 的版本代号惯例一直是纪念牛顿、傅里叶、香农、霍夫曼这类科学家,9.0 破例用一个中国博士生的姓:雷霄骅,网名 leixiaohua1020,国内音视频圈叫他“雷神”。他在 2013 到 2016 年间写下的那批 FFmpeg 教程,至今还是无数人入门解码器、封装格式、音视频同步的第一站;2016 年他因病去世,博士学业没读完。
今年 3 月,离世十周年,FFmpeg 社区的长期中国贡献者刘歧在邮件列表发起倡议,才有了这个代号。知乎
情绪的部分,聊到这儿就够了。转码党真正该问的是下一个问题:9.0 跟我每周压的那几个片子,到底有什么关系?我的旧命令还跑不跑得通?我把官方 Changelog、几篇技术分析帖和社区讨论翻了一遍,按“跟你有没有关系”重新分了类。
一、这版有多大:数字先摆出来
超过 2200 次提交、1781 个文件变更、净增约 5.2 万行代码、160 多位贡献者——距上一版 8.1“Hoare”只隔四个多月,不是挤牙膏。知乎
libavcodec、libavformat、libavfilter 等 7 个核心库的 ABI 全部升了主版本号。翻译一下:所有基于 FFmpeg 编译的下游软件(播放器、压制前端、直播工具)都必须重新编译适配才能吃上新版本,没有“原地替换 so 库”这种好事。
第二条直接决定了后面所有升级策略:你什么时候用上 9.0,取决于你的工具链作者什么时候发新版,而不是你什么时候想升。

二、和转码党真正相关的 4 个变化
1. Vulkan 加速全面铺开,“显卡干活”不再绑定单一厂商。 9.0 的方向很明确:摆脱对某一家 SDK 的依赖,建立跨平台 GPU 加速底座——新增 APV 专业格式的 Vulkan 硬解、v360_vulkan 全景重投影滤镜、Vulkan 计算着色器做缩放后端,还淘汰了运行时编译 GLSL、改用预编译 SPIR-V。更值得盯的是发布后的持续更新:8 月中旬 hevc_vulkan 编码器跟进,通过 Vulkan 接口调用 GPU 硬件加速,H.265/HEVC 编码速度基本追平了 H.264。知乎过去硬编 HEVC 基本只有 NVENC/AMF/QSV 三选一,Vulkan 这条路走通之后,核显党、A 卡党、非 Windows 平台的转码用户都有了一个“通用硬件后端”的想象空间。

2. 动图 WebP 原生解码。 “FFmpeg 处理动态 WebP 只能拿到第一帧”这个历史悬案,9.0 正式解决:不再强制依赖外部 libwebp,转格式、抽帧、压体积一条命令搞定,做图床、批量处理素材的人立刻受益。知乎
3. libswscale 二十年来的架构级重写。 这个管“缩放、调色、像素格式转换”的车间,过去每加一种格式就要手写一条特化路径,终于被拆成了 read → swizzle → linear transform → scale → pack 的模块化流水线(swscale 负责人 Niklas Haas 一个周期内提交超 300 次)。理论上限高了,但注意:新架构当前仍受 SWS_UNSTABLE 门控,旧的稳定路径才是默认值。知乎个人用户不用管;如果你打算手动开新路径尝鲜,先在自己片源上跑对比,别信“架构重写=画质必然提升”这种直觉——它首先解决的是可维护性。
4. 你大概率无感:播放器不用你操心。 PotPlayer、VLC、IINA 这些播放器会随自身版本更新悄悄换底层库,个人观影用户什么都不用做。知乎真正要自己动手的只有两类人:命令行转码党和自己编译/嵌入 libav* 的开发者。
三、旧脚本会踩的 3 个坑:这才是升级前该做的功课
热闹是雷神的,报错是自己的。9.0 的几处“清理”,每一条都足以让跑了两年的批处理脚本当场罢工:
TLS 证书默认验证生效。 这是 8.0 预告、9.0 落地的变更:FFmpeg 现在默认验证 TLS 对等证书。知乎如果你的脚本常年挂着自签证书的源站、老 CDN 节点或者证书链不完整的 m3u8,升级后不会给你警告,直接连不上。这不是 bug,但排查起来很像 bug。
一批老命令行参数被移除。 -vsync 换成 -fps_mode,-top、-qphist、-filter_complex_script、-adrift_threshold 等同步清理。老写法从“悄悄用默认值”变成“解析阶段直接报错”,维护批量脚本的务必先做一轮全量语法校验。
NVENC 砍了对 Video Codec SDK 11.1 以下版本的支持,部分旧 NVENC 选项也被清理。知乎还在用老驱动老封装脚本的环境,先验证再升。
另外记一条生态动向:FFmpeg 开发主阵地迁到了自有实例 code.ffmpeg.org,GitHub 上的 PR 将被忽略。知乎以后想追补丁、报 issue,入口换了。
四、看不懂也不亏:这些变化暂时与你无关
APV、Dolby Vision 多层 HEVC 拆分(dovi_split)、LCEVC 流组、HE-AAC 960 解码(DAB+ 广播用)、SMPTE 2094 动态元数据、AMD 的 FRC/VQE 滤镜——这些是广播工程、专业后期和极窄的一撮玩家的事。自媒体转码党看到这些词条直接跳过,不损失任何信息。判断型内容最怕的就是把“官方更新 17 项”全复述一遍,实际上对个人用户有意义的大约 4 条、会咬人的 3 条,够了。
五、按人群给结论:现在升不升
只看不压(播放器用户):随工具自动更新,无感,什么都不用做。
HandBrake / ShanaEncoder / 3FUI 这类前端用户:等前端作者发“基于 FFmpeg 9.x”的新版即可;3FUI 这类支持外置 FFmpeg.exe 的,想尝鲜可以自己替换二进制,但先备份旧版——ABI 全跳代之后,新旧 exe 不兼容任何插件式旧组件。
命令行转码党:值得升,但升级当天先干三件事——把批量脚本里所有 -vsync/-filter_complex_script 老参数清一遍;测试你还在用的下载源证书是否合法;如果你有 NVENC 工作流,确认驱动与封装环境。跑通再切默认版本。
自编译 / 嵌入 libav API 的开发者:按官方 release notes 的 API changes 逐库对照,做完整回归;输出文件也要抽查,先在测试环境对比 8.x 和 9.0 的输出指标,差异不大再放量。知乎
顺带说一句社区里两种打架的叙事:一篇分析说 9.0 是“一次克制的升级”,另一篇强调“7 个库 ABI 全部破坏升级”。知乎其实都对——视角不同。只用命令行的人感知不到 ABI 这回事,等新版工具就行;把自己代码链进 libav* 的人才是“必须重编译”名单上的。评估成本之前先对号入座,比看任何“值不值得升”的结论都管用。

继续观察的信号:新 swscale 何时解除不稳定门控、Vulkan 编码器(hevc_vulkan 一族)在更多硬件上的实测铺开、以及已在推进的 JIT 支持。这三件事哪件落地,才值得转码党再兴奋一轮。
写在最后
雷神的博客访问量,在他停更之后还在涨。搜索引擎搜“FFmpeg 教程”,排在前面的一直还是 2016 年之前写的那些文章——无数人照着敲下第一条 demux 命令,进了音视频这行,然后各自散落在大厂、直播间、剪辑台和你我压片的终端里。
9.0 那 2200 多次提交里没有他一行代码,但代号是他的。对每天和 CRF、preset、双遍压制作斗争的人来说,这就是这版本最值的部分:以后每次敲 `ffmpeg -i`,那个“Lei”都在。