Lex Fridman 对话 VLC 与 FFmpeg 核心开发者:互联网视频背后的开源野史
FFmpeg: The Incredible Technology Behind Video on the Internet | Lex Fridman Podcast #496
本报告由 AI 深度分析生成,基于视频完整字幕。
导读
如果你今天看了任何一段网络视频——YouTube、Netflix、TikTok、抖音、Discord 视频通话、Zoom 会议、Twitch 直播、Telegram 视频消息——你几乎可以确定,背后有一个开源软件叫 FFmpeg 在替你工作。Lex Fridman 在节目开头给的数字是:"超过 90% 的在线和离线视频处理工作流都涉及 FFmpeg"。如果你曾经下载过一个 .avi、.mkv、.mp4 文件而 Windows Media Player 装不开,你大概率装了 VLC——那个橙色雪糕筒(traffic cone,交通锥)logo 的播放器。VLC 全球累计下载量超 65 亿次。
这两块软件托起了互联网视频的几乎全部底层管道——而它们是完全靠志愿者维护的开源项目。FFmpeg 核心维护团队约 10-15 人,VLC 核心团队约 5-8 人。这场长达 258 分钟的对话第一次让两个项目的关键决策者一起坐下来,把一切讲清楚——从压缩算法的数学原理、到反向工程二进制 codec 的考古学、到一行手写汇编可能比 C 编译器快 60 倍的事实,再到 CIA 曾经做过假版本的 VLC 用来窃取数据、Microsoft Teams 把开源志愿者当付费供应商对待、Google AI 自动 fuzz 出几百份"高严重性"安全报告淹没维护者,乃至 JB 因为一个 PowerPC 移植决定收到掺白粉的死亡威胁。
两位嘉宾的身份决定了这场对话的密度:
- Jean-Baptiste Kempf(JB):法国人,VideoLAN 总裁,VLC 的主要维护者超过 20 年。曾多次拒绝了"千万美元级"的收购报价,理由是那些报价都来自希望往 VLC 里塞入广告/工具栏/间谍软件的"灰产公司"——Reddit 有专门的 meme 庆祝他这个决定。
- Kieran Kunhya:英国人,FFmpeg 长期贡献者,自己创办了商业广播设备公司 Open Broadcast Systems,最近还启动了一家叫 Kyber 的超低延迟视频流公司。他是网上 Twitter @FFmpeg 那个有点尖刻、爱写"FFmpeg 牛逼,别人垃圾"长帖、被 Karpathy/Tim Sweeney/Carmack 都点赞过的账号背后的人。
这场访谈的力量在于:它让你重新理解了什么是"开源基础设施"——不是 GitHub 上一个有 100k star 的 Rust 仓库,而是过去 25 年里散落在世界各地(巴黎、慕尼黑、芬兰、瑞典、北京、印度某个偏僻小镇、叙利亚战区)的几千个志愿者,用各自最热爱的方式,为我们今天每天看的每一秒视频写下了那 100,000 行手工汇编、那 240,000 行 dav1d 汇编、那一个对接 50 种容器格式的 demuxer。
更大的命题是:当 Lex 问"FFmpeg 100 年后还在吗?"——Kieran 说"在"。FFmpeg 是用 C 写的,C 是"最接近数学的人造语言",所以 1000 年后人类如果还有计算机,FFmpeg 就还能跑。它将像拉丁语一样,是"档案学家用来打开 21 世纪所有视频的罗塞塔石碑"。这场访谈,本质上是写给未来 1000 年的人的一份说明书:你们今天能看到这些 21 世纪的视频,是因为这些人。
阅读提示:原视频时长 4 小时 18 分钟,26 个章节。建议先读"核心观点速览"再回主体。
核心观点速览
- FFmpeg 是互联网视频的隐形脊梁:YouTube、Netflix、Chrome、Firefox、VLC、Discord——基本任何"涉及视频"的产品,背后都跑着 FFmpeg。
- VLC 不是"靠 FFmpeg 工作",是"和 FFmpeg 共生"——Kieran 用"双星系统"作类比。VLC 用 FFmpeg 做底层解码,FFmpeg 因为 VLC 拿到了无穷无尽的"奇葩文件"做测试样本。
- 5-3-1 不是友谊公式,是核心团队规模:FFmpeg 核心约 10-15 人维护,VLC 核心约 5-8 人维护——而它们运行在 65 亿+ 设备上。
- 手写汇编比 C 快 10x-60x——这不是"百分比",是"倍数"。FFmpeg 全部 codec 共约 100,000 行手工汇编;dav1d(AV1 解码器)一个项目就 240,000 行手工汇编。
- dav1d 之所以惊人:它甚至绕过操作系统调用约定(calling convention),自己定义函数间调用方式——只为快几个 CPU cycle,因为它要在 30 亿台设备上每天 7×24 解码 Netflix 30%、YouTube 50% 的 AV1 视频。
- JB 拒掉的"千万美元报价":核心动机不是反对赚钱,是不愿在数亿用户软件里植入广告/工具栏/间谍软件——他自己创了五家围绕开源的商业公司。
- Linus Torvalds 之所以"刻薄":当一个核心维护团队只有 10-15 人时,他们要维护未来 20 年里所有人写的代码。所以"标准必须是 excellent,不是 good"——这不是性格问题,是数学问题。
- CIA Vault 7 泄露:CIA 真做过修改版的 VLC(多塞了一个叫 psapi.dll 的 DLL)来在用户看电影的两小时里悄悄读取并加密上传文件夹。后来印度政府还因为类似事件一度把 VLC 列为非法软件。
- Excuse vs Need 在开源世界的等价物:Excuse vs Need for security drama:Google Security 团队用 AI 生成几百份"高严重性"安全报告淹没志愿者维护者,把"上世纪 90 年代某个 Star Wars 游戏 codec 里的整数溢出"标成 high priority——直到媒体闹大。
- FFmpeg 在火星上:NASA 的 Mars 2020 火星车用 FFmpeg 压缩照片。FFmpeg 已经是"多行星开源软件"。
- AV1/AV2 vs H.264/265/266 = 开源 vs 专利:H.265 的专利费可能让 YouTube 一年付几亿美元——这种"专利雷区"催生了 Alliance for Open Media(Google/Netflix/Amazon/Apple 等)做出 AV1,目标是 royalty-free(免专利费)。
- archiving 社区:David Rice 等人维护的 FFV1 是"无损视频归档 codec"。他们认为 FFmpeg 写在 C 里这件事本身意义重大——"C 像数学一样最接近底层逻辑,1000 年后人类还能读懂"。FFmpeg 是 21 世纪视频的"罗塞塔石碑"。
- JB 的 zen 哲学:每次决策前问自己"最坏情况是什么?"——如果答案是"不会死、不伤人,最多公司倒闭",那就不焦虑了。这是支撑他扛了 20 年开源压力、政府施压、死亡威胁的心理基底。
一、FFmpeg + VLC 是什么:互联网视频的底层契约
很多人没意识到,自己每天接触的视频体验背后是同一组开源工具。Lex 在开场用了一段几乎是"颂歌"的描述:
"FFmpeg is an open source software system that is the invisible backbone behind YouTube, Netflix, Chrome, VLC, Discord, and basically every platform that touches video or audio on the internet."
(FFmpeg 是支撑 YouTube、Netflix、Chrome、VLC、Discord,以及基本上所有触及网络视频/音频的平台的"隐形脊梁"。)
核心数据:
| 指标 | 数据 |
|---|---|
| 涉及 FFmpeg 的视频处理工作流占比 | >90% |
| VLC 累计下载量 | 65 亿+ |
| FFmpeg 核心维护团队 | 10-15 人 |
| VLC 核心维护团队 | 5-8 人 |
| FFmpeg 全 codec 手写汇编行数 | ~100,000 行 |
| dav1d(AV1 解码器)手写汇编行数 | 240,000 行 |
Kieran 给两者关系的最精炼比喻:
"VLC is to FFmpeg as Android is to Linux."
(VLC 之于 FFmpeg,犹如 Android 之于 Linux。)
双星系统(binary star system) :FFmpeg 给 VLC 提供底层 codec、demuxer、filter;VLC 给 FFmpeg 提供海量真实世界的"破文件"做测试场。两者互相喂养,没有谁是中心。x264(VideoLAN 项目,是 H.264 的开源编码器实现)则是另一个支柱——按 Kieran 估计,全世界 80%+ 视频处理 pipeline 依赖某个 VideoLAN 项目。
二、按 play 后到底发生了什么:从 URL 到像素的完整链条
整场对话开篇 JB 和 Kieran 拆解了"按下播放键之后的全过程"。这套链条对很多软件工程师都是黑箱:
URL/文件路径
↓ Access 模块(HTTP/file/DVD/UDP 等协议层)
字节流(byte stream)
↓ Demuxer(去容器化)
分轨:视频流 / 音频流 / 字幕流
↓ 解码器(codec decoder)
原始数据(raw YUV / PCM)
↓ 渲染层
GPU 显示 + 音频卡播放
关键洞察 1:容器(container)≠ 编码(codec)
这是 FFmpeg 用户最常踩的坑:
| 容器(container) | 编码(codec) |
|---|---|
| 关心:怎么把多个轨道(视频、音频、字幕)打包到一个文件 | 关心:怎么把每秒 25-60 帧的图像压缩 100x-1000x |
| 例子:MP4、MKV、MOV、AVI、WebM | 例子:H.264、H.265、AV1、AAC、Opus、ProRes |
| 类比:纸箱 | 类比:箱子里被压缩打包的东西 |
JB 解释了一个微妙细节:业内常把 "MP4" 和 "H.264" 混淆,因为 H.264 的标准全名其实是 MPEG-4 Part 10——MPEG-4 这个"元标准"里既有容器(MP4)也有 codec(Part 2、Part 10、AAC 等)。所以"99% 的 MP4 文件 = H.264 视频 + AAC 音频"——但这只是统计上的事实,不是规范。
关键洞察 2:VLC 不信任文件后缀名
"We discard the file format. We look into the file to understand what's in it because so many people, like, they say, 'Oh, it's a video, it should must be MP4,' but technically it's an MOV or maybe it's a MKV. So we analyze in real time everything that we have, and we don't trust the format."
(我们丢掉文件格式后缀,直接从文件里探测真正的内容——很多人以为 .mp4 就是 MP4,但其实可能是 MOV、MKV。我们实时分析所有内容,不相信后缀。)
这就是为什么 VLC 出名"什么都能打开"。Kieran 补一刀:"现实世界跟三个字母的文件后缀完全是两回事"。
关键洞察 3:压缩 = 100x-1000x,靠的是"利用人眼的弱点"
JB 强调了一个常被忽略的本质:
"All the codecs, either for audio, mimic basically how your ear works. And same for your eyes. We don't work on RGB. We move to YUV."
(所有 codec——无论音频还是视频——本质上都在模拟人的耳朵和眼睛的工作方式。视频不在 RGB 空间里压缩,会转到 YUV——一个亮度通道 + 两个色度通道,对应人眼对亮度敏感、对色度迟钝的特性。)
这里有一个关键技巧:色度抽样(chroma subsampling) ——视频通常把色度通道的分辨率减半(4:2:0),文件大小立刻减半,但人眼几乎察觉不到。这是 codec 设计的基础:所有"无损"都是相对人感知而言的。
三、I/P/B frames:B 帧"依赖未来"是工程奇迹
JB 解释完帧间编码后,Lex 当场被 B-frame(双向预测帧)的概念惊到:
"B-frames means B-predicted frames can depend on frames that are coming in the future. That means that in order to decode this B-frame, you need to wait for the next frame... So the decoding order is not the same as the display order."
(B 帧可以依赖未来的帧来预测。这意味着要解 B 帧,你得先等下一帧到达、解完,才能回头解 B 帧——解码顺序和显示顺序不一样。)
这是为什么视频流里的 GoP(Group of Pictures,图像组)结构如此精妙:每隔 250 帧(H.264 默认)有一个 I 帧(关键帧,独立图像),中间是 P 帧(依赖前面)和 B 帧(依赖前后)。Kyber 等超低延迟项目甚至用 intra-refresh——永远不发整张 I 帧,把 I 帧"渐进式"分散到几十帧里逐步刷新——这样既避免了网络抖动时整张 I 帧丢失的灾难,又避免了 I 帧带来的瞬时大流量峰值。
ProRes 是另一极:Apple 为视频剪辑设计的 codec,全部是 I 帧,没有 P/B 帧——剪辑器需要任意帧"切一刀",不能等 GoP 边界。这是设计哲学完全不同的另一类 codec。
四、汇编不是"过去的语言",是"未来更重要的语言"
整场对话最反直觉、最让 Lex 反复追问的部分。背景:现代主流编程语言——Python、JavaScript、TypeScript——是高度抽象的;甚至 C 都被认为是"低级语言"了;汇编(assembly)被普遍认为是"老古董"。但 Kieran 反复强调一句话:
"C is not fast. Handwritten assembly is 10x to 50x faster, sometimes 60x. Not 10%, 60x times faster."
(C 不快。手写汇编比 C 快 10-50 倍,有时 60 倍——不是百分比,是倍数。)
为什么手写汇编还能比现代编译器快?
软件工程界普遍假设:编译器越来越聪明,最终会自动向量化、能写出比人类更优的汇编。Kieran 直接反驳:
"For two years, and two years later, showing hundreds of examples of handwritten assembly. 'No, no, no, you're doing it wrong. The compiler can do this.' We've tried that forever."
(这个争论持续了两年。我们一遍遍贴出几百个手写汇编的例子,对方一直说"你做错了,编译器能搞定"——我们试过无数次,根本不行。)
JB 给出了哲学层面的解释:
"We passed the time where hardware was going so much faster. We are at the end of Moore's law. You need to go down in the stack and optimize more to get more power from what you have, because our request for power, CPU power, GPU power are exploding while the hardware is not exploding in speed."
(我们已经走过"硬件速度自动飞涨"的时代,处于摩尔定律末期。你必须往栈底走、把每一寸硬件压榨干净,因为我们对算力的需求在爆炸式增长,但硬件速度并没有同步爆炸。)
dav1d 的极限工程:连操作系统调用约定都不遵守
dav1d 是 VideoLAN 写的 AV1 解码器,全球 30 亿+ 设备每天用它解码 Netflix 30%、YouTube 50% 的 AV1 视频。它做到了几个常人难以想象的事情:
- 240,000 行手写汇编(C 部分只有 30,000 行)
- runtime 检测 CPU 类型——同一个二进制运行时识别 x86 / ARM / RISC-V / AVX-512 / SVE / SME 等不同指令集,动态选择对应的汇编实现
- 绕过操作系统调用约定:函数调用本来要按 OS 规定保存所有寄存器,dav1d 知道"我是从自己内部调用自己的函数",干脆自己定义新的调用约定,省掉寄存器保存/恢复的几个 cycle
Kieran 的描述极具画面感:
"We abuse the machine. We use the machine in ways that the creator didn't expect. Sometimes we use an instruction that's completely unrelated to what we do. We use a cryptography instruction in video processing to do nothing related."
(我们"虐待"机器。我们用 CPU 设计者完全没预料的方式使用它——我们用一条加密指令做视频处理,跟它本意完全无关。)
谁在写这些?
两个传奇人物:
- Henrik Gramner(瑞典):x86 SIMD 顶尖专家,连 Intel 自己都建议外人:"别问 Intel,问 Henrik,他比我们清楚"。
- Martin Storsjö(芬兰):ARM 汇编专家。会一边在游乐场看孩子玩、一边在手机虚拟键盘上写汇编——JB 的原话是"wizard level"。
哲学含义
JB 总结:
"What is missing to a lot of engineers and software engineers today is understanding what we call computer architecture. AI inference is also going to need this someday. At some point you need to get faster, and you cannot always get harder, more powerful hardware."
(今天大多数软件工程师缺失的是计算机体系结构的理解。AI inference 早晚也会面临这个问题——总有一天你需要更快,但硬件不会无限变快。)
这段对话直接刺激了 Karpathy 学习汇编——Kieran 提到他注意到 Karpathy 因为 @FFmpeg 账号的推开始研究汇编,"他认为这是一个 movement"。
五、反向工程二进制 codec:现代版考古学
JB 和 Kieran 花了半小时讲一个让 Lex 反复说"that's nuts"的工种——逆向工程二进制 codec blob。
背景:互联网早期遗留的 codec 黑洞
2000 年代有大量私有 codec:RealVideo、Windows Media、GoToMeeting 视频会议、各种早期游戏的播片格式。今天人们把会议存档想拿出来播,但原始播放器只能在 32 位 Windows XP 上跑、用不了 ARM、用不了 macOS、用不了 Android——没有公开规范。
Kostya Shishkov:传奇逆向者
JB 用了"borderline genius"形容 Kostya(来自乌克兰,住德国)。Kostya 能逆向几十兆字节的 binary blob——按 Kieran 的估算,1MB 的 binary blob 大约对应一个月的全职逆向工作。Kostya 在做 GoToMeeting codec 时只用了 2 个月。
逆向流程拆解
Kieran 详细描述了流程:
- 找到 codec 模块:在视频会议软件几十 MB 的二进制里定位实际做解压的模块
- Hook 输出:找到模块的入口和出口,把 raw YUV 数据 dump 出来作为"标准答案"
- 样本搜集:通过 Twitter 公开求样本"求 X codec 的样本"——有时几个,有时是某个公司送来 10 万个文件的金矿
- disassembler 里硬看:用经验判断"这看起来是 DCT、这看起来是熵编码、这看起来是 intra prediction"
- bit exact 验证:从 2000 年代开始的 codec 都要求所有实现产生完全相同的字节输出——你的逆向必须"bit exact" 匹配原始解码器
为什么对人类很重要
JB 说得很重:
"It's a GoToMeeting.exe for Windows 32 bits, right? Well, oh yeah, but I'm on Android, I'm on an iPad, I'm somewhere else. I'm going to be on RISC-V, on ARM. Those are blocked, but there are tons of files we need support for the future. And this is why those type of work are exceptionally useful for humanity."
(想象一个老的 32 位 Windows GoToMeeting.exe——你今天在 Android、iPad、RISC-V、ARM 上都没法播。但有海量文件需要未来的人能播。这就是为什么这种逆向工作对人类异常重要。)
这是数字考古学——Lex 当场把它跟传统考古学家"用刷子从陶片里重建文明"做了类比。
六、CIA、Microsoft Teams、Google Security:开源维护者面对的现实政治
这部分是整场对话最有戏剧张力的章节——当一个软件被几十亿人用,所有大势力都会想从它身上拿到什么。
CIA Vault 7:假版本 VLC 偷文件
WikiLeaks 在 2017 年 Vault 7 文件里披露:CIA 做过修改版的 VLC——基本是正版二进制,但多塞了一个叫 psapi.dll 的 DLL。这个 DLL 在用户看电影的 2 小时里偷偷读取 Document 文件夹、加密、上传。JB 评价"很聪明的设计"——因为电影播放本来就让风扇高速转、CPU 占用率高,多余的活动完全被掩盖。
印度政府禁 VLC
类似事件在印度发生:中国黑客把一个签名的 VLC DLL 抽出来,用在另一个程序里攻击印度用户。印度政府一度封禁了 VLC,JB 不得不亲自上印度法院打官司才解封。
Microsoft Teams 的离谱要求
JB 在 Twitter 揭露:Microsoft Teams 的工程经理在某个开源项目(XZ)的公开 bug tracker 上发帖说"这是我们的 high priority",要求免费、紧急的支持。当志愿者礼貌请求 Microsoft 签维护合同时,Microsoft 回应"一次性付几千美元"。
JB 解释了大公司心理:
"They think an open source project is a traditional vendor that they have an SLA. They think a public bug tracker is actually a third-party vendor's Jira where you can do all of these things. It's not."
(他们以为开源项目是传统供应商、以为有 SLA、以为公开 bug tracker 是第三方供应商的 Jira——根本不是。)
Google Security 的 AI Slop 攻击
最严重的一次:Google 用 AI 自动 fuzz FFmpeg,生成几百份"高严重性"安全报告涌进 FFmpeg 邮件列表,给的是 90 天行业标准 deadline,自己几乎不发任何 patch——而且把消息提前给了媒体宣传"我们 AI 多牛"。
被 fuzz 出来的"漏洞"是什么?Kieran 描述:
"On a game codec used on one disc in 1993."
(一个 1993 年某个游戏唯一一张光盘上用过的 game codec 里的漏洞。)
而且 Google 把整数溢出导致"某个像素颜色显示错误"的 issue 标成 High Severity 7.5。Kieran 用了一个特别精准的比喻:
"The padlock on your home is there to protect against the capabilities of what it's there to protect. It's not there to protect nuclear secrets. It's not there to protect Fort Knox."
(你家门上挂的是普通挂锁,它的安全等级是匹配它要保护的东西。它不是用来保护核机密的,不是用来保护 Fort Knox 黄金储备的。)
最让 Kieran 不满的是 security 社区的话术风格:
"Everything is marked high priority. 'High, high, high, vulnerable, scary, scary, scary.' At some point, the security industry needs to realize you can't keep crying wolf like this."
(所有东西都标高优先级:高高高、漏洞可怕可怕可怕。安全行业必须意识到——你不能一直喊狼来了。)
反讽性的结果:开源 drama 是有效的政治工具
Kieran/JB 都承认:这种 spicy tweet 反而带来了正向结果。Google 后来开始派 patch、设立修复奖金;FFmpeg 捐款上升;Tim Sweeney、Carmack、Karpathy 等大 V 公开支持开源工程师。VLC 被卡在 Android Play Store 一年发不了新版的 bug,唯一让 Google 派人对接的方式是发推说"我们要停止发布 Android 版 VLC 了"——一发推,第二天就有人来谈了。
七、JB 拒掉的"千万美元报价":开源伦理的现实定价
Reddit 上有一张广为流传的图:"VLC 创始人 JB——拒绝了几千万美元只为保持 VLC 无广告"。Lex 直接问 JB 是怎么想的。
收到的报价类型
JB 列了三类:
- 绑定工具栏——浏览器工具栏,本质是 spyware
- 更换搜索引擎——把用户默认搜索改成出价方
- VLC 内嵌广告
最后一次报价被 JB 形容为"obscene"(数额淫秽地高),对方还玩心理战:"想想用这笔钱你可以建多少新的开源项目"。
JB 的判断框架
"I am not against money, right? I'm very happy to make money. I created several startups... It's the fact that I believe that you need to win money ethically. There is a right way of doing that, and doing sneaky advertisement or stealing data is not the correct way."
(我不反对钱。我很开心能赚钱,我创了好几个创业公司。但我认为必须以伦理的方式赚——偷偷塞广告、偷数据,不是正确的方式。)
他做了一个反事实假设:如果是 Netflix 当年来谈合作把 Netflix 入口塞进 VLC,故事可能不一样——但找上门的全是灰产广告公司。
关键洞察:拒绝是为了更长远的存在
"If I do that, right, I would have a ton of money, and then three years later, project is gone. Someone forks it and something else happens."
(如果我接了,我会有一大笔钱,但 3 年后项目就没了。有人会 fork 它,然后一切重来。)
开源项目的政治资本是它的"非营利性"本身——一旦失去这个,竞争对手立刻能用同样的代码做出"无广告版",你的用户就走光了。
心理基底
JB 给自己的判断标准:
"I need to go to bed at night and be happy about what I've done. I believe there is right and wrong. This was the right decision at the time. I want to be proud of what I've been doing."
(我得能够安心睡觉。我相信对错之分。这是当时正确的决定。我希望对自己做的事感到骄傲。)
八、维护者 burnout:开源世界的隐形危机
Lex 反复追问"你不焦虑吗?小团队维护几十亿人用的软件,压力呢?"——这部分对话引出了开源最深的伤口。
现实数据
| 指标 | 数据 |
|---|---|
| FFmpeg 历史总贡献者 | 2000-3000 人 |
| FFmpeg 当年活跃贡献者 | ~300 人 |
| FFmpeg 核心维护者 | 10-15 人 |
| VLC 当年活跃贡献者 | ~150 人 |
| VLC 核心维护者 | 5-8 人 |
| 一个新贡献者最终留下的概率 | ~1% |
JB 解释为什么维护者必须 ruthless:
"We are the ones who are going to maintain your code. Because one thousand contributors in the timeline and just ten staying, it's one percent chance that someone comes and stays. So you will have change of job, change of wives, you have children, you have accidents in life. You're not going to come back. So we are the one going to maintain your code. It needs to be maintainable. It needs to be excellent."
(我们将会是维护你代码的人。1000 个贡献者里只有 10 个会留下,1% 概率。你会换工作、换老婆、生孩子、出意外——你不会一直在。所以我们要维护你的代码 20 年。它必须可维护、必须卓越。)
Linus Torvalds 之所以"刻薄",本质是数学问题——10 个人要维护千万行代码 20 年,谁都没工夫教育新人。
XZ 漏洞背后的悲剧
JB 提到 2024 年震动业界的 XZ 后门事件:XZ 是被几乎所有 Linux 发行版用的压缩库,只有一个维护者。两个攻击者(疑似国家行为)用了 2-3 年时间,故意在维护者身心俱疲时长期施压,假装"善意贡献者"骚扰维护者,最终拿到 commit 权限注入后门。
核心教训:开源世界最脆弱的不是代码,是维护者的心理。
"AI Slop" 的新威胁
Daniel Stenberg(curl 作者,欧洲开源学院成员之一)创造的术语 "AI slop"——AI 自动生成的低质量 bug 报告 / patch。一个志愿者维护者每周本来花 5 小时干活,现在要先花 5 小时筛 AI 生成的"虚假漏洞",根本没空真做事。
JB 收到的"白粉死亡威胁"
2009-2010 年,VLC 决定停止维护 PowerPC(Apple 早就放弃了 PowerPC 移到 Intel Core Duo)。JB 收到一封信,里面装了白色粉末(让人以为是炭疽热),署名:"你这个 piece of shit,你应该死,PowerPC forever"。
JB 当时只有 25 岁,跟妈妈一起去报警。他现在的回顾:
"I'm quite happy that this happened at that time. It forged me a lot. I can take a lot of hate on me. I'm okay with it."
(我反而庆幸这件事发生在那个时候——它锻造了我。我现在能承受很多 hate,我 OK。)
九、JB 的 zen 哲学:为什么他不焦虑
Lex 反复问"你每次回答都很 zen,秘诀是什么?"——JB 给出了一个让人记很久的答案:
"I have a way of thinking about what is the worst case scenario, always. And the answer is, at the end, am I dead? Yes or no? I do that nonstop. That's also how I do my startups. What is the worst case? It goes bankrupt. That's life. A company lives, a company dies. That's okay. So my moral way is always like, am I dying in the end? Am I hurting someone? If the answer is no, then too bad. Like, oh, some lawyers are going to be unhappy. What are they going to do? Take all the money of VideoLAN? Wow, they're going to have 50 grand. Amazing. What are they going to do with that?"
(我每次都问自己:最坏情况是什么?最后我会死吗?是 / 否?这是我的常态思考方式,创业也一样。最坏情况:破产。那是生活,公司有生有死,OK。我的道德判断始终是:最后我会死吗?我会伤人吗?如果答案是"不会"——那 too bad。律师不开心?他们能怎样?把 VideoLAN 的钱全拿走?哇,他们会拿到 5 万美元。厉害。)
这段话的力量在于它的可操作性——把模糊的恐惧具象化成一个二元问题。VideoLAN 没有办公室、没有员工、源代码全开。"VideoLAN 是不可被关停的"——你能关掉它的域名,JB 第二天就在马耳他 / 开曼群岛重启。
为什么 VLC 在法国
不是巧合:法国不承认软件专利——所以 H.264、H.265、HEVC 那些"用户每装一台设备要付 200 美元"的专利在法国基本无效。这给 VLC 提供了天然的法律避风港。
十、未来:从 4 毫秒延迟到脑机接口
最后一部分对话指向未来。两位嘉宾的新公司方向恰好覆盖两个不同维度。
Kyber(JB 的新公司):4 毫秒延迟
JB 说他的目标是 glass-to-glass 4 毫秒——即从摄像头快门到对面屏幕显示的总延迟 4 毫秒(=240 帧每秒)。当前能做到 7 毫秒(Windows-to-Windows)。
应用场景:
- 远程控制人形机器人
- 远程驾驶汽车(包括 Waymo 出问题时的 1% 人工接管)
- 远程操控无人机、潜艇
- 远程手术(专家不在场地时)
- 云游戏
核心创新:用 QUIC 协议(基于 UDP,无 TCP 队头阻塞)+ forward error correction(FEC,主动多发 5% 数据让客户端能在丢包时自我修复)+ 时钟漂移补偿(多摄像头训练机器人 AI 时必须保证传感器时间戳同步)。
dav1d2、AV2:下一代开源 codec
AV2 比 AV1 再小 30%。Alliance for Open Media(Google + Netflix + Amazon + Apple + VideoLAN 等)的下一代产品——核心动机依旧是 royalty-free,避开 H.266/VVC 专利雷区。VLC 已经在 CES 2026 演示了首个 AV2 解码 demo。
archiving 社区与 1000 年的视野
Dave Rice(纽约市立大学)领导的 archiving 社区,开发了 FFV1(无损归档 codec),用 FFmpeg 帮全球档案馆数字化 1930-1980 年代的电影胶片和磁带——全球磁带读取头数量已经少于待数字化磁带数量,必须做选择。
Kieran 的话最有诗意:
"FFmpeg is written in C. C is the closest to mathematics you're probably gonna get. The closest to logic is... Will be like Latin. C will be like Latin. It will be a thing that you learn from the past, but it will still be usable in certain contexts."
(FFmpeg 写在 C 里。C 是人类最接近数学的语言——最接近逻辑。1000 年后 C 会像拉丁语——一种"过去的语言",但在特定语境里仍可用。)
FFmpeg 在火星上
NASA Mars 2020 火星车的图像压缩用 FFmpeg。VLC 被 Formula 1 paddock 用来看实况、被 ESA 和 SpaceX 用来监控发射、被 CERN 用来在 27 公里 LHC 加速器周围监控传感器。
JB 总结:
"FFmpeg runs on Mars, so we are a multi-planetary open source library."
(FFmpeg 跑在火星上,所以我们是多行星开源软件库。)
未来的"多媒体"会变成什么
Lex 问:100 年后多媒体是什么?JB 的回答给了一个非常宽的定义:
"Multimedia is a digital representation of several streams for the human senses. Imagine there is now a way to have an odor sensor and a diffuser of odors. It will get into FFmpeg... Stereo smell."
(多媒体 = 任何"对人类感官的数字化表征"。未来如果有气味传感器、气味扩散器——会进 FFmpeg。立体声气味。)
Kieran 接梗:"你会有左鼻孔、右鼻孔的双声道气味轨"。
VLC 已有 haptic plugin(用于 4D 电影院的液压座椅同步信号)。Lex 提到 Neuralink 的脑机接口——JB 直接说"会有 brainwaves codec"。
整段对话结束时 Lex 说:'你会有 VLC for Neuralink',JB 接:'是的,FFmpeg -i 输入格式: human brain'——这是一个在科幻和工程现实之间游移的瞬间。
十一、值得深挖的几个开放问题
听完这场近 5 小时的对话,我认为以下几个问题值得继续追踪:
- AI 时代谁会真的把"computer architecture"知识传下去? Kieran/JB 说的是"AI inference 早晚也得做汇编级优化"——但今天大部分 AI 工程师只会 Python+PyTorch。FFmpeg 社区是否会成为 AI inference 框架的"汇编学院"?
- 欧洲软件专利的法律不对称还能持续多久? 法国/德国不承认软件专利让 VideoLAN 可以"在法律灰区生存"。如果欧盟未来跟 US 接轨,VLC 该往哪迁?
- Kyber 4 毫秒延迟能否成为"机器人远程操控"的事实标准? 这背后的赌注是:人形机器人会很快普及,但 100% 自主太久——遥操作(teleop)会是过渡期的关键技术。
- archiving 社区的 1000 年承诺如何兑现? 我们今天还能播 1990 年代的 RealPlayer 文件,是因为 Kostya 这种逆向天才。但 100 年后还有 Kostya 吗?这个传承链是否需要被制度化?
- AV2 vs H.266:开源/专利的最终对决 AV2 royalty-free 路线如果在 2026-2030 全面胜出,会改变多少十亿美元规模的专利池业务模型?
金句收录
-
"FFmpeg is the invisible backbone behind YouTube, Netflix, Chrome, VLC, Discord." (FFmpeg 是 YouTube、Netflix、Chrome、VLC、Discord 背后的"隐形脊梁"。)
-
"Every cycle matters. We are talking about probably three billion devices which are going to decode video nonstop." (每个 CPU 周期都重要。我们说的是大约 30 亿台设备 7×24 小时不停在解码视频。)
-
"C is not fast. Handwritten assembly is 10x to 50x faster, sometimes 60x." (C 不快。手写汇编比 C 快 10 到 50 倍,有时 60 倍——不是百分比,是倍数。)
-
"We abuse the machine. We use the machine in ways that the creator didn't expect." (我们"虐待"机器——用 CPU 设计者完全没预料的方式使用它。)
-
"VLC is to FFmpeg as Android is to Linux." (VLC 之于 FFmpeg,犹如 Android 之于 Linux。)
-
"Some things only happen because an awesome person decides to do it. This is the case with VLC."(Tim Sweeney) (世界上很多事情之所以发生,仅仅是因为某个了不起的人决定去做。VLC 就是这样的。)
-
"The padlock on your home is there to protect against the capabilities of what it's there to protect. It's not there to protect Fort Knox." (你家门上的挂锁是匹配它要保护的东西——不是用来保护 Fort Knox 黄金储备的。)
-
"We don't care who you are. Maybe you're a dog. I don't care. I need to look at your code." (我们不在乎你是谁。也许你是只狗,我不在乎。我只看你的代码。)
-
"It needs to be excellent. We are very few to maintain something that is critical for the whole." (它必须卓越。我们这群人很少,却要维护一个对整个互联网至关重要的东西。)
-
"If we had to compromise our software, we would shut it down." (如果我们必须妥协软件的纯粹性——我们会直接关掉它。)
-
"Regrets are a tax on your mind. Learn from your mistakes, but don't regret." (悔恨是对大脑的税。从错误中学习,但不要悔恨。)
-
"C will be like Latin. It will be a thing that you learn from the past, but it will still be usable in certain contexts." (C 会像拉丁语——一种从过去学习的语言,但在特定语境里仍然可用。)
-
"FFmpeg runs on Mars, so we are a multi-planetary open source library." (FFmpeg 跑在火星上——所以我们是多行星开源软件库。)
-
"Talk is cheap, send patches." (说话便宜,发 patch。)
-
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."(Linus Torvalds) (大部分好程序员写程序不是为了拿薪水、不是为了观众的赞美——而是因为编程本身好玩。)
时间线索引
[00:00]开场片头:手写汇编、Linus Torvalds、CIA 后门请求[02:17]Lex 的颂歌式介绍:FFmpeg、VLC、开源精神[05:35]JB/Kieran 上场:VLC 的"奇葩文件"竞赛、橙色雪糕筒 logo[09:55]按 play 之后到底发生了什么:URL → demuxer → codec → 渲染[19:20]容器 vs codec:MP4 ≠ H.264[24:35]VLC 不信任文件后缀名[30:08]视频压缩的本质:100x-1000x、模拟人眼/耳朵[34:28]IPB 帧、ProRes 全 I 帧、intra-refresh[36:08]FFmpeg 是什么:command line + libavcodec/libavformat 库[41:58]开源 license:BSD/MIT/GPL/LGPL/AGPL[44:00]JB 把 libVLC 从 GPL 改成 LGPL 的 350 人寻人故事[50:00]工厂工人父亲故事:寻找已故贡献者签字[51:00]我们不在乎你是谁,只看你的代码[55:35]Linus Torvalds 的"刻薄"是数学问题不是性格问题[56:18]JB 拒绝千万美元收购的伦理逻辑[1:09:00]Google AI Slop:Security drama[1:11:30]XZ 后门 + Microsoft Teams 把开源当付费供应商[1:25:00]VideoLAN 死亡威胁、PowerPC 移除事件[1:32:00]维护者 burnout、AI slop 是新威胁[1:39:00]学汇编:Henrik Gramner 和 Martin Storsjö 的传奇[1:42:00]dav1d 240,000 行汇编、绕过 OS 调用约定[1:50:00]反向工程二进制 codec:Kostya Shishkov、bit exact[2:01:00]FATE 测试:所有 OS × 编译器 × 指令集组合[2:30:30]Rust vs C:JB 不反对 Rust,但 240k 行汇编没法 Rust 化[2:35:00]Libav fork 的政治化解[2:48:00]汇编的哲学含义:摩尔定律末期 + AI inference[2:55:00]H.264 / x264 / Loren Merritt / 心理视觉编码 / 反对 PSNR[3:11:00]CIA Vault 7 假版本 VLC、印度封禁事件[3:21:00]VLC 不知道用户在播什么文件[3:22:00]流媒体:adaptive streaming 不是核心难题、卫星广播才是[3:25:00]Kyber:4 毫秒 glass-to-glass 延迟、远程操控机器人[3:39:00]AV1 / AV2 / dav1d2 / H.266 / VVC 专利雷区[3:46:00]MPEG LA / HEVC Advance 专利池失控、AOM 反击[3:52:00]JB 的 zen 哲学:"最坏情况是什么?"[3:59:00]archiving 社区:Dave Rice、FFV1、1000 年罗塞塔石碑[4:05:00]FFmpeg 100 年后还在吗?C 像拉丁语[4:07:00]未来:脑机接口、立体声气味、4D 电影院 haptic[4:13:00]FFmpeg 在火星上、CERN 用 VLC 监控加速器[4:17:00]Linus 引言收尾:"程序员写程序是因为好玩"
报告完
评论
还没有评论,来第一个留言吧 ✨