▶ 原文链接

FFmpeg:互联网视频背后的惊人技术 | Lex Fridman 播客 #496

来源: Lex Fridman Podcast | Jean-Baptiste Kempf, Kieran Kunhya | May 06, 2026 分类: 其他 原文发表: May 06, 2026 纪要生成: 2026-05-11


全集重点


嘉宾/话题简介

本集播客邀请了两位视频技术领域的传奇人物。Jean-Baptiste Kempf 是 VideoLAN 基金会主席,VLC 媒体播放器和 FFmpeg 项目的关键人物与精神领袖。Kieran Kunhya 是一名资深的编解码器工程师、FFmpeg 的长期贡献者,同时以其运营的言辞犀利、热衷技术梗的 FFmpeg 推特账号而闻名。

两位嘉宾深入探讨了支撑整个互联网视频运转的底层技术体系:FFmpegVLC。对话不仅涵盖了视频播放、编解码、容器格式等硬核技术原理,更讲述了背后充满激情的开源社区文化,包括手写汇编的极致追求、逆向工程的惊心动魄,以及拒绝千万美元保持软件纯净的商业抉择。


分节详述

00:00 – 节目高光

本节重点

详细精要

💬 精华片段(中文)

“重要的在于,你的代码好吗?我们关心的是卓越的代码。我们不在乎你是谁。也许你是一条狗,我不在乎,对吧?我不在乎你来自哪里。我需要看你的代码。”

"The important thing is, is your code good? We care about excellent code. We don’t care who you are. Like maybe you’re a dog. I don’t care, right? I don’t care where you come from. I need to look at your code."

💬 精华片段(中文)

“情报机构曾试图说,‘你们能在 VLC 里安个后门吗?‘……是的,有两家。……我说,不。嗯,我当时的语气可没这么客气。……简单来说,就是 ‘见鬼去吧’。……如果我们不得不妥协我们的软件,我们会直接把它关停。这一点很明确。”

"The intelligence agencies tried to, like, say, “Can you put a backdoor in VLC?”…Yes. Two of them.…Well, I was a lot less polite.…Basically saying, “Hell no.”…Like, if we had to compromise our software, we would shut it down. This is clear."

02:17 – 引言

本节重点

详细精要

05:35 – VLC 能打开的最奇怪文件

本节重点

详细精要

09:59 – 视频播放是如何工作的

本节重点

详细精要

💬 精华片段(中文)

"我们过去几分钟里所说的每一句话,都是某个人一生的工作成果。关于每一句话,都有相关的书籍。所以,在很多情况下,其复杂程度是超乎寻常的。"

"everything we’ve just said in the past couple of minutes, every sentence is someone’s lifetime’s work. There are books about every sentence. So the level of complexity in many cases is inordinate."

19:20 – 视频编解码器与容器

本节重点

详细精要

30:07 – FFmpeg 详解

本节重点

详细精要

51:07 – Linus Torvalds

本节重点

详细精要

55:46 – 拒绝数百万美元以保持 VLC 无广告

本节重点

详细精要

01:10:04 – FFmpeg 与 Google 的风波

本节重点

详细精要

01:29:18 – FFmpeg 的开发者

本节重点

详细精要

01:35:55 – VLC 与 FFmpeg

本节重点

详细精要

01:40:29 – FFmpeg 的历史

本节重点

详细精要

01:43:46 – 逆向工程编解码器

本节重点

详细精要

01:57:01 – FFmpeg 的测试

本节重点

详细精要

02:01:08 – 汇编代码(手写)

本节重点

详细精要

💬 精华片段(中文)

"这就是巅峰视频编解码器该有的样子:79.9% 的汇编,19.6% 的 C,还有 0.5% 的其他。"

"This is what peak video codecs should look like. Seventy-nine point nine percent assembly, nineteen point six percent C, and zero point five percent other."

💬 精华片段(中文)

”有些汇编语言真的很美,我认为它之所以美,有点像驾驶一架喷火战斗机。这是航空技术最纯粹的状态,但同时你也在将飞机推向设计者未曾想到的极限。“

"Some of this assembly language is really beautiful, and I think it’s beautiful because it’s kind of like flying a Spitfire. It’s really aviation at its purest, but also pushing the aircraft beyond what the designer thought was possible."

02:25:26 – Rust 编程语言

本节重点

详细精要

02:34:42 – FFmpeg 与 Libav 的分裂

本节重点

详细精要

02:43:04 – 开源维护者的倦怠

本节重点

详细精要

02:50:51 – x264 与互联网视频

本节重点

详细精要

03:04:07 – 视频压缩基础

本节重点

详细精要

03:11:04 – CIA 与假 VLC

本节重点

详细精要

03:21:39 – 超低延迟流媒体

本节重点

详细精要

03:39:07 – AV2 编解码器与视频专利

本节重点

详细精要

03:48:59 – VLC 的后门

本节重点

详细精要

03:59:14 – 视频存档

本节重点

详细精要

04:05:51 – FFmpeg 与 VLC 的未来

本节重点

详细精要


专业术语注释

术语 解释
FFmpeg 一个自由软件,可以执行音频和视频多种格式的录影、转换、串流功能,包含了 libavcodec 这个领先的音视频编解码库。它是无数音视频软件的基石。
VLC 一款自由、开源的跨平台多媒体播放器及框架,可以播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
编解码器 (Codec) 编码器/解码器的合称,一种能对数字视频或音频进行压缩或解压缩的软件或硬件。
容器 (Container) 一种文件格式,用于将压缩后的视频、音频、字幕等数据流打包在一起。常见的如 MP4、MKV、MOV。
解复用/复用 (Demux/Mux) 解复用 (Demux) 是将容器中的不同数据流(音视频)分离出来。复用 (Mux) 则是其反过程。
YUV 一种色彩空间,Y 代表亮度 (Luminance),U 和 V 代表色度 (Chrominance)。人眼对亮度比对色彩更敏感,因此视频压缩常通过压缩色彩信息来减少数据量。
频域 (Frequency Domain) 通过数学变换(如 DCT),将图像从像素空间转换到频率空间。这可以更好地分离出重要和次要的视觉信息。
I/P/B 帧 I 帧是关键帧,包含完整图像;P 帧是前向预测帧,依赖前帧;B 帧是双向预测帧,可依赖前后帧。它们构成了视频压缩的核心帧结构。
GOP (Group of Pictures) 图像组,指从一个 I 帧开始到下一个 I 帧之前的序列。
H.264 / AVC 一种高度压缩的数字视频编解码器标准,是目前应用最广泛的视频编码标准之一。
AV1 一种开源的、免版税的视频编码格式,由开放媒体联盟 (AOM) 开发,旨在取代 H.264/HEVC。
x264 一个兼容 H.264/AVC 标准的免费、开源视频编码器,属于 VideoLAN 项目。
dav1d 一个专注于性能的、极其高效的开源 AV1 视频解码器,由 VideoLAN 社区开发。其绝大多数代码是手写汇编。
软件解码 (Software Decoding) 使用 CPU 的通用计算能力来解码视频。灵活,但在功耗和处理速度上可能不如硬件解码。
硬件解码 (Hardware Decoding) 使用 GPU 或 SoC 中专门用于视频解码的模块来处理视频。速度快、功耗低,但支持的格式和规格受限。
损失性压缩 (Lossy Compression) 通过永久性地移除某些(通常是人眼耳不易察觉的)信息来减小文件大小。绝大多数互联网视频音频都采用此方式。
位精确 (Bit-exact) 一个要求严苛的标准,意味着对于同一输入标准流的解码,任何正确的解码器实现都必须产生逐字节完全相同的输出。
SIMD (Single Instruction, Multiple Data) 单指令多数据流,一种CPU指令集扩展,允许用一条指令同时对多个数据点执行相同的操作,是视频编解码加速的关键技术。
手写汇编 (Handwritten Assembly) 程序员直接编写 CPU 能理解的底层机器指令,而非依赖编译器生成。这通常是为了获取极致的性能。
FATE FFmpeg 自动化测试环境,一个庞大的、由志愿者计算机组成的测试网络,用于确保 FFmpeg 在各种软硬件环境下的正确性。
心理视觉优化 (Psychovisual Optimization) 在视频压缩决策中,侧重于优化人眼实际看到的感知质量,而非单纯追求像 PSNR 这样的冰冷数学指标。
逆向工程 (Reverse Engineering) 在没有文档的情况下,通过分析软件或硬件的二进制代码来还原其设计原理、功能和算法的过程。
版权左派 (Copyleft) 一种许可证类型(如 GPL),要求对使用了该许可证的代码进行修改和再发布时,也必须以相同或兼容的许可证开源。
SLA (Service-Level Agreement) 服务等级协议,通常指服务提供商与其客户之间就服务质量、响应时间等达成的正式合同。
GPL / LGPL / MIT 几种常见的开源软件许可证,对使用者的限制和要求(如是否必须开源衍生作品)不同。
Sandboxing 沙盒化,一种安全机制,将运行中的程序隔离在一个受限环境中,以防止它对系统或其他程序造成损害。
QUIC 一种基于 UDP 的新一代传输层网络协议,旨在减少延迟,并提供与 TCP 相同的可靠性。
Open Source Burnout 开源倦怠,指开源软件的维护者和贡献者在长期无偿、高压、缺乏认可和外部苛责的环境下,出现精力耗竭和精神耗竭的现象。

延伸思考

  1. 开源软件的可持续性困境:当整个现代互联网都依赖于像 FFmpeg 这样由寥寥数人志愿者维护的软件时,我们该如何建立一个更公平、更可持续的经济模型?企业“捐几百万”才是常态,而目前微软 Teams 只想给几千美元解决问题,这种巨大的价值与回报的落差如何弥合?
  2. 手写汇编的复兴? 在摩尔定律放缓、AI 推理对算力需求激增的今天,像 dav1d 那样通过手写汇编来榨干硬件每一滴性能的做法,是否会在一些关键基础设施软件中成为一种更广泛的趋势,而不仅仅是视频编解码的“独门秘技”?
  3. 安全研究与开发的对立统一:安全社区与开发者社区之间巨大的立场差异(“警报疲劳” vs “维护者倦怠”)如何才能走向良性循环?AI 的介入是放大了这一矛盾,还是有可能成为均衡双方能力的工具?
  4. 数字长存的罗塞塔石碑:我们正在产生的海量数字内容,在未来 1000 年后还能否被读取?FFmpeg 和 C 语言被视为一种解决方案。我们是否需要设立一个“现代亚历山大图书馆”,专门存储这些关键开源软件及其代码的所有文档和二进制文件,以备文明重启之需?
  5. 专利与创新的博弈:视频标准领域激烈的专利战和“雷区”现象,最终催生了 AV1 这样的免版税标准。这种“被逼出来的开放”是最终解决了问题,还是只是将战场从技术转向了法律,甚至可能抑制了后续的创新投入?

原文发表:May 06, 2026  ·  纪要生成:2026-05-11