2026-05-11 10:03:21
本集播客的精彩片段开宗明义地强调了开源社区的核心价值观:代码质量至上,无关贡献者的身份背景。Lex Fridman指出FFmpeg是全球最大的CPU使用者之一,其复杂性之高,每一句话都可能代表着某人毕生的工作。Jean-Baptiste Kempf补充说,FFmpeg包含十万行汇编代码用于所有编解码器,而dav1d一个项目就拥有二十四万行汇编代码,强调“每一周期都至关重要”。Lex进一步提到,顶级的视频编解码器可能由79.9%的汇编、19.6%的C语言和0.5%的其他代码组成,并指出即便这些事实性推文发布两年后,仍有人对汇编优化的必要性提出质疑。此外,Jean-Baptiste还透露VLC曾两次被情报机构要求植入后门,但他坚决拒绝,表示宁可关闭软件也不妥协。Kieran Kunhya和Jean-Baptiste Kempf都表示“不后悔任何事”,因为后悔是对心智的损耗。
本集播客深入探讨了FFmpeg和VLC,邀请了VideoLAN总裁、VLC和FFmpeg核心人物Jean-Baptiste Kempf,以及资深编解码器工程师、FFmpeg贡献者Kieran Kunhya。FFmpeg被誉为互联网视频和音频的“隐形支柱”,支撑着YouTube、Netflix、Chrome、VLC、Discord等几乎所有主流平台,具备解码、编码、转码、流媒体和播放几乎所有音视频格式的能力,且完全由志愿者开发。VLC则是一款传奇的开源媒体播放器,累计下载量超过60亿次,以播放各种格式、无广告、无追踪而闻名。Lex Fridman强调,这些现代文明基石的软件系统并非由追逐名利者构建,而是源于工程师对技艺的执着。本次对话不仅关注编解码技术和媒体管线,更探讨了支撑FFmpeg这类项目的工程精神和无私奉献。
Lex Fridman提出了VLC无所不播的“传说”,并询问了它能打开的最奇特内容。Jean-Baptiste Kempf分享了许多不寻常的用途,例如人们用VLC通过采集卡录制VHS录像带,或者播放罕见的DVD-Audio格式,甚至处理定制的加密方案。他还提到,VLC支持大量由FFmpeg提供的奇特游戏编解码器,例如某个《星球大战》视频游戏开场动画的精确比特实现。在一次VideoLAN会议上,他们甚至举办了一场制作“最怪异、最糟糕”文件的比赛,挑战VLC的播放极限。最终VLC成功播放了这些文件,包括每帧分辨率、宽高比、旋转都变化的MKV文件,以及完全由动画字幕(SSA)构成的视频。
谈及VLC的标志性地位,Jean-Baptiste Kempf指出其交通锥标志是“史上最佳的‘最烂’Logo”,具有极高的辨识度。他表示,即使在印度或中国偏远地区,人们也认识这个锥形图标。甚至有25%的网站流量通过搜索“锥形播放器”(cone player)而非“VLC”来到官网。他回忆道,曾有一次愚人节玩笑尝试更换Logo,结果收到了一万多封抗议邮件。这种独特、荒谬、幽默的Logo反而使其成为一种文化符号。Lex Fridman开玩笑说,千年之后,当地球文明毁灭,VLC的锥形Logo或许将成为唯一能播放幸存影像的工具。Jean-Baptiste还分享了一个用户将RFID芯片嵌入物理锥形Logo中,以实现播放电影的创意。
Lex Fridman请嘉宾解释视频播放的基本原理,即从文件或流到屏幕像素和扬声器声音的整个过程。Jean-Baptiste Kempf详细阐述了几个关键阶段: 1. 获取字节流: 从URL(如HTTP、文件路径、DVD路径)获取原始数据流。 2. 解复用(Demuxing): Kieran Kunhya解释,这一阶段将数据流分割成视频、音频和字幕等独立轨道,并进行初步解析以区分帧。 3. GPU与软件解码: 播放器会检测编解码器是否支持GPU硬件加速。Kieran指出,约45%的文件无法进行GPU解码,因此需要回退到软件解码。不同的GPU厂商可能有不同的能力。 4. 软件解码(核心): * 去熵编码: 移除比特流中的数学编码(如哈夫曼编码、算术编码)。 * 帧内预测: 处理视频中的静止图像(I-帧),在空间域进行预测。 * 残差处理: 预测与实际不符的部分(残差)存储在频率域,经过量化后再进行逆变换回到空间域并应用残差。 Lex Fridman总结,解码过程主要是针对压缩数据的预测,I-帧是空间上最佳的表示。
Jean-Baptiste Kempf强调,视频和音频的压缩率极高,视频可达100倍甚至200倍,目标是1000倍。所有压缩都旨在优化人类感知。例如,视频编码不直接在RGB空间工作,而是转换为YUV空间(亮度+色度),这与人眼对亮度和色彩的不同敏感度相匹配。为了实现高压缩率并保持视觉质量,需要复杂的数学技术(如离散余弦变换,将视频分割成块)。每一代编解码器都能在相同质量下减少约30%的数据量,但所需的计算能力(CPU功耗)却可能呈数量级增长。他进一步指出,很多编程工作在最低层级完成,包括C语言和大量的汇编代码。
Kieran Kunhya总结道,过去几分钟里说的每一句话都凝结着某人毕生的心血,每句话背后都有数千人在业界为此努力,有大量书籍探讨其细节,其复杂性之深令人难以置信。
Lex Fridman询问了编解码器(codecs)和容器(containers)的区别,因为两者常被混淆(如MP4和H.264)。Jean-Baptiste Kempf解释: * 容器(Container/Muxer/Demuxer): 是一种文件格式,用于收集和封装多个音视频轨道及字幕。常见的例子有MP4(原MOV,Apple格式)、AVI(Microsoft格式)和Matroska (MKV,开源社区的更复杂、面向未来的格式)。 * 编解码器(Codec/Coder-Decoder): 负责音视频数据的压缩和解压缩。他指出,H.264的官方名称是MPEG-4 Part 10,而MPEG-4本身是一个元规范,包含了多种编解码器和相关标准,导致了行业内的混淆。
Kieran Kunhya补充说,虽然MP4通常意味着H.264视频和AAC音频,但实际情况可能复杂得多。VLC和FFmpeg在处理文件时不会信任文件扩展名(如.MP4),而是会实时解析文件内容以确定其真实格式,因为现实世界中的文件格式可能被错误命名或包含意想不到的编解码器。
Jean-Baptiste Kempf进一步解释了VLC之所以能播放“损坏”文件,是因为其最初是为在UDP网络上流式传输视频而设计的。UDP传输容易丢包,因此VLC从设计之初就秉持“不信任输入”的哲学,能够处理破损或不完整的文件。例如,早期盗版内容中常见的AVI文件,其元数据通常在文件末尾,未下载完整时无法播放,但VLC能尝试解释部分数据,使其备受欢迎。
关于视频编解码器,Kieran Kunhya解释其核心目标是移除视频中巨大的空间和时间冗余数据,通过数学算法将数据压缩100到200倍。编码通常比解码需要更多的计算资源(非对称性),因为编码通常只进行一次,但解码会被无数用户反复进行。编解码器设计还需考虑错误恢复能力,以应对网络丢包等情况,并支持加入正在进行的流进行解码。Jean-Baptiste Kempf以“相机摇摄时背景不变”为例,说明通过重复利用帧间相似信息进行压缩。他强调,压缩目标是剔除人类不会注意到的冗余信息,例如将颜色分辨率缩减一半以减小文件大小,而大多数人几乎察觉不到视觉差异。现代编解码器(如AV1, AV2, VVC)甚至是一系列工具的集合,可根据内容类型(屏幕共享、视频、动画)动态选择不同的编码工具以优化压缩效果。
Lex Fridman和嘉宾们讨论了FFmpeg的精确定义。Jean-Baptiste Kempf将其描述为提供编解码、解复用、复用和过滤功能的底层库集合,并包含一系列用于处理视频文件的管道工具。它作为库被广泛集成在VLC、Chrome、智能电视以及几乎所有在线视频平台中,是事实上的图像处理工具,有时也依赖x264、libvpx等其他库。
Kieran Kunhya从哲学层面赞叹FFmpeg的意义,指出它使得个人家庭视频和价值万亿的公司能够使用相同的技术栈,实现了视频技术的民主化。他透露,许多大公司直接使用数千行的FFmpeg命令行指令,或通过其API进行视频处理。
Lex Fridman提到FFmpeg提供的命令行工具(如ffmpeg、ffprobe)因其极高的可定制性而传奇,参数众多,甚至可视为一种编程语言。Jean-Baptiste Kempf表示,AI也被用来生成复杂的FFmpeg命令行,因为其过滤器功能极其强大。他强调,FFmpeg是无处不在的多媒体处理工具箱,从YouTube、Netflix到OBS(直播软件)乃至专业广播设备,都可能运行着FFmpeg的某些部分。
Lex Fridman分享了他个人使用FFmpeg的经验,包括添加片头片尾、淡入淡出、音频交叉溶解、内嵌字幕等功能,并惊叹于它能魔术般地处理各种音视频编解码器。Jean-Baptiste Kempf补充说,FFmpeg命令行可以实现Adobe After Effects级别的视频编辑功能,而在图像处理领域还没有如此全面强大的命令行工具(ImageMagick虽类似但功能有限)。
Jean-Baptiste Kempf总结道,FFmpeg和VLC的共同愿景是让极其复杂的技术对普通人而言易于使用。VLC用户只需拖放文件即可播放,FFmpeg用户则能通过复杂过滤器轻松处理视频。Kieran Kunhya强调,FFmpeg的民主化作用推动了播客、流媒体和YouTube革命,将曾需数十万美元、汽车大小的专业压缩设备,普及到了每个人手中。
本集强调了FFmpeg和VLC是完全开源的项目。Jean-Baptiste Kempf用“巧克力芝士蛋糕”的比喻解释开源:不仅提供成品(软件),还提供食谱(源代码),甚至允许用户修改食谱并转售。他指出,FFmpeg自诞生以来已有两三千名贡献者,类似于Linux内核,人们跨越地域、文化和政治边界,共同为“更大的利益”而努力,解决特定问题,如添加新的编解码器支持。
关于开源许可证,Jean-Baptiste Kempf解释了许可证是社区的“社会契约”,例如GPL、LGPL、MIT、BSD和Apache等。他指出,公共领域并非全球通用概念,所有开源许可证都基于国际版权法来授予使用和修改软件的权利。许可证分为宽松型(如MIT、BSD,只需注明出处)和Copyleft型(如GPL、LGPL,要求回馈修改)。他曾将LibVLC(VLC引擎)从GPL改为LGPL,原因有二:一是允许第三方商业应用集成VLC引擎而无需开源整个产品;二是兼容iOS App Store的条款。
他强调,修改许可证需要获得所有贡献者的同意,这在VLC历史上曾是一项艰巨任务,他不得不联系三百五十多人,甚至亲自拜访,曾因代码作者已故而与家属沟通。这突显了开源社区中个人版权的重要性,以及维护社区“社会契约”的严肃性。Kieran Kunhya补充说,开源社区成员背景多元,从战区居民到富裕人群,能让他们对齐目标本身就是一项成就。Jean-Baptiste Kempf强调,项目只看重代码质量,无关贡献者的背景或身份。
Lex Fridman提到了开源社区的传奇人物Linus Torvalds及其严厉的代码审查风格。Jean-Baptiste Kempf认为Linus Torvalds是独一无二的,他甚至认为Linus在Git上的工作比在Linux内核上的成就更具意义。他解释说,Linus的严厉通常是针对内核维护者,这些人对他非常了解。Linus在自己房间里创造的Linux内核如今驱动着几乎所有在线服务器和Android手机,其开源的力量是惊人的。
Jean-Baptiste Kempf强调,FFmpeg和VLC等项目对代码质量的坚持不可妥协,因为核心维护者团队规模很小(VLC约5人,FFmpeg约10-15人),而贡献者的留存率极低(约1%)。这意味着核心团队需要长期维护这些代码,因此代码必须具有高度的可维护性和卓越性。他承认,这种对卓越的追求有时会导致语言上的尖锐,尤其是在低级别、高度技术化的亚文化圈子中。
Kieran Kunhya补充道,维护者通常是利用业余时间工作,有时会显得简练或不耐烦,这不应被个人化解读。Jean-Baptiste Kempf还指出,许多贡献者并非英语母语人士,这可能导致沟通上的误解。
Lex Fridman向Jean-Baptiste Kempf求证,关于他多次拒绝数百万美元的报价,以保持VLC开源、免费且无广告的传闻。Jean-Baptiste Kempf证实这是事实,并表示他选择这样做是因为他认为这不道德,也不是正确的做法。他认为自己是为“更大的利益”而工作,并且认为自己没有完全合法的理由去做出那样的决定。
他回顾了VLC的独特历史: VLC起源于法国精英工程学校巴黎中央理工学院(École Centrale Paris)的一个学生项目。由于校园由校友基金会而非大学管理,所有事务(包括网络)都由学生负责。在1980年代,校园部署了一个慢速的令牌环网络。到了1990年代中期,随着视频游戏和互联网兴起,学生们需要更快的网络。校方拒绝提供帮助,于是学生们寻求外部赞助。 法国布依格(Bouygues)公司的一位CIO建议利用卫星电视的未来趋势,构建一个系统:只用一个卫星天线和一个解码器,将MPEG-2视频直接流式传输到校园网络上。这个名为“Network 2000”的项目在1995年诞生,尽管最初充满技术挑战(如频繁崩溃、内存泄漏),但在学生们努力下成功实现了本地网络上的视频流。 几年后,两名学生(包括Christophe Massot)在此基础上创立了VideoLAN项目,旨在将视频流媒体推向更广泛的用户。在经历了大约三年的与校方就知识产权和版权的谈判后,大学终于在2001年初同意将VideoLAN项目开源。Jean-Baptiste Kempf于2003年加入该项目,并创建了非营利组织VideoLAN,使项目得以持续和发展。
Jean-Baptiste Kempf强调,他虽然不是VLC的最初创建者,但投入了比任何人都多的时间和精力,使VLC从几十万用户发展到如今的数十亿用户。他曾多次收到捆绑工具栏(通常是间谍软件)、改变浏览器主页或在VLC内植入广告的商业提议,总金额达数千万美元。他拒绝这些提议的原因是,他相信赚钱需要符合道德规范,而这些“阴暗”的广告或数据窃取方式并不正确。他认为,如果妥协,项目会在三年内消亡,因为会有人分叉并替代它。
Lex Fridman指出,这种拒绝短期巨大利益的决定具有远见和勇气,是VLC成功的关键之一,使其成为自由和开源精神的象征。Kieran Kunhya补充道,在2000年代,下载软件时悄悄安装间谍软件或广告是很常见的现象。Jean-Baptiste Kempf重申,他需要晚上能心安理得地睡觉,并为自己的工作感到自豪,如果背叛了社区,他会感到愧疚。
Kieran Kunhya谈及FFmpeg近期与Google之间发生的“戏剧性”事件。他首先澄清,Google是开源领域最大的支持者之一,但此次事件有些过火。问题在于,Google开始利用AI对FFmpeg这类开源项目生成安全漏洞报告。尽管FFmpeg主页上明确指出其处理的是“不受信任的数据”,存在安全风险是正常的,但Google的以下做法引发了争议: 1. AI生成报告与有限资助: Google使用AI发现漏洞,但给出的资金支持非常有限,且修复工作落在志愿者肩上。 2. 提前公布漏洞: Google在问题修复前就向媒体宣布其AI在发现漏洞方面的优越性,将漏洞公开化。 3. 不切实际的期限: Google设定了90天的标准行业修复期限,但没有充分理解志愿者驱动项目(如FFmpeg)的开发性质。 4. 漏洞优先级失衡: 很多漏洞是针对1990年代的冷门游戏编解码器,但被标记为“高优先级”、“严重漏洞”,造成“狼来了”效应,使得真正的关键问题可能被忽视。Kieran Kunhya认为,安全社区有时像“从不踏足工地”的建筑师,只负责指出问题,却不愿贡献代码或提供足够的资金支持。他比喻这就像用核武器级别的工具去撬开一个普通挂锁,然后指责挂锁不安全。
他引用了前FFmpeg开发者Alex Strange在Hacker News上的评论,批评安全研究人员“自我推销”,通过给漏洞起名、建立网站、赢得奖金来制造轰动,而修复漏洞的普通开发者却无人问津,这种激励机制的错位导致问题。
Jean-Baptiste Kempf指出,核心问题在于发现漏洞和修复漏洞之间的资源投入严重不对等。他肯定,在这次争议之后,Google确实做出了一些改变,开始发送补丁,并提供了修复漏洞的奖励机制。
Kieran Kunhya还提到了“XZ门”事件,该事件揭示了过度依赖无偿志愿者可能导致重大问题。他引用FFmpeg的推文指出,万亿市值的公司(如Microsoft Teams)却期待志愿者提供免费且紧急的支持。Microsoft Teams曾在一个由志愿者组成的Bug追踪器上,将自己的问题标记为“高优先级”,在FFmpeg礼貌地要求签订长期维护支持合同后,Microsoft只提供了几千美元的一次性付款,这被FFmpeg社区认为是不可接受的。Kieran Kunhya认为,这些公司错误地将开源项目视为拥有SLA的传统供应商。
Jean-Baptiste Kempf解释说,这反映了大型公司内部的沟通问题,项目经理可能不了解开源社区的运作方式。他强调,开源社区不是企业的供应商,如果需要供应商服务,应签订合同。
尽管争议激烈,Kieran Kunhya表示这些“火辣”的推文和事件实际上带来了积极影响:FFmpeg的捐款大幅增加(虽然仍不足以支付一名全职开发者),人们对FFmpeg重要性的认知也显著提升。Jean-Baptiste Kempf也分享了类似经验:当VLC在Android Play Store遇到Bug无法更新时,只有发出“将停止分发Android版VLC”的强硬推文,才得到了Google Android团队的回应。他认为,作为小型团队,社交媒体上的“指责”是他们解决问题的唯一有效手段。
Lex Fridman呼吁听众关注FFmpeg和VideoLAN的X/Twitter账户,并进行捐赠。他提到Tim Sweeney、John Carmack、Andrej Karpathy等科技界名人也曾为FFmpeg和VideoLAN发声,增加了其影响力。Kieran Kunhya强调,FFmpeg的价值不仅在于代码本身,还在于它是一个学习的场所,许多年轻的贡献者(如16岁的Ruikai Peng)在其中成长,甚至发现并修复了Google AI发现的“高危”漏洞,却不像某些安全研究者那样大肆宣扬。他将这种互动比作“国际说唱对决”,在X上进行,旨在以有趣的方式传播开源精神和底层工程知识。
Lex Fridman和Kieran Kunhya探讨了FFmpeg和VLC贡献者的动机。Jean-Baptiste Kempf认为,首要驱动力是“多媒体本身很有趣”,许多人因为热爱动漫而加入社区。他建议,想参与开源项目的人应从自己热爱的事物入手。
其次,FFmpeg社区对“卓越代码”的追求使其成为“最佳编程学校”。他指出,在FFmpeg中精通C语言和汇编语言的人,即使转向其他领域,也将是顶尖的程序员,因为他们会得到经验丰富的开发者对代码的细致审查。Kieran Kunhya补充说,Zig语言的创始人Andrew Kelley就是FFmpeg的开发者,FFmpeg是学习真实世界编程、应对数十亿用户系统挑战的绝佳场所。
Jean-Baptiste Kempf强调,多媒体领域有严格的时间限制(例如16毫秒内显示一帧),这要求代码必须高效和完美。此外,他认为很多现代工程师缺乏对“计算机体系结构”的深入理解。在FFmpeg中,开发者需要理解CPU流水线、SIMD、ALU、I/O等底层机制。Kieran Kunhya补充说,FFmpeg可能是世界上最大的CPU使用者之一,其代码在全球数亿甚至数十亿CPU上运行,因此“每一条指令都至关重要”。
最后,Jean-Baptiste Kempf提到,贡献者还因为能够参与到对亿万用户有实际影响的项目中而感到自豪。他引用John Collison的话“世界是激情项目的博物馆”,Kieran Kunhya则补充说,开源让这些激情项目能够通过网络效应迅速放大,吸引志同道合的人,共同创造出令人惊叹的成果。Tim Sweeney也曾称赞VLC是“因为一个了不起的人决定做它”而诞生的典范,这体现了个人愿景在软件世界中的巨大影响力,正如Linus Torvalds在两周内创造了Git一样。
Lex Fridman提问VLC和FFmpeg的关系,Kieran Kunhya用“二元星系统”来比喻它们,相互依存,共同成功。他将其类比为Android与Linux的关系:VLC之于FFmpeg,如同Android之于Linux。
具体解释如下: * 相互依赖: VLC作为VideoLAN项目的一部分,使用FFmpeg进行大量的编解码工作。FFmpeg的许多管道也依赖于VideoLAN旗下的x264项目(H.264编码器),据Kieran估计,超过80%的FFmpeg管道都与VideoLAN项目相关。 * 共享资源: VLC曾使用部分捐款资助FFmpeg的开发,并为其提供了大量奇特文件的播放场景,促进了FFmpeg的发展。 * 共同开发者: 许多开发者同时活跃在VLC和FFmpeg项目中。 * 地位澄清: Kieran Kunhya驳斥了X/Twitter上一些人认为“VLC只靠FFmpeg做事”的错误观念,强调两者是协作关系,而非从属关系。
Jean-Baptiste Kempf补充道,VLC在Windows上编译时,代码量高达1600万行,其中VLC自身仓库的代码约100万行,FFmpeg约200万行,其余为各种依赖库。FFmpeg本身也集成了x264、libopus等第三方库,这表明所有项目都相互依赖。他认为x264是“史上最棒的编码器之一”,它的成功推动了FFmpeg的普及,反过来,VLC也因能播放FFmpeg处理的各种文件而获得巨大成功。
Kieran Kunhya将FFmpeg的历史划分为几个关键时期,并提到了重要的贡献者: * Fabrice Bellard时代(奠基): Fabrice Bellard是FFmpeg概念的创立者。 * Michael Niedermayer时代(2000年代): 这一时期,Michael Niedermayer做出了卓越贡献,包括对DivX和Xvid及其各种MPEG-4 Part 2变体的全面支持。当时,不同的视频格式(如Windows Media、RealMedia)需要各自独立的播放器。FFmpeg的出现使得一个单一的播放器能够原生解码这些格式,而无需安装臃肿的编解码包或面对潜在的间谍软件,这在当时是一个巨大的成就。Kieran回忆自己青少年时期就曾因此感到震惊。他将Michael的工作形容为“西西弗斯式的”,因为要处理数百万种穷尽思量的边缘情况,例如中国闭路电视系统特有的MPEG-4 ASP变体,都需要在不破坏其他功能的前提下解决。 * H.264成熟期(2008年后): 随着高清视频的兴起,H.264成为关键的解码器。这一时期,Benjamin Larsson、Kostya Shishkov和Paul Mahol等“逆向工程师”通过惊人的工作,为FFmpeg添加了对RealMedia和Windows Media等专有格式的原生解码支持。VLC 1.0也在这一时期发布并迅速普及。
Lex Fridman和嘉宾们深入探讨了编解码器逆向工程的细节。Jean-Baptiste Kempf特别提到了乌克兰天才开发者Kostya Shishkov,他能够逆向工程极其复杂的专有编解码器,甚至处理20-30兆字节的二进制代码块。他举例说明了Kostya如何凭借直觉和经验,在两个月内逆向工程出GoToMeeting的编解码器,解决了VLC长期以来的一个热门功能请求。Kostya将二进制代码视为“二进制规范”,无需额外文档就能理解并实现。
Kieran Kunhya进一步阐述了逆向工程的复杂过程: 1. 样本获取与模块定位: 首先,需要获取专有格式的录制样本(例如GoToMeeting会议录像),然后在原始客户端软件中找到负责解压缩的模块。 2. 数据转储与钩子: 利用反汇编器猜测并找到钩子点,将模块运行起来,并转储原始的YUV数据。这些数据将作为后续逆向工程的比特精确(bit-exact)比较基准。 3. 直觉与模式识别: 在反汇编器中,逆向工程师需要凭借直觉来识别DCT(离散余弦变换)和熵编码等常见模式。虽然没有固定规则,但通常存在某种规律。 4. 调试与内存分析: 逆向工程是一个“黑箱”工作,通常需要纯粹在内存中调试,因为在熵解码、帧内预测、运动预测等多个步骤中,开发者可能长时间无法看到任何可视化输出。这包括逐步执行指令、观察内存变化、猜测系数缓冲区内容,甚至需要应对加密或DRM。Kieran分享了他逆向工程CineForm的经验,通过找到具有扁平块(flat blocks)的动画样本作为起点,逐步构建解码逻辑。
Jean-Baptiste Kempf强调,这项工作对于人类保存历史信息至关重要。例如,如果没有对GoToMeeting这种过时格式的解码支持,未来人们将无法播放这些十几年前的会议录像,尤其是在不同的操作系统和硬件架构上。
他提到,在 École Centrale Paris 时,他曾亲眼目睹Jon Lech Johansen如何逆向工程DVD规范(DeCSS)和Apple的MP4 FairPlay DRM,这对他年轻时的心态产生了巨大冲击。
尽管逆向工程过程艰辛且可能令人沮丧,但社区会互相帮助,提供样本。Kieran Kunhya解释了“比特精确(bit-exact)”的含义:在2000年代之后,大多数(但非全部)视频编解码器都要求所有实现(无论是Lex、JB还是Kieran的实现)在给定样本下,必须产生完全相同的比特输出。这与1990年代MPEG-2时代的情况不同,当时缺乏比特精确性被认为是视频行业的一大失误。
Kieran Kunhya指出,在多媒体领域,FFmpeg通过不断添加新的编解码器,已经几乎“赢得了所有”,成为一个赢家通吃的局面,因为它所增加的每个新编解码器都使其整体价值更高。
Kieran Kunhya详细介绍了FFmpeg严格的测试流程,核心是FATE(FFmpeg Automated Testing Environment,FFmpeg自动化测试环境)系统。 * 极高复杂性: FATE需要应对“荒谬”数量的操作系统、编译器和指令集组合,包括macOS的各种版本(iOS、tvOS)、Windows、Linux、BSD、Solaris,以及不同版本的编译器(Apple Clang、GCC、Visual Studio、Intel编译器)和处理器架构(PowerPC、RISC-V、ARM、x86的AVX-512等)。 * 志愿者驱动: 所有的测试系统都由志愿者运行和维护,确保代码在各种环境下都能正常工作。 * 检测编译错误: FATE的关键作用之一是发现“误编译”(miscompilations),即C代码在某些编译器下被错误地转换成机器码,这在视频处理中可能导致巨大的级联错误。 * 比特精确性验证: 测试确保FFmpeg在所有配置下都能保持比特精确性,即解码输出与原始数据完全一致。 * 持续集成: 每次代码提交都会触发FATE测试,确保不会破坏现有功能或引入新的兼容性问题。
Kieran Kunhya分享了他的“痛点”:在Open Broadcast Systems公司的工作中,他们需要处理10位视频,这在CPU上无法原生处理,需要复杂的打包格式和汇编优化。他提到内部有一个5x5或6x6的矩阵,用于处理每种格式到另一种格式的转换,且所有这些转换都用手写汇编代码实现,并支持不同CPU代际,处理这些组合令人“痛苦”。
Jean-Baptiste Kempf补充说,VLC也面临类似的挑战,需要支持从Windows XP到Windows 11、从macOS 10.7到最新版、从iOS 9到最新版等海量操作系统,甚至包括OS/2。他指出,VLC这个由小型团队维护的项目,支持的操作系统数量超过了微软、谷歌或苹果这些拥有“无限资源”的巨头。他特别提到iOS是最糟糕的,为了支持iOS 9上的Arm32架构,他们需要混合多个版本的Xcode IDE和SDK,进行“弗兰肯斯坦式”的构建。他强调这种广泛兼容性很重要,因为许多用户(例如使用iPad 2的老用户)仍然依赖VLC观看视频,这体现了“不强迫人们购买新硬件”的理念,而是通过优化现有软件来延长硬件寿命。
Kieran Kunhya将汇编代码描述为一门“失传的艺术”,但在FFmpeg和VLC这类项目中,它仍然是必要的,甚至能比C语言快62倍(指FFmpeg Twitter账户分享的一个例子)。他解释了汇编语言的工作原理:直接使用处理器指令,而非通过编译器将高级语言(如C)转换为汇编。FFmpeg主要使用SIMD(Single Instruction, Multiple Data)指令,能够用一条指令同时处理多个数据元素,这在视频处理(如像素网格操作)中效率极高。
他强调,FFmpeg与众不同之处在于不使用高级抽象(如“内部函数”Intrinsics),而是直接手写汇编,由开发者手动分配CPU寄存器。这种方法带来了10倍到50倍,甚至60多倍的速度提升。
Jean-Baptiste Kempf补充说,手写汇编是“必要的”,并以dav1d项目为例。dav1d是AV1编解码器的解码器,AV1被认为是极其复杂的格式,最初许多人(包括AOM联盟成员)认为必须依赖硬件解码。然而,dav1d团队(主要是Ronald、Henrik和Martin)开发了一个“疯狂”的软件解码器,包含3万行C代码和24万行手写汇编代码。FFmpeg所有编解码器的汇编代码总和约为10万行,dav1d一个项目就远超此量。
dav1d的设计理念是“每一周期都至关重要”,因为全球有数十亿设备需要不间断地解码AV1视频(Netflix 30%,YouTube 50%)。通过极致优化,dav1d能用一两个CPU核心解码720p视频。FFmpeg的推文也曾高调展示dav1d代码构成:“79.9%汇编,19.6% C,0.5%其他”,这引发了社区的激烈讨论。很多人认为现代编译器(如通过自动向量化)足以优化代码,手写汇编不再必要。但Jean-Baptiste Kempf和Kieran Kunhya反驳道,编译器优化远远达不到手写汇编的性能。
哲学上,Jean-Baptiste Kempf认为,随着摩尔定律趋于极限,硬件增速放缓,但对计算力的需求却爆炸式增长(如AI)。因此,开发者必须深入底层堆栈进行优化,从现有硬件中榨取更多性能。Kieran Kunhya甚至表示,他们“滥用”机器,使用与视频处理无关的加密指令来达到意想不到的加速效果。Jean-Baptiste Kempf透露,dav1d甚至会绕过操作系统的标准函数调用约定,通过自定义调用约定来减少寄存器保存/恢复的开销,以提高速度,这需要对CPU架构有极其深入的理解。
Kieran Kunhya还提到了他创建的“asm-lessons”项目,旨在以更实用的方式教授汇编语言,而非传统语法导向的教科书式教学。他认为,掌握汇编能帮助开发者更好地理解计算机底层运作,成为更好的程序员。他分享了两位“汇编向导”的故事:Henrik Gramner(对Intel x86汇编了如指掌,Intel工程师都会向他请教)和Martin Storsjö(在Arm架构上做着同样的工作,甚至能在手机上用虚拟键盘写汇编代码)。
Lex Fridman询问了嘉宾们对Rust编程语言的看法,两人持有不同意见。
Kieran Kunhya认为Rust在内存安全概念上很有价值,但在速度上无法达到手写汇编的水平,可能与C语言相当。他觉得Rust社区有一种“世界语”(Esperanto)般的乌托邦情结,过于强调自身的重要性而非解决实际问题。他将其比作Sir Clive Sinclair的C5电动车,虽然理念先进,但如果不能提供比现有解决方案更好的功能(达到85-90%的功能集),就难以推动大规模迁移。他认为,Rust代码可以集成到FFmpeg中,但前提是它必须像其他代码一样完美无缺,支持所有单元测试,且不能随意破坏ABI兼容性。他认为Rust社区在实际采纳方面,还需要证明它能够比现有方案更好。
Jean-Baptiste Kempf则分享了他使用Rust的经验,包括在VLC中添加Rust模块以及他的新创业项目Kyber主要用Rust开发。他认为,Rust作为一种“更好的C++”,在内存所有权和内存安全方面表现出色,是启动新项目时的绝佳选择。然而,他指出Rust在与现有代码(尤其是C和汇编)进行互操作时表现不佳。他批评了Rust社区中“重写一切”的倾向,强调在工程领域,通常“不要重写”是黄金法则。他解释,阅读代码比编写代码困难得多,导致新开发者往往因不理解现有代码的智慧而倾向于重写。
Jean-Baptiste Kempf进一步阐述了Rust在FFmpeg/VLC这类项目中的局限性:即使将C语言部分重写为Rust以提高安全性,但由于汇编代码可以直接在内存中跳转,这会破坏整个安全模型。因此,他认为需要开发“安全汇编”技术(如VideoLAN的checkasm项目),在编译时检查汇编代码,确保其不会在内存中非法跳转,否则单纯的Rust重写会失去意义。
Kieran Kunhya总结道,尽管如此,他个人仍然对手写汇编带来的惊人速度提升(例如62倍)感到敬畏,他认为代码优化带来的快乐是编程的巨大乐趣之一。
Lex Fridman提到了FFmpeg和Libav在历史上的分叉事件。Jean-Baptiste Kempf将其描述为开源项目社区中“意见不合”的正常现象。他指出,由于开源许可证的存在,人们可以合法地创建自己的分支,这在历史上屡见不鲜(如GCC与EGCS,KHTML与WebKit/Blink)。他甚至提到,在VLC中,他也会为了开发新功能而先创建分支,完成后再合并回主线。
他承认FFmpeg和Libav的分叉是一场“激烈的争议”,但几年后社区最终合并,大多数Libav的开发成果被FFmpeg吸收。Jean-Baptiste Kempf认为,这次分叉最终使FFmpeg变得更强大,因为一些核心分歧(如代码审查流程)得以解决,社区在开发方式上达成了共识。
Lex Fridman补充说,作为Linux用户,他曾亲身感受到这种分叉带来的影响,例如Ubuntu曾一度从FFmpeg转向Libav,后来又回归FFmpeg。这让用户能够感知到开源项目内部的辩论和决策。
Jean-Baptiste Kempf强调,尽管人们喜欢“戏剧性”,但从长远来看,分叉往往是积极的,它改变了社区的现状,推动项目向前发展。
Lex Fridman提到了分叉和内部冲突可能对核心贡献者造成的心理负担和倦怠问题。Jean-Baptiste Kempf承认,维护者倦怠是当今开源领域最严峻的挑战之一。他指出,“AI垃圾”(AI slop),即AI生成的大量虚假报告或低质量补丁,给维护者带来了巨大的负担。
他举了Xz fiasco的例子:该项目只有一个维护者,长期受到两名攻击者的骚扰和质疑,最终不堪重负,将提交权限交给了攻击者。这表明,倦怠问题不仅限于内部冲突,更多是源于日常维护的巨大压力。他本人也因此接管了许多因原维护者倦怠而放弃的多媒体和非多媒体库的维护工作。
Jean-Baptiste Kempf提到,一些大型公司(如Google的AI漏洞报告事件)未能意识到其行为对核心维护者的心理健康造成的影响。他引用了著名的“内布拉斯加州梗图”,指出许多关键的互联网基础设施都依赖于少数甚至一两个人的维护。例如,LibXML库(解析XML)和维护所有时区数据的项目,都面临维护者短缺的困境。
他强调,除了财务支持外,还需要在人际层面给予这些贡献者尊重和感激。Kieran Kunhya补充说,一些安全社区成员对开源代码抱有贬低态度,认为它们“写得烂”,却不理解这些代码常常是一个人的“爱好项目”,不可能考虑到所有极端情况。
Jean-Baptiste Kempf分享了一段痛苦的个人经历:2009或2010年,他因决定停止维护VLC的PowerPC版本而收到死亡威胁,甚至寄来了装有白色粉末的信件(后来证实是面粉)。尽管当时受到巨大冲击,但这段经历最终磨砺了他,让他能够承受更多批评和仇恨。
他认为,开源社区应得到更多感谢和认可。他自己会积极回复Reddit上感谢VLC的用户,并将这些积极反馈分享给IRC(他们仍在使用的聊天工具)上的社区成员,以激励大家。他呼吁所有人,不仅是开源社区,也包括所有创造优秀软件的公司,都应该相互庆祝和感谢人类的努力,创造出“该死的好东西”。
Lex Fridman邀请嘉宾详细介绍H.264及其编码器x264,这是互联网视频的基石。Kieran Kunhya指出,x264是H.264视频标准的编码器实现,主导着互联网视频和蓝光光盘等领域。H.264的出现恰逢高清视频兴起和Intel Core 2/Nehalem CPU性能提升,使得实时高清视频处理成为可能。
x264成功的关键在于其对“心理视觉指标”(psychovisual metrics)的关注。过去20年,业界和学术界痴迷于数学指标(如PSNR,峰值信噪比),这往往导致画面模糊,因为它试图在所有地方平均最小化误差。x264的开发者(主要是业余爱好者,许多因热爱动漫而参与)打破了这一趋势,他们采用了两种不同的方法: 1. 心理视觉率失真优化(Psychovisual rate distortion): 通过利用块能量等信息,补偿人眼对不同区域的感知差异,从而做出更符合视觉效果的决策。目标是让视频“看起来更舒服”,而非单纯的数学精确。 2. 自适应量化(Adaptive quantization): 将更多比特分配给复杂区域,减少给草地等视觉不敏感区域的比特,优化视觉质量。
Kieran Kunhya提到了一个著名的测试样本“ParkJoy”,它包含树木、水面、草地和运动等复杂场景,清晰地展示了传统高PSNR编码器会模糊画面,而x264的心理视觉优化则能显著提升视觉效果。
Jean-Baptiste Kempf补充了另一个“地球杀手级”的视频样本:大量鸟群在空中飞翔的场景,这是对编码器最大的挑战之一。他指出,x264通过对动漫的优化(解决色带效应等问题)变得更加出色。至今,x264仍是所有新型编码器(AV1、AV2、VVC、HEVC)的性能基准。Kieran Kunhya还提到,电影界的一些工程师,如华纳兄弟的Chris Henderson,甚至冒险在商业蓝光影片制作中采用x264,因为其视觉质量优于昂贵的商业编码器。
x264也是VideoLAN的一个项目,由Laurent Aimar在 École Centrale Paris 创立。随后的Loren Merritt、Jason、Måns、Henrik、Anton等一代开发者在此基础上发展了汇编优化技术,这些技术如今被FFmpeg和dav1d等项目广泛应用。Jean-Baptiste Kempf指出,许多x264的贡献者从未见过面,但因共同的热情而协作。他提到,在Crunchyroll等正版平台出现之前,许多动漫内容只能通过粉丝字幕组(fansubbers)进行非法分享,而x264为这些社区提供了高质量编码工具,Aegisub等开源字幕工具也应运而生,满足了动漫文化的需求。
Lex Fridman请嘉宾总结了视频压缩的基本概念。Kieran Kunhya列举了常见的编解码器-容器组合:H.264(MP4)、AV1(MP4/WebM)和ProRes(MOV)。他解释ProRes是Apple为非线性编辑设计的编解码器,特点是快速解码和快速寻址,因为它是一个“intra-only”编解码器,没有时间压缩。
Jean-Baptiste Kempf进一步解释了I、P、B帧的概念: * I-帧(Intra-frame / Keyframe): 完整的图像帧,独立解码,类似于JPEG图片。 * P-帧(Predicted frame): 预测帧,依赖于前面的I-帧或P-帧。 * B-帧(Bi-predicted frame): 双向预测帧,可以依赖于前面和后面的帧。他指出,B-帧最令人惊叹,因为解码它需要等待“未来”的帧,这意味着解码顺序与显示顺序是不同的。
他还提到了“intra-refresh”,即流中不发送完整的I-帧,而是逐渐在不同帧中刷新图像的不同部分,从而“构建”出一个I-帧,这在实时流媒体中很有用。
嘉宾们强调,每一代编解码器通常能在相同视觉质量下实现25%到50%的带宽削减。从MPEG-2到H.264再到HEVC/VP9,以及最新的AV1/AV2,压缩效率不断提升。AV1在给定码率下比H.264节省40%到60%的带宽。这种提升对于处理从标清到高清、4K乃至4K HDR的视频内容至关重要,因为更高的分辨率意味着巨大的数据量。
Kieran Kunhya指出,新的编解码器通过增加更多的编码工具、更大的块尺寸和更细致的子分区,使得编码过程呈指数级复杂。Jean-Baptiste Kempf估计AV1的编码计算量比H.264高出两个数量级。然而,编码通常是一次性的,而解码面向亿万用户,因此在编码端投入更多CPU资源是值得的。例如,YouTube会将热门视频重新编码为AV1,以降低分发成本和用户端的带宽消耗。
讨论还涉及到视频编码的参数优化,如分辨率、帧率、编解码器选择、码率与质量的平衡(恒定码率、恒定质量CRF/QP)、GOP(Group of Pictures)长度、B-帧数量等。Jean-Baptiste Kempf指出,许多YouTube、Netflix等公司的工程师工作就是优化这些参数,以适应电影、用户生成内容、屏幕录制等不同类型的视频。他还提到,在流媒体中,人耳对音频质量的变化比眼睛对视频质量的变化更敏感。
Lex Fridman提到了WikiLeaks“Vault 7”文件披露的事件:中情局(CIA)曾使用修改版VLC来窃取用户数据。Jean-Baptiste Kempf证实了此事,表示CIA曾定制了一个VLC版本,其中包含一个特定的DLL文件(例如psapi.dll),用于读取用户的文档文件夹、加密并发送出去。他指出,这种攻击非常“聪明”,因为用户在观看电影时通常不会操作电脑,且VLC在播放高清内容时CPU占用率高、风扇转动大是正常现象,难以察觉后台活动。VideoLAN为此发布了新闻稿,提醒用户只从官方网站下载VLC。
Jean-Baptiste Kempf还透露,类似的事件也发生在针对印度用户的中国黑客身上,导致VLC一度在印度被禁,他不得不通过法律途径争取解禁。这些黑客同样利用VLC的DLL进行恶意活动。他强调,开源软件面临的挑战之一是,恶意行为者可以获取源代码并进行修改,甚至利用搜索引擎优化(SEO)创建虚假网站来诱骗用户下载带有恶意软件的版本。他指出,德国曾有一个长达12年的VLC假冒网站,Google知情但未采取行动,因为恶意软件的二进制文件过大,超出其病毒分析器的处理能力。这些假冒版本通常会在安装后数周才激活,开始下载间谍软件和广告软件,迷惑用户。
Lex Fridman指出,用户必须警惕下载来源。Jean-Baptiste Kempf表示,VLC团队正致力于通过沙盒(Sandboxing)技术来增强安全性。由于VLC核心拥有约500个插件(包括FFmpeg、硬件解码器、GPU驱动等),其中任何一个模块的漏洞都可能被利用来崩溃程序并执行恶意代码(如勒索软件、僵尸网络)。目前VLC像其他桌面应用一样拥有对用户文档的完全访问权限。
沙盒化VLC的挑战在于,它需要访问大量系统资源,如果简单地打满所有权限,就失去了沙盒的意义。因此,VLC团队正在将播放器拆分为多个进程(一个负责解码,一个负责解复用,一个负责过滤器等),每个进程运行在独立的沙盒中。这样,即使某个部分崩溃,也不会影响整个程序或导致数据泄露,类似于Chrome的标签页崩溃机制。这项技术需要处理每秒千兆位的数据传输,因此极具挑战性,目前仍是一个研究课题。
Jean-Baptiste Kempf分享了一个关于VLC“无用功能”的有趣故事:VLC有一个名为“拼图过滤器”(puzzle filter),可以将视频变成一个拼图游戏。这个功能最初由一位法国高中数学老师为教学贝塞尔曲线而开发,虽然看似无用,但仍有用户提出需求(例如希望拼图块数更多)。他还提到,VLC可以在命令行以ASCII艺术形式播放视频,这在调试复杂的组播网络时非常有用,可以快速检查视频流的连通性。他总结道,当软件拥有数亿用户时,每一个看似无用的功能都会有其忠实用户。
Lex Fridman将话题转向文件下载与流媒体的区别,以及流媒体的复杂性。Jean-Baptiste Kempf认为,与早期卫星广播的复杂性相比,现代流媒体(尤其是非直播服务)的挑战主要集中在网络层面而非视频编解码本身。
他解释了现代流媒体中的自适应流媒体(adaptive streaming):当网络拥堵或用户过多时,播放器会动态调整视频分辨率。这种机制通常通过下载视频片段(segments)并根据下载速度来判断何时降低或提高质量。Jean-Baptiste Kempf认为,即便Netflix和YouTube拥有七种不同分辨率的编码流,其自适应逻辑也相对简单。他提到,用户对音频质量变化的敏感度高于视频,因此音频质量波动更易察觉。
关于超低延迟流媒体(Ultra low latency streaming),Jean-Baptiste Kempf介绍了他的新公司Kyber。Kyber的目标是实现玻璃到玻璃(glass-to-glass)4毫秒的超低延迟,用于远程控制机器人、无人机、车辆等设备。这与传统视频流的“观看”不同,而是强调“交互式反馈”,每一毫秒都至关重要。例如,Waymo自动驾驶汽车在出现问题时需要人工远程接管,这就需要极低延迟的视频和控制反馈。
Kyber的独特之处在于: * 单一QUIC连接: Kyber使用基于UDP的QUIC协议,在一个连接上同时传输视频、音频和控制命令(鼠标、键盘、游戏手柄等)。QUIC协议避免了TCP和HTTP的队头阻塞问题,并默认加密。 * 时间同步: 确保多个摄像头和传感器的数据严格同步,补偿时钟漂移,这对于训练机器人AI模型至关重要。 * 极致优化: 为了实现4毫秒的延迟目标,Kyber需要将编码器和解码器的本地延迟降到最低(例如,NVIDIA硬件编码器约3.5毫秒,Intel解码器约2毫秒)。 * 可靠性: 采用前向纠错(Forward Error Correction, FEC)等技术,通过少量过量传输数据来弥补网络丢包,避免因重传而增加延迟。
Jean-Baptiste Kempf分享了在CES上展示的Kyber远程控制3D打印漫游车(位于法国,通过网络控制拉斯维加斯的漫游车)的案例。他相信,Kyber的技术将在远程医疗(外科手术)、防御、无人机集群控制等领域有广泛应用,让“距离消失”,实现技能或力量的投射。未来,即使是全自动驾驶汽车也可能需要人类操作员进行“远程观察”(teleobserve),在紧急情况下接管。
Kyber采用双重许可模式:开源(AGPL)供小型开发者和爱好者使用,商业许可供大型公司使用(需支付费用,获得支持和修改权)。Jean-Baptiste Kempf表示,他喜欢构建具有挑战性且有用的东西,目前正致力于3D打印机器人(漫游车、机翼无人机、帆船、人形机器人),尽管不是专业的机器人公司,但希望为所有人带来酷炫的机器人技术。
Lex Fridman询问了AV2以及H.265、H.266等未来编解码器。Jean-Baptiste Kempf解释: * AV1: 由开放媒体联盟(AOM,成员包括Google、Netflix、Amazon、Apple、Mozilla、VideoLAN)开发的免版税高性能编解码器,2018年完成规范,目前正广泛部署。 * AV2: 是AV1的下一代编解码器,目标是在相同质量下比AV1再减少30%的带宽。VideoLAN将开发其解码器,名为dav2d(法语“de”意为“二”),延续dav1d的命名方式(dav1d是“D, dav1d, is an AV1 decoder”的递归缩写)。VLC已在CES上进行了AV2的首次演示。
他澄清了编解码器规范(如何工作)、编码器(实现编码,如AVM、SVT-AV2)和解码器(实现解码,如dav1d、dav2d)之间的区别。H.265(HEVC)和H.266(VVC)则是MPEG世界的下一代编解码器。他总结道,每一代编解码器通常都能带来30%的效率提升(尽管专业人士可能会争论具体百分比),但对于特定内容(如屏幕录制),提升可能高达70-80%。
谈到多媒体领域的“专利雷区”,Jean-Baptiste Kempf指出,与3G、4G、5G、RF技术一样,多媒体是专利数量最多的领域之一,因为它涉及大量数学原理和性能优化。H.264之后,MPEG编解码器的专利许可变得极其复杂和昂贵(每年可达数亿美元)。MPEG组织通常会发布标准,然后由专利池(如MPEG LA、HEVC Advance)集合所有相关专利并收取许可费。
他解释说,专利可以细致到“用矩形而非方形的块进行处理”这样小的想法。对于HEVC(H.265),专利池数量增加,甚至有公司(如诺基亚)在专利池之外独立收取费用,导致许可成本难以预测且可能无上限。YouTube和Netflix等公司意识到,与其支付数亿美元的许可费,不如投资开发自己的免版税编解码器,这正是开放媒体联盟(AOM)和AV1/AV2诞生的原因。他指出,AV1/AV2在标准化过程中就考虑了专利检查,而MPEG世界则完全回避专利问题。
Jean-Baptiste Kempf补充说,VLC和FFmpeg不考虑专利问题,部分原因是VLC设在法国,而法国不承认软件专利。他曾估算,如果VLC需要支付所有专利许可费,每位用户每年将花费超过200欧元。他认为,对数学和矩阵等基本概念进行专利是错误的。
Lex Fridman询问了在欧洲创业环境的现状,指出普遍认为欧洲存在过度监管和官僚主义。Kieran Kunhya回应道,视频领域涌现了像他们这样的欧洲团队,说明欧洲并非没有希望。Jean-Baptiste Kempf补充说,尤其在法国,新一代企业家正在崛起,政府也大力支持“法国科技”,虽然仍有过度监管,但创业文化和对失败的容忍度已大大改善。
Lex Fridman接着提出了更直接的问题:VLC是否曾面临政府要求植入后门的压力?Jean-Baptiste Kempf坚定地回答:“是的,两次”,并表示他当时的回应“远没有那么礼貌”。他明确声明:“如果我们必须妥协我们的软件,我们就会将其关闭。这一点很清楚。”
他进一步解释了VLC坚决不妥协的理由和措施: * 代码控制: VLC不允许任何他们不控制的代码进入。 * 偏执的编译流程: 他们的代码编译是在离线、从未连接互联网的机器上进行的,甚至会从编译编译器开始。 * 双重签名: 采用双重签名机制,以防止假冒二进制文件。 * 实际威胁: 他曾亲身经历过非西方政府机构试图将伪造的二进制文件推送到他们的服务器上,这让他深感震惊。 * 分布式本质: VLC是开源的,源代码公开,且没有中央办公室。即使他个人受到压力,他也可以在任何地方重新开始项目,因为“VLC是一个工具,是不可阻挡的”。
Jean-Baptiste Kempf强调,VLC从不审查播放的视频内容,因为它是一个完全离线的工具,不与任何服务器通信,也没有遥测数据,因此无法知道用户在观看什么。这意味着政府无法要求VLC监控用户观看内容或基于内容进行审查。他分享了一个军队的例子:在阿富汗战争期间,他曾收到一名军方人员的邮件,反映VLC新版本无法正确播放RTSP服务器上的电影,因为这些视频对提升士气很重要。Jean-Baptiste Kempf为此提供了定制版本。他认为VLC之所以能被美军使用,正是因为它完全开源且透明。
面对如此巨大的压力和责任(核心团队只有6-8人,而法律上只有他一人),Jean-Baptiste Kempf表示他过去常感到压力,但现在已保持“禅”的状态。他的秘诀是总是考虑“最坏情况”,并问自己“最终我会死吗?我会伤害某人吗?”如果答案是否定的,他就不会因此感到焦虑。他认为工具本身是中立的,不应为工具被用于好或坏目的而受到指责。
Kieran Kunhya提到了一个令人着迷的社区:活跃的视频存档和保存社区。他将FFmpeg誉为“罗塞塔石碑”,认为它对千年后多媒体内容的播放至关重要。他指出,这个社区(由纽约市立大学的Dave Rice等人领导)虽然预算有限,但深知视频存档对世界的极端重要性。
他举例说明了历史教训:英国的“新末日审判书”(New Domesday Book)项目在BBC微电脑上存档了大量资料,但10-15年后,由于缺乏合适的软件,这些资料变得无法播放。FFmpeg以C语言编写,C语言接近数学和逻辑,Kieran Kunhya认为即使1000年后,C语言也像拉丁语一样,在特定语境下仍然可用。
这个社区非常重视开源,因为它不仅解决了预算问题,更确保了未来对视频内容的访问。他们资助了FFV1编解码器的开发,这是一种无损编解码器,旨在解决压缩过程中可能丢失重要细节的问题。FFV1专门为快速的软件编码和高容错性设计,以便在磁带或硬盘出现数据损坏时能够快速恢复,而不是丢失整个GOP(Group of Pictures)。
Kieran Kunhya表示,这些存档社区提供了极其专业的建议,例如关于1950年代某种胶片上色彩学处理的特殊情况,这是在其他地方无法获得的知识。Jean-Baptiste Kempf也感叹每次与他们交流都能学到新的视频知识。他们对内容本身有着深刻的理解,深知在保存过程中不应遗失任何关于被保存事物的本质。
存档社区还将他们的开源工作流程分享给那些无力建立专业机构的国家,在印度等地教授孩子们FFmpeg命令。Kieran Kunhya认为他们是开源社区的典范,致力于确保人类历史的数字记录能够被所有人访问和播放,以防止未来出现“AI垃圾”时代的历史信息匮乏。Jean-Baptiste Kempf补充说,目前我们正在失去大量20世纪30年代、40年代和50年代的电影,以及70、80年代的磁带,因为读取这些磁带的设备正在消失。
Lex Fridman询问了VLC和FFmpeg未来五十年乃至一百年的发展方向。Jean-Baptiste Kempf认为短期(5-10年)预测相对容易,更长远的未来则需考虑“全息图”等新兴技术。他预言VLC和FFmpeg将拓展到任何形式的“多媒体”。
他甚至开玩笑说,未来VLC可能会有“Neuralink版”,FFmpeg会有“input format human brain”选项,为大脑提供编解码器。他提到,目前已经有针对点云、立体视频(volumetric video)、RGB-D(深度信息)等三维数据的新型编解码器。VLC也已推出VR和XR版本,Kyber项目也在进行XR内容的低延迟流媒体工作。他相信,FFmpeg和VLC最终会管理3D数据。
Jean-Baptiste Kempf将多媒体定义为“人类感官的多种数字流表示”,并大胆预测,未来如果出现气味传感器和扩散器,气味数据也会被纳入FFmpeg的解复用器中,成为新的“音轨类型”。VLC已经有触觉反馈(haptic)插件,用于4D电影院的物理运动同步,因为这也是一种“人类感官”,最终也会被集成。
他解释说,作为维护者,他们的任务是维护架构,让社区能够轻松添加新的模块和格式。VLC目前正在进行空间音频(spatial audio)的架构升级,使其能够支持未来的更多功能。
Lex Fridman认为,FFmpeg和VLC的存在也在推动企业和世界走向标准化,例如脑机接口的“脑电波”标准或机器人触觉反馈标准。Jean-Baptiste Kempf指出,通常是先出现多种标准,然后经过市场淘汰和行业整合,最终形成两到三个被广泛接受的标准。
当被问及对杜比(Dolby)的看法时,Jean-Baptiste Kempf和Kieran Kunhya都表示,杜比曾经是一家拥有卓越工程师的伟大公司,定义了音频技术,但现在更多地关注律师和许可授权,创新不如从前。
谈及最喜欢的FFmpeg推文,Kieran Kunhya提到了“Talk is cheap, send patches”(空谈无用,发补丁来)。他另一句喜欢的是“FFmpeg, nothing is beyond our reach”(FFmpeg,没有什么能够超越我们的掌控),这句灵感来自一个美国军方卫星补丁,而FFmpeg也被火星探测器用于压缩图像。Jean-Baptiste Kempf则提到许多人在F1赛车、欧洲航天局、SpaceX发射监控,甚至欧洲核子研究组织(CERN)的大型强子对撞机(LHC)等“奇怪”的地方使用VLC,这些都令他充满喜悦和自豪。
Kieran Kunhya和Jean-Baptiste Kempf都重申了“不后悔任何事”的理念,因为“后悔是对心智的损耗”,应该从错误中学习而非沉湎过去。Lex Fridman对两位嘉宾及其社区所构建的软件表达了由衷的感谢,认为FFmpeg和VLC给无数人带来了快乐和便利。Kieran Kunhya总结道,他们所做的是“解决难题,做有趣的技术挑战”,因为工程师热爱“构建酷炫而有用的东西”。两人都回忆了自己童年时期(Microsoft QBasic、Logo)开始编程的经历,那份“构建”的激情一直延续至今。
最后,Lex Fridman引用了Linus Torvalds的话:“大多数优秀的程序员编程,不是因为他们期望获得报酬或公众的赞扬,而是因为编程本身很有趣。”
2026-04-10 02:40:23
播客开篇,主持人与历史学家Lars Brownworth讨论了维京长船的惊人速度与机动性,它们平均每天可航行70至120英里,能在敌方军队集结前迅速完成袭击并撤离,给当时的人们带来了巨大的恐惧。Brownworth形容,对793年林迪斯法恩修道院的修士们来说,维京船只在地平线上出现,意味着“世界末日”。《盎格鲁-撒克逊编年史》记载,袭击前夜,修士们看到天空中出现龙形的闪电,预示着“龙船”的到来。维京人相信,勇敢战死者将进入瓦尔哈拉(Valhalla),每日浴血奋战,夜间伤愈,为诸神的黄昏(Ragnarok)最终之战做准备。Brownworth引用丁尼生诗歌《尤利西斯》中的“去奋斗,去寻求,去发现,而不屈服”来概括维京精神,展现他们不畏死亡、勇往直前的特质。
本期节目邀请了历史学家、多部历史著作的作者Lars Brownworth,其作品包括《海狼:维京人史》和《诺曼人:从掠夺者到国王》,他也是早期历史播客“12位拜占庭统治者:拜占庭帝国史”和“诺曼世纪”的主持人。本次对话主要聚焦于维京人,这些北欧的航海战士和探险家在短短300年间重塑了中世纪世界和西方文明的轨迹。
维京时代以其密集和暴力而闻名,通常被定于公元793年至1066年,持续不到三个世纪。其起始点常被追溯到公元793年6月8日,当时一群可能来自挪威的维京人袭击了神圣的林迪斯法恩岛上的修道院。他们屠杀僧侣,焚烧建筑,掠夺一切有价值的物品后扬长而去。Lars Brownworth认为,林迪斯法恩事件作为维京时代的开端具有象征意义,因为它所带来的恐惧预示了未来两到三个世纪的动荡。
修士阿尔琴在写给诺森布里亚国王埃塞尔雷德的信中描述了这次袭击带来的“前所未有的恐怖”,因为在当时欧洲基督教世界中,修道院被视为神圣安全的避难所,甚至杀人犯都可在其中寻求庇护。维京人对这种社会契约的公然蔑视,以及他们从海上,特别是北方海域,发起攻击的能力,彻底颠覆了人们对世界的认知。阿尔琴笔下“死者如同粪便弃于街头”的景象,进一步加剧了人们对这些“非人怪物”的恐惧。
至于维京人自身,由于史料多来自受害者视角,他们的自我认知很难被完全还原。维京人日常大多是商人或农民,居住在被称为“维克”(Vik)的小海湾,这可能是“Viking”一词的来源。斯堪的纳维亚半岛严酷的自然环境造就了坚韧的民族性格,力量被高度重视。例如,一个瑞典维京人曾将剑放在新生儿的摇篮里,说“愿你此生所得皆凭此剑”,这反映了他们推崇暴力的生活方式。他们对基督神灵不以为然,认为其无法保护信徒,甚至有维京人声称“在陆地上我是基督徒,在海上我崇拜托尔”,展现了极强的实用主义。
维京长船是其军事成功的核心。这些船只设计独特,既能横渡大洋,又能以不到两英尺的吃水深度沿河流航行,甚至可以被20人抬着绕过障碍物。这种极致的机动性,加上每日70到120英里的惊人速度,赋予了维京人巨大的军事优势。相比之下,当时的英格兰军队即使在维护良好的罗马道路上,每天也只能行进10到15英里,骑兵部队也仅有20英里。这意味着维京人可以迅速袭击目标,掠夺财物,并在敌军抵达前全身而退,这种速度是其带来“绝对恐怖”的根本原因。
维京人深谙恐怖战术,将其作为主要武器。他们会选择在复活节、圣诞节等重要宗教节日发动袭击,因为这些日子修道院和教堂的财富最集中。他们并非“愚笨的野蛮人”,而是“老练”的掠夺者。他们会以商人身份潜入港口进行侦察,了解当地的作息和财富分布,然后以维京人的身份返回,精确打击目标。他们甚至了解基督教历法,知道何时何地能找到最多财富。
维京时代的“短暂”也体现了他们的智慧和实用主义。一旦征服某地,他们便迅速从掠夺者转变为定居者和国家建设者,建立贸易路线,并根据实际需要接受基督教,融入当地文化,语言和习俗也随之改变,这使得“维京人”这个身份迅速消散。
修道院之所以成为早期袭击的理想目标,是因为它们不仅是远离尘嚣的清修之地,更是欧洲主要的财富储存中心。罗马帝国时期,人们就习惯将重要文件和财富存放在有宗教保护的寺庙中。在基督教化的欧洲,富人为了赎罪或表达虔诚,向教会捐赠巨额财富,使得看似贫困的修道院实际上成为欧洲最富有的地方。维京人利用了这种“社会契约”的漏洞,通过劫掠修道院获得了巨额财富,进而刺激了更多维京人参与到掠夺活动中。
维京时代爆发的原因有多种理论,包括马尔萨斯人口论(维京女性的生育力超过了土地的承载力导致人口过剩)和船只技术的突破。此外,查理曼大帝建立的庞大但低效的法兰克帝国,虽然富裕却脆弱,也吸引了维京人的目光。查理曼对撒克逊人的征服可能无意中移除了他与维京人之间的缓冲区,使法兰克帝国直接暴露在维京威胁之下。早期袭击多为侦察性质的“试探性袭击”,而845年拉格纳·洛德布罗克洗劫巴黎的成功,则引发了860年代大规模的维京入侵浪潮。英格兰国王“不英明的埃塞尔雷德”曾向维京人支付巨额“丹麦金”(dane-geld)以求和平,反而吸引了更多袭击者,进一步证明了这种绥靖政策的无效。
拉格纳·洛德布罗克是维京传说中的标志性人物,尽管历史学界认为他可能是一个由多位九世纪维京领袖事迹综合而成的传奇人物。他被视为维京成功的典范,展现了维京人追求财富、名誉和战场荣耀的理想。传说他身无分文,从挪威(或丹麦、瑞典)出发,沿塞纳河而上,于845年洗劫巴黎,并向法兰克国王秃头查理勒索巨额赎金,以此扬名。
拉格纳的故事充满了传奇色彩,包括他拥有能防蛇毒的“毛裤”(hairy breeches)。他后来在英格兰掠夺了约15年,最终因船只失事被诺森布里亚国王埃拉捕获,并被投入蛇坑。他在临死前预言:“当野猪哀嚎时,猪仔们就会到来”,意指他的12个儿子将为他复仇。他的儿子们,包括“无骨者伊瓦尔”和“ Ironside 比约恩”,随后率领“异教徒大军”入侵英格兰,并对埃拉国王施以臭名昭著的“血鹰”酷刑——活体切开背部,取出肺部,使其像鹰翼般扇动。
拉格纳的妻子阿斯洛格也以其智慧闻名。她通过了拉格纳提出的“不穿衣却不裸体,未进餐却未禁食,无伴侣却不独行”的挑战,展现了维京女性所需的聪明才智。他们育有12个儿子,这些儿子后来都成为维京时代著名的领袖,征服了英格兰,并远征伊比利亚半岛的伊斯兰领地,将维京人的影响力推向欧洲各地。
播客中提到《维京传奇》电视剧将拉格纳和罗洛设定为兄弟并不符合史实,但作为叙事手法是可理解的。主持人提到,维京人的战士文化、荣誉观念和探索精神的起源,可能与罗马帝国时期的理想有所关联,但具体细节已湮没在历史长河中。
异教徒大军于865年入侵英格兰,与此前相对小规模的维京劫掠不同,这是一支庞大的维京人联盟。在845年巴黎围城战中,一位维京人曾对法兰克使者说:“我们没有国王,我们人人都是国王。”这体现了维京军事组织的高度扁平化和精英管理模式——他们只尊重在战场上证明过自己、能够带来财富和荣誉的领导者。这种以能力为导向的社会结构,使得他们在战场上极其高效。
异教徒大军的崛起反映了维京人从单一的劫掠转向更大规模的征服和国家建立。他们表现出惊人的适应性和实用主义:一旦征服,便迅速建立贸易路线,制定条约,甚至为了利益皈依基督教。这种灵活的策略使得“维京人”作为一种文化和生活方式迅速融入当地社会,并最终消失。
诺曼底公国便是最好的例证。维京人定居于法兰西西北部,成为“北人公国”(Normandy)。短短一代人之内,维京语消失,维京名字被法兰克名字取代(如罗洛的儿子威廉),对奥丁的崇拜也消退。诺曼人开始修建教堂,与当地贵族通婚。他们的“维京特质”几乎消失,唯独保留了惊人的活力和征服精神,最终在欧洲两端(西西里和英格兰)建立了强大的王国,塑造了中世纪欧洲的格局。主持人将维京人/诺曼人的这种影响称为“创造性破坏”,通过旧有的破坏,为更强大的新事物成长清除了道路。
罗洛是著名的维京战争领袖,也是诺曼底的第一位统治者。Brownworth指出,尽管丹麦和挪威对其出生地有争议,但共识倾向于挪威。罗洛年轻时因身材高大无法骑乘维京小马,被称为“Hrolf Walker”(步行者霍尔夫)。他可能参与了早期对巴黎和塞纳河的袭击。公元911年,罗洛与法兰克国王查理三世(“糊涂查理”,Simple Charles,意为坦率而非愚蠢)签订了《圣克莱尔条约》。查理三世做出了一个大胆的决定:让罗洛及其追随者定居在法兰西北部(后来的诺曼底),并由他们负责防御维京人的进一步入侵。这个看似“引狼入室”的策略最终却奏效了。
罗洛一生经历了从维京海盗到国家缔造者的转变。他通过掠夺积累了大量财富,最终接受了查理三世的合法化,成为一名领主,并致力于政权建设。在签订条约时,罗洛拒绝屈膝亲吻查理三世的脚,而是让手下代劳,手下甚至粗暴地将国王的脚抬到嘴边,导致国王失衡跌倒。这个场景完美地象征了诺曼底公爵与法兰克国王之间微妙的从属关系——名义上服从,实则强势。
诺曼人的影响力远超其发源地。Brownworth认为,正是诺曼人将欧洲从一个落后的、内向的地区,转变为一个自信、外向的力量。他们领导了第一次十字军东征,建立了英格兰王国(在维京人摧毁了七国中的六国后,诺曼人巩固了残存的威塞克斯王国,并最终统一了英格兰)。他们通过“创造性破坏”,拆解了查理曼大帝庞大而难以驾驭的帝国,代之以更精简、更强大的国家。他们还发展出对付维京人的策略,如修建设防的桥梁。
拜占庭帝国在维京时代也发挥了重要作用,作为欧洲的“缓冲器”,抵御了来自东方的巨大威胁,为西欧的发展争取了宝贵时间。例如,七世纪的伊斯兰入侵因君士坦丁堡的阻碍,不得不绕道非洲,在抵达西班牙时已然疲惫不堪。历史进程往往取决于关键的地理位置和少数杰出领导者的决策。
维京人的多神教信仰体系,其神祇形象远比现代流行文化中的“干净”要恐怖。他们宇宙观的核心是“混沌”与“秩序”之间的永恒斗争,最终混沌将获胜。宇特加德(Utgard)是外围的混沌领域,居住着霜巨人等怪物。神灵们代表秩序与稳定,但他们之间也常发生冲突。
维京宗教没有统一的圣典或教会,习俗因地区和家族而异。主要神祇包括奥丁(Odin,战争、王权、智慧、死亡之神),他是酋长、精英战士和诗人的崇拜对象;托尔(Thor,保护、雷电、生育之神),受农民和普通民众青睐;以及芙蕾雅(Freya,爱情、魔法、战死者之神),受女性、魔法实践者和恋人膜拜。奥丁被认为是“疯狂之神”和“诗歌之神”,而他的狂战士(Berserkers)在战场上不畏疼痛,甚至肢体被砍断仍能继续战斗。这种对荣誉和战死的推崇是维京战士文化的核心。
维京人的来世观独特,鲜有惩罚,除非犯下极恶之事,否则战死者可进入瓦尔哈拉(Valhalla)。在瓦尔哈拉,勇士们每日战斗,伤口在夜间奇迹般愈合,次日再战,为诸神的黄昏(Ragnarok)做准备——这是一场必输的末日之战,奥丁和托尔等神祇都将陨落,世界陷入永恒的黑暗。这种悲观的宿命论反而促使维京人更勇敢地面对死亡。普通人则会进入海姆冥界(Hel),一个没有色彩的暮光之地,并非惩罚之所,而是大多数人不可避免的终结。这种来世观与古希腊的理念相似,即最终的命运是“化为灰烬,逐渐消逝”,因此不如勇敢面对。
宗教在维京社会中也扮演着“社会技术”的角色,例如强调北方严酷气候下的“好客”美德。传说奥丁会化名探访凡人,记住谁给予了款待,谁没有,从而奖励或惩罚他们,这有效地强化了社群间的互助规范。宗教提供世界观、道德准则,并与人类本性互动,塑造着社会方向。
维京人是历史上最伟大的探险家之一,他们在哥伦布之前500年抵达北美,航迹遍布英格兰、西班牙、意大利、俄罗斯、北非和中东。主持人对他们没有指南针却能进行如此远距离的航行感到惊叹。
他们的探索精神可见一斑。维京人纳多德(Naddodd)意外发现冰岛时,惊讶地发现已有来自爱尔兰的僧侣乘坐独木舟抵达。这些僧侣为了寻求远离尘世的宁静,向北方航行,展现了另一种驱动探索的“逃离”精神。Brownworth引用丁尼生《尤利西斯》中的“去奋斗,去寻求,去发现,而不屈服”来形容这种不畏艰险、勇往直前的维京精神。这种“不屈服”的浪漫主义情怀,正是维京人至今仍广受欢迎的原因,他们象征着人类面对未知、不断前进的内心火焰。
维京探险家莱夫·埃里克森(Leif Ericson)约在公元1000年抵达北美,比哥伦布早了五个世纪。他的父亲“红胡子埃里克”(Erik the Red)因“几起杀人事件”被迫从挪威流亡冰岛,又因杀邻居再次被流放。这种“亡命之徒”的特质似乎代代相传,但家族中也流淌着非凡的勇气。红胡子埃里克听说西方有陆地,于是带领船队前往格陵兰。他用“绿色”来命名这个冰雪覆盖的岛屿,并夸大其资源(如鲑鱼多到可以直接用手捞),成功吸引了约500名冰岛居民随他殖民,这是一场历史上最大的房地产骗局。尽管条件艰苦,格陵兰的维京人殖民地持续了300多年,直到15世纪才寂然无声。
红胡子埃里克安于现状,但他的儿子莱夫·埃里克森则渴望继续向西探索。他听闻有维京人曾在大西洋上看到过更远的陆地。莱夫最终抵达了北美大陆,称之为“文兰”(Vinland),因其盛产可用于酿酒的浆果。他降落在(今纽芬兰的)兰塞奥兹牧草地,发现了取之不尽的食物和木材,但当地的原住民(阿尔冈昆部落,被维京人称为“尖叫者”Skraelings)的激烈抵抗,以及维京人自身固执于传统畜牧业而不适应新大陆的渔猎生活,加上距离挪威太远,补给困难,使得他们在那里居住了三年后便放弃了,并未深入探索这片广袤大陆的南部地区。
这引发了对“如果维京人成功定居北美,历史会如何发展”的思考。北欧斯堪的纳维亚文化可能会取代或融合欧洲殖民者的影响,带来截然不同的文明发展。Brownworth提到了纽约修道院博物馆里一件由格陵兰海象牙雕刻而成的象牙十字架,象征着北方贸易的宏大弧线——来自新世界的资源经挪威运抵英格兰。这种对未知世界的探索精神,被比作现代人类探索火星,面对巨大的不确定性,是人类本性中对未知的好奇和不屈不挠的体现。
瑞典维京人向东探索,沿着俄罗斯的河流系统,经伏尔加河和第聂伯河抵达黑海和里海,连接了东方的哈里发国和拜占庭帝国。他们最初试图攻击君士坦丁堡,但在面对拜占庭的“希腊火”(一种神秘的液体燃烧剂,可在水面燃烧)后遭遇惨败,船只被烧毁。
在意识到无法战胜拜占庭帝国后,维京人展现了他们的实用主义,选择加入拜占庭。他们成为了著名的“瓦兰吉卫队”(Varangian Guard,意为“宣誓之人”),一支主要由维京人组成的精锐禁卫军,以对皇室的绝对忠诚而闻名。卫队成员不仅薪资丰厚,还能通过参与对外战争获得丰厚战利品。如今,在君士坦丁堡的圣索菲亚大教堂二楼大理石栏杆上,仍能找到瓦兰吉卫队成员在漫长布道中刻下的北欧符文。
八世纪,维京人在东部建立了星拉多加(Staraya Ladoga)作为通往伏尔加河和第聂伯河的基地,并在862年和882年建立了基辅罗斯(Kievan Rus’),掌控了诺夫哥罗德和基辅。这使得他们与拜占庭帝国建立了联系,并从贸易伙伴转变为潜在的军事威胁,最终又融入拜占庭的军事体系。
希腊火是拜占庭帝国的一项关键军事技术,其确切成分至今仍是谜团。它是一种高度易燃的物质(可能含石脑油和石油),接触空气即燃烧,甚至能在水面燃烧。拜占庭人将其装入陶罐投掷或用虹吸管喷射,给维京舰队造成巨大损失。尽管维京人未能攻下君士坦丁堡,但拜占庭皇帝拉卡普努斯(Romanos I Lekapenos)却对他们的强大力量印象深刻,最终决定招募他们作为帝国的卫士。
维京人建立的王国,如“血斧埃里克”(Eric Blood-Axe)在约克建立的王国,跨越爱尔兰、苏格兰、威尔士和英格兰部分地区,这些地域上的连接只有通过维京人的航海能力才能实现。维京人通过河流深入内陆,以惊人的速度移动,让欧洲内陆城市也面临威胁,生活在持续的恐惧之中。从无领地的“海王”到建立国家的“陆王”,如丹麦的蓝牙哈拉尔(Harald Bluetooth),维京人展现了从“破坏者”到“建设者”的自然过渡。Brownworth认为,这种转变并非必然,而是维京人实用主义和天赋的体现,他们善于采纳有效的系统,如王权和税收。
其中一位杰出人物是“大卡努特”(Canute the Great)。这位11世纪初的丹麦统治者建立了“北海帝国”,统治了英格兰、丹麦、挪威等地。他被认为是英格兰盎格鲁-撒克逊时期最有效的国王之一,在维京战乱后稳定了国家。卡努特虽然是维京领袖,却以基督教国王的身份统治,资助教堂和修道院,甚至于1027年去罗马朝圣。他最著名的故事是他命令海水停止涨潮,以此告诫奉承的臣子,他的权力有限,唯有上帝才能控制自然。这体现了他清醒的自我认知和难得的谦逊。
Lars Brownworth在2005年创立了“12位拜占庭统治者”播客,被认为是首批历史播客之一。他回忆说,当时是为了给哥哥提供一个了解拜占庭历史的框架,没想到意外走红。播客的成功在于其精彩的叙事和对人类共同经验的探讨,同时播客作为一种低门槛的媒介,使历史学习更加普及。
拜占庭帝国(东罗马帝国)在历史上的重要性常被低估。它在西欧陷入“黑暗时代”时,保护并延续了古希腊罗马的知识遗产,并在君士坦丁堡陷落前,随着学者们的西迁,为意大利的文艺复兴提供了知识和人才。当时西欧的希腊语知识已经失传,拜占庭的教师为阅读柏拉图和亚里士多德提供了关键帮助。
Brownworth心中的“最佳拜占庭皇帝”是查士丁尼一世(Justinian I)。他梦想宏大,试图重新征服西罗马帝国,发动了多场战争,并建造了宏伟的圣索菲亚大教堂,这座建筑至今仍是拜占庭帝国辉煌的象征。查士丁尼还对罗马法进行了全面改革,编纂了《查士丁尼法典》,对后世欧洲大陆的法律体系产生了深远影响。
至于社会兴衰的原因,Brownworth认为拜占庭帝国的衰落始于1025年巴西尔二世(Basil II)去世后。在他统治下,帝国达到了鼎盛,但宫廷官僚机构自认为可以驾驭帝国,刻意挑选软弱的君主,导致了1071年曼齐刻尔特战役的灾难性失败,土耳其人趁机涌入安纳托利亚,帝国失去了核心领土、兵源、税收和粮食,从此走向不可逆转的衰落。这种僵化的官僚体系和缺乏适应性,与维京人早期的灵活多变形成鲜明对比。
尽管如此,拜占庭帝国持续了1000多年,在2200年历史中几乎每年都在不同边境线上作战。它的长寿并非偶然,而是其稳定社会、治理国家和处理移民、通货膨胀、战争、和平及外交等问题的成功经验。Brownworth指出,绝对权力往往导致腐败,尽管查士丁尼和巴西尔一世等皇帝功绩卓著,但他们对臣民而言可能也是冷酷的暴君。他将这种挑战与现代社会核武器等强大技术带来的“绝对权力”相类比,认为如何在新的挑战下构建一个像拜占庭帝国一样持久的社会是21世纪的课题。
关于“伟人史观”与“系统决定论”的争论,Brownworth倾向于“伟人论”。他认为,历史上的关键时刻,如宗教改革、罗马帝国的建立,都需要马丁·路德、奥古斯都、成吉思汗等具体个体,仅靠“非个人力量”不足以解释。这些伟人需要“时势”,但他们也塑造了时势,他们的信念和毅力能够扭转历史进程。例如,美国开国元勋华盛顿放弃权力,象征着对共和制度的坚持,其影响深远。
从维京人身上,我们可以学到许多。除了一个有趣的细节——维京人非常注重个人卫生和仪容,甚至在当时被英格兰人嘲笑为“娇气”,却在穆斯林世界被认为“不洁”(因为他们共享洗浴习惯),这使得他们对英格兰女性具有吸引力。更深层次的教训是,维京人代表了一种“无畏、务实”的处世态度,一种从底层崛起、通过奋斗赢得尊重的“白手起家”的神话。一个社会如果停止了这种探索和不屈不挠的精神,就会陷入困境。
从拜占庭帝国1000年的历史中,我们可以学到如何运行一个稳定社会,处理移民、通货膨胀、战争与和平、外交等问题。Brownworth认为,历史之所以引人入胜,是因为古人与今人在心理上是相同的。人类的本性——兼具善恶,有能力追求更伟大的事物,但并非完美——是理解历史的关键。正如弗雷德里克·道格拉斯所言,“伟大的对话适用于所有人”,阅读经典是为了理解人类共通的体验。尽管人类社会存在缺陷,但只要我们能抬头仰望星空,心怀梦想,并付诸行动,就像维京人那样,就总有希望。
2026-03-24 00:46:27
本期播客Lex Fridman与英伟达(NVIDIA)CEO黄仁勋(Jensen Huang)展开对话。NVIDIA作为人类文明史上最具重要性和影响力的公司之一,是推动人工智能(AI)革命的核心引擎。公司的巨大成功直接归因于黄仁勋作为领导者、工程师和创新者强大的意志力以及诸多卓越的战略决策。
NVIDIA在AI时代已经超越了传统的芯片级设计,转向了机架级(rack-scale)设计。过去,NVIDIA的成功在于打造最佳GPU,但现在其范畴已扩展到对GPU、CPU、内存、网络、存储、电源、散热、软件、机架本身乃至数据中心的“极限协同设计”。
黄仁勋指出,这种极限协同设计的必要性在于,当前问题已无法仅通过单个计算机或单个GPU来加速解决。用户希望添加一万台计算机,却能实现百万倍的加速,这意味着必须分解算法、重构、分片管道、数据和模型。当问题以这种方式分布式处理时,所有环节都会成为瓶颈,即阿姆达尔定律(Amdahl’s Law)的挑战。分布式计算的复杂性涉及CPU、GPU、网络、交换等所有环节,构成了一个极其复杂的计算机科学问题。因此,NVIDIA必须利用所有技术进行协同设计,否则性能提升将仅限于线性或摩尔定律(Moore's Law)的缓慢增长(由于丹纳德缩放定律 Dennard scaling 的放缓)。
NVIDIA的运营模式是其“奇迹”所在。黄仁勋的直接下属多达60余人,且几乎都是各领域的专家,涵盖内存、CPU、光学、GPU、架构、算法和设计等。他不会进行一对一的会议,而是将问题抛给整个团队,让所有相关专家共同探讨和解决,因为公司始终在进行“极限协同设计”。
黄仁勋回顾了NVIDIA的发展历程: * 初期定位:NVIDIA最初是一家加速器公司。但他意识到,过于专业的加速器应用领域狭窄,限制了研发能力和计算领域的影响力。因此,公司需要扩展为“加速计算”公司,在保持专业性的同时,逐步拓宽通用计算的范围。 * 关键技术演进: * 第一步:发明可编程像素着色器,迈向可编程性。 * 第二步:将FP32(单精度浮点数)引入着色器,使其符合IEEE标准,吸引了流处理器等领域的研究者使用GPU进行计算。 * 第三步:在此基础上开发Cg,最终演变为CUDA。 * CUDA的战略性决策:将CUDA搭载到GeForce显卡上是一个“事关存亡”的战略决策。当时,此举大幅增加了GPU的成本,几乎耗尽了公司所有毛利,导致市值从70-80亿美元骤降至15亿美元。 * 决策原因:黄仁勋坚信,计算平台的核心在于开发者生态和安装基础。为了吸引开发者,即便亏损,也必须将CUDA广泛部署到数百万台GeForce PC中,使其成为研究人员、科学家和学生触手可及的“超级计算机”,从而奠定其安装基础。这一大胆的押注最终为深度学习革命奠定了基础。 * 领导力哲学: * 远见与信念:黄仁勋通过强烈的好奇心和系统性推理,清晰地预见未来并坚信其必然实现。 * 塑造信念系统:他每天都在与董事会、管理团队、员工甚至行业伙伴沟通,逐步传递他的思考和愿景,利用外部信息、新发现和工程突破来塑造大家的信念系统。他希望在重大决策公布时(如收购Mellanox、全面投入深度学习),员工们会觉得“黄仁勋,你终于做到了!” * 平台公司定位:NVIDIA是一个“计算平台公司”,它进行垂直设计和集成以优化产品,但随后将整个平台开放到每个层面,供其他公司的产品、服务、云、超级计算机和OEM集成。GTC大会也是黄仁勋“具现化未来”的平台,确保当NVIDIA的产品准备就绪时,合作伙伴也已做好准备。
黄仁勋坚信AI扩展定律,并指出目前有四种主要的扩展定律:预训练、后训练、测试时间(推理)和代理(Agentic)扩展。
黄仁勋表示,供应链瓶颈(如ASML的光刻机、台积电的CoWoS先进封装、SK海力士的高带宽内存HBM)是他持续关注并努力解决的问题。NVIDIA以史无前例的速度增长,且增长还在加速,因此上游和下游供应链对公司至关重要。
(本节内容已整合至“供应链”章节,黄仁勋在其中详细阐述了如何预见并推动HBM和LPDDR5内存的供应链发展。)
黄仁勋深入探讨了能源问题及其解决方案:
黄仁勋高度赞扬了埃隆·马斯克及其xAI在孟菲斯四个月内建成“巨人”(Colossus)超级计算机的成就(目前拥有20万颗GPU且迅速增长)。
黄仁勋认为,协同设计本身就是终极的系统工程问题。他30年前就确立了一个方法论,称之为“光速”(speed of light)思考。
黄仁勋谈到了中国科技产业的成功:
黄仁勋评价了台积电(TSMC)的成功及其文化:
NVIDIA的“护城河”在于其独特的优势:
黄仁勋谈到了在太空中部署AI数据中心的可能性和NVIDIA的布局:
黄仁勋认为NVIDIA的增长“极有可能”且“不可避免”,并解释了原因:
黄仁勋谈到了作为NVIDIA CEO,面对巨大压力时的应对方式:
黄仁勋感谢玩家多年来对NVIDIA图形技术的支持。
关于通用人工智能(AGI)的时间线,黄仁勋的回答基于一个特定定义:一个AI系统能够启动、发展并成功运营一家价值超过10亿美元的科技公司。
黄仁勋深入探讨了AI对就业和编程未来的影响:
黄仁勋谈到了他对人类意识和AI能力的看法:
黄仁勋谈到了对死亡的看法和NVIDIA的传承: