这是一篇对支撑全球音视频生态的开源项目FFmpeg、VLC核心成员的访谈,揭秘了隐形基础设施的技术与开源文化。 ## 1. 核心项目与行业地位 - FFmpeg是开源跨平台音视频处理工具集,是YouTube、Netflix等几乎所有音视频平台的底层引擎,超90%的音视频处理工作流涉及它。 - VLC是无广告无追踪的开源媒体播放器,支持几乎所有格式,下载量超65亿次,橙色交通锥标志已是全球知名文化符号,核心维护团队仅5人。 ## 2. 音视频播放技术核心逻辑 - 播放全流程分为五步:获取字节流→解复用拆分音视频压缩帧→判断是否可用GPU解码(约45%文件无法GPU解码)→解码器将压缩数据转为原始像素/音频→颜色转换后输出到显示/音频设备。 - 编解码通过消除帧内、帧间冗余实现最高1000倍压缩,现代编解码器是适配不同内容的编码工具集合;硬件解码支持有限且质量存在瑕疵,纯软件解码器Dav1d是可靠后盾。 - 该领域极度追求性能优化:Dav1d包含24万行手写汇编,FFmpeg整体有10万行汇编,核心逻辑是“每一周期都重要”,手写汇编因能结合场景做针对性优化,效率高于编译器自动生成代码。 ## 3. 开源社区的运作与文化 - FFmpeg核心维护者仅10-15人,千余名贡献者中仅约1%长期留存,少量核心人员需要维护海量代码,因此对代码质量要求极高,对事不对人是社区默认沟通规则。 - 社区是完全以技术实力为核心的纯粹技术社区,驱动贡献者的核心动力是编程创造的乐趣,数十亿人使用代码带来的满足感是金钱无法替代的。 - 项目运营不靠用户付费,经费来自捐赠与企业赞助,公开争议反而提升了项目知名度,带来了更多捐赠,让更多人了解到小团队支撑核心基础设施的开源现状。 ## 4. 经典项目与行业影响 - x264是H.264标准的开源编码器,它打破行业惯例,以人眼视觉质量代替数学指标作为优化标准,质量至今仍是行业标杆,证明开源志愿者项目可以超越商业产品。 - Dav1d是志愿者开发的纯软件AV1解码器,包含3万行C代码加24万行手写汇编,可在1-2个CPU核心上解码720p视频,目前支撑30亿设备的AV1播放,覆盖Netflix 30%、YouTube 50%的视频内容。 - 这类开源项目早已成为跨领域的核心基础设施,已经应用在火星探测器、F1赛事转播、大型强子对撞机、航天发射监控等特殊场景,是现代数字文明的隐形基石。
支撑YouTube、Netflix的隐形帝国:FFmpeg与VLC幕后工程师:核心团队仅5人,下载量超65亿次
2026-05-16 12:10

支撑YouTube、Netflix的隐形帝国:FFmpeg与VLC幕后工程师:核心团队仅5人,下载量超65亿次

本文来自微信公众号: 每日天使 ,作者:每日天使


                      FFmpeg是一个开源的跨平台音视频处理工具集,能够解码、编码、转码、流传输和播放几乎所有曾经被创造出来的视频或音频格式。它是YouTube、Netflix、Chrome、VLC、Discord以及几乎所有涉及音视频的互联网平台的底层引擎。据估计,超过90%的在线和离线视频处理工作流都涉及FFmpeg。


                      VLC则是另一个传奇级的开源媒体播放器,能够播放任何格式、任何平台上的媒体文件,没有广告、没有追踪。它的下载量已超过65亿次,其标志性的橙色交通锥图标已成为全球数字文化的一部分。


                      本次访谈的两位嘉宾:让-巴蒂斯特·坎普夫(Jean-Baptiste Kempf)是VideoLAN的主席,是VLC和FFmpeg背后的关键人物;基兰·库尼亚(Kieran Kunhya)是FFmpeg的长期贡献者,也是Twitter/X上那个著名的FFmpeg账号的运营者——以犀利的推文和无条件捍卫开源精神而闻名。在长达4个多小时的对话中,他们深入探讨了视频编解码技术、开源社区文化、手写汇编的艺术,以及那些支撑现代数字文明的"隐形基础设施"背后的故事。


                      QA正文


                      一、传奇软件


                      莱克斯:传说VLC可以打开一切。你知道它能打开的最奇怪的东西是什么?


                      让-巴蒂斯特:有很多人用VLC来录制VHS录像带。你只需要插上一张采集卡,VLC就能播放那些信号。我们最近还专门花了一整个夏天来开发DVD Audio支持。当然还有FFmpeg支持的所有那些奇怪的游戏编解码器。


                      基兰:有一个《星球大战》视频游戏,有人专门实现了其中前10秒的片头序列,并确保在一张光盘上的比特级精确还原。


                      让-巴蒂斯特:有一次在VideoLAN大会上,我们还举办了一个比赛——看谁能造出最奇怪、最恐怖的文件,然后看VLC能不能打开。最终是一个MKV文件获胜,它的每一帧都在改变分辨率、宽高比和旋转角度。还有一个文件,整个视频其实都是动画字幕——每一帧都是黑底,但上面叠加了一帧一帧变化的SSA字幕。还有一个文件同时是合法的ZIP和合法的MP3。


                      莱克斯:对不了解VLC的人来说,我头上戴的这顶帽子,这交通锥标志能算是史上最好也最糟的标志吗?


                      让-巴蒂斯特:绝对是。VLC的标志太有标志性了。我们是一个很小的团队,但这个图标全世界都知道。我去印度或中国的偏远地方,人们都认识这个交通锥。我们网站25%的流量来自搜索"cone player"的人。很多人不知道VLC,但他们知道"锥子播放器"。有一次我们开玩笑说要换标志,说改成一种推土机,在愚人节那天发了出去,结果收到了大约一万封邮件说"不要换标志"。


                      莱克斯:这个标志很荒谬、很荒诞、很搞笑,它变成了一个迷因,迷因变成了文化,然后你就一直留着它。你知道20年后人们还是会认出这个交通锥,会说"哦对,那是一个视频播放器"。


                      二、视频管线


                      莱克斯:当我们按下播放键时,到底发生了什么?从文件或流到屏幕上的像素和扬声器里的声音,主要有哪些阶段?


                      让-巴蒂斯特:第一个阶段是从一个地址——也就是你给的一个URL——获取字节流。这可以是HTTP、文件、DVD等。你给媒体路径,它给你数据流。然后这个流需要被容器切割——也就是解复用器(demuxer)。它从操作系统中一块一块地获取数据,开始把这些数据切割成压缩的视频帧和音频帧。


                      基兰:然后需要做简单的视频帧解析,主要是为了判断这个编解码器是否可以用GPU解码,或者需要退回到软件解码。人们通常认为GPU能播放所有东西,但实际上高达45%的文件是无法GPU解码的。这些文件需要被探测、被检测,不同厂商的GPU可能有不同的限制。


                      让-巴蒂斯特:解复用之后,你就有了压缩的数据——音频和视频。视频数据需要被发送给解码器,音频数据也是一样。解码器会将压缩的数据转化为原始的像素数据。然后这些像素数据会被进行颜色空间转换,最终送到GPU上进行渲染和显示。音频数据则会被送到音频输出设备。


                      三、编解码原理


                      莱克斯:什么是编解码器?它是如何实现100倍甚至1000倍压缩的?


                      基兰:视频的本质是什么?就是一堆像素,每个像素有RGB三个值,你有一个像素网格,每秒有24帧或30帧或60帧。问题在于——如何把所有这些数据压缩存储?核心思路是利用冗余信息。比如你看到一片云,从这一帧到下一帧云还是一样的,这就是冗余——你只需要存一次。再比如我身后这个黑色背景,整个画面都是一样的黑色,你只需要说"把左上角的像素值复制到整个画面"就行了。


                      让-巴蒂斯特:你还可以跨帧复用——第一帧的信息可以在后续很多帧中重复使用。理论上这是无限的,但实际上受限于内存和计算能力。如果你要在4K分辨率下比较200帧之前的像素,那计算量是巨大的,而且解压时也要做同样的事情。


                      莱克斯:1000倍压缩?


                      让-巴蒂斯特:1000倍。目标就是1000倍。编码和解码是一个耦合的过程,但它们是不同的权衡——你是要压缩更多但解码更难?还是要编码更快但客户端花更多时间?这就是为什么有那么多不同的编解码器。


                      基兰:更复杂的是,像AV1、AV2或VVC这样的现代编解码器,严格来说不是单一的编解码器——它们是工具的集合。里面包含多个不同的编码工具,根据不同的图像内容来选择最优方案。


                      四、硬件解码


                      莱克斯:关于GPU硬件解码,45%的文件无法硬件解码,这是怎么回事?


                      让-巴蒂斯特:人们很习惯地认为GPU能播放所有东西,会有硬件加速。但实际上,很多编解码器的变种、不同的配置文件,GPU可能不支持。不同GPU厂商对同一编解码器的支持也不同。而且很多时候,硬件解码器的质量不如软件解码器——你可能在画面上看到瑕疵。


                      基兰:还有一个问题是,硬件解码器通常不支持所有编解码器。很多新的或小众的编解码器,GPU根本不支持。这时候你就需要一个优秀的软件解码器。这就是为什么像Dav1d这样的项目如此重要——它是一个纯软件的AV1解码器,在CPU上实现了极高的性能。


                      莱克斯:所以当硬件不支持的时候,软件解码器就是你的后盾。


                      基兰:没错。而且即使有硬件支持,软件解码器在很多情况下也更好——它更灵活,支持更多特性,而且不受GPU厂商的限制。


                      五、手写汇编


                      莱克斯:我们来谈谈FFmpeg的Twitter账号上那些引发争议的推文。你发了什么?


                      基兰:我发了一张图,标题是"这就是顶级视频编解码器应该有的样子"——79.9%是汇编语言,19.6%是C语言,0.5%是其他。这是Dav1d项目的代码构成。


                      莱克斯:这引发了什么反应?


                      基兰:人们疯了。两年来一直有人跟我争论——"intrinsics(编译器内置函数)就够了"、"编译器的自动向量化可以做到"、"是你不会用,不是编译器不行"。我们展示了几百个手写汇编优于编译器输出的例子,他们的回应是"你写错了"。然后我们证明了不是我们写错了,是真的手写汇编更快。两年后,争论还在继续。


                      让-巴蒂斯特:FFmpeg整体有10万行汇编代码,而光Dav1d一个项目就有24万行手写汇编。这是VideoLAN的项目,每一行都是为性能而优化的。我们的座右铭是"每一个周期都重要",因为Dav1d用在VLC和一些软件AV1播放栈中,涉及大约30亿设备的视频解码。30%的Netflix视频现在是AV1格式,YouTube上50%也是AV1。


                      莱克斯:为什么手写汇编比编译器生成的代码更快?


                      基兰:因为编译器不了解上下文。你作为人类程序员,知道这段代码的特定用途、知道数据的模式、知道什么指令组合最有效。编译器做的是通用优化,但视频解码中有太多特定场景需要特定优化。每一纳秒的节省乘以30亿设备、乘以每秒60帧——这个数字是天文数字。


                      六、开源文化


                      莱克斯:FFmpeg的核心维护团队到底有多少人?


                      让-巴蒂斯特:核心社区大约10到15人。VLC的核心社区只有5人。FFmpeg的时间线上有大约1000个贡献者,但留下来的比例大概只有1%。人会换工作、结婚生子、遇到人生变故——他们很可能不会再回来。所以是我们这十几个人要维护所有人的代码。代码必须可维护、必须优秀。有时这意味着你需要重做你的工作——因为它不错,但不够优秀。


                      莱克斯:说到Linus Torvalds,他对代码质量的严格程度是出了名的。你怎么看?


                      让-巴蒂斯特:Linus是独一无二的。他非常严厉,但人们没看到的是,他严厉的对象通常是内核各部分的维护者——这些人了解他。他对每个人并不是都那么严厉。重要的是,他在自己房间里创造的东西现在运行着互联网上每一台服务器——连微软云Azure上70%-80%的服务器都跑Linux。你所有的Android手机都在跑Linux。他的成就令人惊叹。


                      基兰:代码审查的严格性是必要的。因为我们这么少的人要维护这么多关键基础设施,质量不能妥协。而且很多时候贡献者的母语不是英语,语气上可能显得比较直接,但这不一定是针对个人。在FFmpeg和VLC这样的开源社区中,对代码的批评通常就是对事不对人。


                      让-巴蒂斯特:这是一个亚文化。大多数FFmpeg和VLC社区的人每年都会参加VDD(VideoLAN Dev Days),在现实生活中他们非常有趣和友好。但在线上,沟通方式确实不同。你不能把在线上的沟通方式和线下等同起来。就像游戏文化一样,有时候看起来很激烈,但大家都理解这种方式。


                      七、X平台风波


                      莱克斯:FFmpeg的Twitter账号上那些充满争议的推文——跟Google的争论是怎么回事?


                      基兰:这是一个年轻人在Google工作,他说"嘿,开源项目还有其他运营方式"。我们只是在X上回应了一下——这就是这个账号的乐趣所在。关键是要告诉人们,这些不是大型企业的开源项目,不是Kubernetes那种有几百上千人拿着工资开发的项目。这些人就是在地下室里用业余时间做东西。


                      让-巴蒂斯特:与Google的关系比较复杂。Google是一个实体,但内部有很多不同的团队——YouTube、Chrome、Chrome Media等等,他们都是不同的。我们跟很多Google工程师一直有很好的合作。Theo那个事件确实有点过了——我给他打了电话,我说"好了,这太过分了"。但最终,这种争论对项目是有益的——开源社区的知名度在过去两年里大幅提升了。


                      基兰:我觉得应该把它看作一场说唱对决。我们在X上说stuff,对方也说stuff——但这不意味着真的有个人恩怨。而且如果你能通过这种有趣的方式教会人们关于开源项目的知识、关于汇编的知识,那这就是有价值的。


                      莱克斯:有意思的是,这种公开的争论实际上带来了积极的效果?


                      让-巴蒂斯特:捐赠增加了,关注度提高了,大家都开始讨论FFmpeg是什么。从这个角度看,X上的争论对整个开源社区都有好处。


                      八、David解码器


                      莱克斯:我们来好好聊聊Dav1d。这是一个什么样的项目?


                      让-巴蒂斯特:当AV1被推出时,Netflix、亚马逊、Mozilla都说"这个格式太复杂了,必须用硬件来解码"。但我和Ronald、Henrik、Martin等人说,我们需要一个极其优秀的软件解码器,因为硬件支持需要时间。于是我们创建了Dav1d。


                      基兰:这个项目可以用"超越疯狂"来形容。3万行C代码加上24万行手写汇编。为了让你有个概念,FFmpeg所有编解码器加起来大约有10万行汇编,而光Dav1d一个项目就有24万行。


                      让-巴蒂斯特:每一行汇编都为性能而优化,因为我们的座右铭是"每一周期都重要"。Dav1d用在VLC和一些软件AV1播放栈中,我们讨论的可能涉及大约30亿设备的视频解码。30%的Netflix视频现在是AV1格式,YouTube上50%也是AV1。而且很多设备没有硬件AV1解码器。有了Dav1d,我们发现在一两个CPU核心上就能正确解码720p视频。


                      莱克斯:这太不可思议了。一个由志愿者开发的开源项目,手写24万行汇编,服务于30亿设备的视频播放。


                      基兰:这就是开源的力量。


                      九、x264传奇


                      莱克斯:我们来聊聊x264,这个基本上驱动了整个互联网视频的编码器。


                      基兰:x264是H.264视频标准的编码器。它主导了互联网视频,也主导了蓝光光盘等其它领域。蓝光光盘很有意思,因为制作方真的很想要最高质量——很多顶级电影都是用x264编码的。x264是一个巨大的飞跃,因为它出现在正确的时间点——HD视频开始普及,Intel Core和Nehalem CPU变得足够快,可以实时编码视频。


                      莱克斯:它最核心的贡献是什么?


                      基兰:最核心的贡献是关注视觉质量而非数学指标。在此之前,行业和学术界20年来一直痴迷于峰值信噪比(PSNR)和均方误差(MSE)这样的数学指标。但MSE会导致模糊,因为它实际上是在最小化错误——但人眼感知到的东西和数学指标衡量的是不同的。x264改变了这一切,它开始关注"人眼觉得好看"而不是"数学上最优"。


                      让-巴蒂斯特:这在当时是革命性的。x264证明了,一个由志愿者开发的开源编码器,可以打败商业公司花大价钱开发的编码器。它的质量标准至今仍是行业标杆。


                      十、开源动力


                      莱克斯:是什么驱动着这些令人难以置信的贡献者?


                      让-巴蒂斯特:是编程本身的乐趣。这是你内在的驱动力——你看到了一个问题,你知道怎么解决它,你就去做了。不是为了钱,不是为了名,而是因为你觉得这很酷,这很有趣。


                      基兰:我11岁的时候在意大利佛罗伦萨住了一年,数学老师教我们用一种叫Logo的编程语言——屏幕上有一只海龟,你让它左转右转来画图形。从那以后我就知道我想做跟计算机有关的事情。后来我开始接触视频编码,发现这个领域充满了挑战和乐趣。


                      让-巴蒂斯特:很多人不理解——为什么要花这么多时间在免费的东西上?但对我们来说,这不是"免费"的。我们得到了学习、创造和被认可的机会。当你的代码被数十亿人使用时,那种满足感是任何金钱都买不到的。


                      基兰:而且这是一个完全基于实力的社区。我们不在乎你是谁、你来自哪里、你在哪家公司工作。我们只在乎一件事——你的代码好不好。也许你是一只狗,我们不在乎。我需要看你的代码,代码好就行。这是最纯粹的技术社区。


                      十一、远程渲染


                      莱克斯:我们来聊聊远程渲染和低延迟视频。这是做什么的?


                      让-巴蒂斯特:远程渲染就是你在本地运行一个程序(比如视频游戏),但实际的渲染和计算在远端服务器上完成,然后通过网络把画面传回来。你需要极低的延迟——目标是从屏幕捕获到显示的端到端延迟是4毫秒。


                      莱克斯:4毫秒?这是什么概念?


                      让-巴蒂斯特:4毫秒意味着240Hz。到目前为止,我们在Windows到Windows或Windows到Mac之间实现了7毫秒的延迟。在这个时间中,大约3.5毫秒花在NVIDIA硬件编码器上,大约2毫秒花在Intel解码器上——光编码加解码就已经6毫秒了。要降到4毫秒,我们需要更快的编解码器。


                      莱克斯:你们最近在CES上做了什么演示?


                      让-巴蒂斯特:我们在拉斯维加斯CES展会上做了一个演示——一辆全3D打印的火星车,有人从法国远程控制它。车上装了一个网络摄像头和一块很小的PCB板,把视频传到地球另一端。这展示了远程渲染的实际应用场景。未来你还可以想象AI控制大量无人机——所有这些都需要极致的视频编码和网络性能。每一个毫秒都很重要。


                      十二、VLC历史


                      莱克斯:VLC是怎么开始的?


                      让-巴蒂斯特:VLC最初是一个法国学生项目。1996年,巴黎中央理工学院的一群学生想要在校园网络上播放视频。当时没有好的跨平台视频播放器,所以他们决定自己写一个。最初的名称是"VideoLAN Client"——这就是VLC这个名字的由来。


                      莱克斯:交通锥标志是怎么来的?


                      让-巴蒂斯特:最初的标志收集工作是由我们的一位学生做的。交通锥的灵感来自École Centrale Paris的学生传统——他们有一个把交通锥作为纪念品的文化。当我们需要一个标志时,有人画了这个橙色交通锥,大家都觉得它很有趣、很独特,于是就保留了。现在它已经成为全球最有辨识度的软件图标之一。


                      莱克斯:你有没有想过换掉它?


                      让-巴蒂斯特:我们试过——在愚人节开玩笑说要换成推土机,结果收到了大约一万封抗议邮件。从那以后我们就知道,这个标志永远不能换了。


                      基兰:而且VLC没有广告、没有追踪、完全免费。65亿次下载,没有从用户身上赚一分钱。这在今天的互联网环境中几乎不可想象。


                      让-巴蒂斯特:这就是开源的力量——我们不需要从用户身上赚钱,因为我们的经费来自捐赠和企业赞助。我们的目标只是做一个好的播放器,仅此而已。


                      十三、视频未来


                      莱克斯:FFmpeg有没有在太空使用?


                      让-巴蒂斯特:FFmpeg运行在火星探测器上。NASA的Mars 2020火星车用FFmpeg来压缩从火星传回的图片。他们写了一篇论文,说他们尽量使用商业现成技术。所以FFmpeg是一个"多行星开源库"。


                      莱克斯:还有什么有趣的使用场景?


                      让-巴蒂斯特:VLC在很多意想不到的地方被使用。F1赛车的每个维修区都在用VLC播放实时画面。我们看到欧洲航天局、SpaceX在监控发射时使用VLC。最让我激动的一次是去参观大型强子对撞机(LHC)——他们也在用我们的软件。


                      莱克斯:关于杜比,你有什么想说的?


                      基兰:杜比曾经是一家伟大的公司,做了很多了不起的事情,有很棒的工程师。他们定义了什么是声音。但现在?基本上只剩下律师和授权了。他们不再像以前那样创新了。这有点像惠普。


                      让-巴蒂斯特:未来的视频技术会朝着更高的压缩比、更低的延迟、更智能的编码方向发展。AV2、VVC这些新一代编解码器会带来更好的性能。但不管技术怎么发展,FFmpeg和VLC这样的开源项目会一直是这个生态系统的基石。因为我们追求的不是商业利益,而是技术本身的卓越。


                      十四、结语感悟


                      莱克斯:有什么推文是你后悔的吗?


                      基兰:没有。就像那首法国歌里唱的——"Je ne regrette rien"——什么都不后悔。因为后悔是对你心灵的攻击。


                      让-巴蒂斯特:FFmpeg的Twitter账号有两句我最喜欢的格言。第一句是"Talk is cheap,send patches"——光说不练假把式,发补丁来。这体现了很多东西——东西不会自己出现,除非有人去做。另一句是"FFmpeg:nothing is beyond our reach"——据说这句话来源于一个美国军方卫星补丁,他们发明了一种可以监控整个世界的系统,然后把这个发布到了FFmpeg中。


                      莱克斯:FFmpeg确实运行在火星车上。


                      让-巴蒂斯特:是的。FFmpeg运行在火星上。所以我们是一个多行星开源库。


                      莱克斯:我想用Linus Torvalds的一句话来结束这期节目。他说过,大多数优秀的程序员做编程,不是因为期望得到报酬或公众的赞誉,而是因为编程本身就有趣。谢谢你们。


                      让-巴蒂斯特:谢谢。


                      基兰:谢谢。

                      AI原生产品日报频道: 前沿科技
                      本内容来源于网络 原文链接,观点仅代表作者本人,不代表虎嗅立场。
                      如涉及版权问题请联系 hezuo@huxiu.com,我们将及时核实并处理。
                      正在改变与想要改变世界的人,都在 虎嗅APP
                      赞赏
                      关闭赞赏 开启赞赏

                      支持一下   修改

                      确定