2016 年,一名叫做雷霄骅的中国传媒大学博士生因为过度劳累而离世,在那之后,CSDN 社区的许多网友和钻研技术的人们都自发来缅怀他。
如果你是一个玩转视频、音频的代码和解码相关的人,或者是 CSDN 技术社区的老油条,那么很有可能就认识这位博士。
雷博士是 CSDN 论坛的连续两届博客之星,他专注于视音频技术的研究和开发,也经常在网上分享帮助他人。

尤其是一个叫做 FFmpeg 的东西,他对这玩意儿的研究尤其深入,分享了很多学习方法和解析,还写出了堪称中文圈子最完整、最全面的 FFmpeg 入门教程,被誉为 “ 音视频界的雷锋 ” 。
所以很多人在缅怀雷博士的时候,也感谢他让很多人都入了 FFmpeg 的门,因为这套开源项目几乎是想要玩转音视频的必备技能。

不过话又说回来,凭啥这个看着像一串验证码的东西,能够成为许多开发者的必修课?
因为我们日常生活中再熟悉不过的各种音频和视频播放器,还真就离不开 FFmpeg 的功劳。
这个 “ 验证码 ” 当年推出之后,就几乎凭借一己之力实现了视频播放大统一,就连当年的 QQ 影音都用上了这玩意儿。

要想说清楚这个伟大的发明,还得先从它的发明者说起。
FFmpeg 最开始由一个叫做 Fabrice Bellard 的法国程序员在 2000 年前后发起的,他还有一个假名叫做 Gérard Lantau。

强者的发型
由于真名和假名都比较拗口,所以咱们就叫他老贝吧。
老贝确实是一个很有才华的人,除了 FFmpeg,他还做过模拟处理器软件 QEMU 和 Tiny C 编译器等各种各样的软件,可以说是把计算机给玩明白了。
FFmpeg 的名字灵感来源是 MPEG,也就是动态图像专家组,他们是给图像和语音压缩专门制定国际标准的一个组织。

前面的 FF 则是 Fast Forward 的缩写,意思是快进。
连起来这么一看,感觉老贝这是想加速统一音视频领域啊?
那具体怎么个加速法呢?分三步走。
首先就是 FFmpeg 的适用范围及其广泛,它什么程序和代码都有,包括但不限于编码、解码、转码和格式转换等等。

FFmpeg 的冰山一角
简而言之,FFmpeg 把你能想到的涉及音视频相关的东西全都给打包进去了,包括源代码,想用啥就用啥。
所以它几乎能播放所有的内容,无论是电子包浆的古老格式还是最新的视频格式,它都支持。
接下来是第二步,FFmpeg 的整个项目都是免费且开源的。
FFmpeg 在推出后遵循了 GPL 协议,这个协议的全称是 GNU 通用公共许可证,不少软件和代码都会遵循这个协议。

举个例子,比如我写了一段超牛逼的代码,然后我选择把这段代码免费开源给大家,但走的是 GPL 协议,这就意味着假如你在我代码的基础上进行修改,那么你的这段代码也要开源才行。
所以一定程度上,GPL 协议起到了监督和约束的作用。
FFmpeg 遵循 GPL 协议,也就意味着大家都可以使用这个功能超级齐全的音视频工具箱,并在此基础上魔改出各种软件,可以说是赛博菩萨了。

请 选 择 你 的 代 码
比如早期大家经常用的 QQ 影音和暴风影音等等,它们的内核其实都是 FFmpeg ,然后大厂再拿过来根据需求增加功能或者本土化一下,就可以打包发布了。

还有我个人很喜欢用的 PotPlayer 播放器,简单好用功能齐全,内核也是 FFmpeg 。

其实正常来讲,有了这前两步,FFmpeg 在互联网界就已经是十分炸裂的存在了,然而它还有一个大杀器 ——
尽管它最初是在 Linux 环境下开发的,但是它移植起来并不麻烦。
所以大家也能在 Windows 等系统上使用,实现了真正的遍地开花,比如视频处理软件 QuickCut 等等。

甚至就连安卓系统,也有 RxFFmpeg 这种基于 FFmpeg 和 OpenSSL 等编译的音视频处理框架,真就散是满天星。

所以 FFmpeg 它一来功能齐全,要啥有啥,二来基于开源协议,免费试用,三来基于 Linux ,但是又便于移植。
好家伙,这几样 buff 叠起来,想不成功都难啊。
按理来讲,本期科普小作文到这里就该结束了,结尾升华一波,夸赞一下这个开源项目让大家的生活有多么方便 blabla 之类的。
然而并没有,事实上,这个团队也是有它的小脾气的,因为 FFmpeg 当年做过一个非常经典的乐子新闻 ——Hall Of Shame 的耻辱柱名单。

我说停停,您这不是已经开源了吗,怎么还来个耻辱柱公开挂别人啊?
但这事儿其实很好理解,因为那些用了 FFmpeg 的软件或者公司中,有相当一部分不讲武德,没有遵循 GPL 协议,不公开自己的代码。
于是 FFmpeg 思来想去,就算不能找你对线,那我还不能顺着网线恶心你吗?
于是他们就在 FFmpeg 的官网整了个耻辱柱,把那些不开源的软件和企业名字挨个挂出来,直接公开处刑。

这东西没啥实质性惩罚,主打的就是一个精神攻击,隔着大半个地球嘲讽一下你。
之所以说是隔着大半个地球,因为这个耻辱柱名单里面,就有前面提到的 QQ 影音和暴风影音。

我去,合着国内这些软件都在这吃独食是吧?
反正,你可以说 FFmpeg 小心眼,也可以说人家真的很严格,但毕竟它最初就遵守了 GPL 协议,后来的软件无论个人还是互联网大厂,都应该讲信用才对。
不过这个协议在好几年前就下架了,也不知道啥时候能更新,我还挺期待的。

总之大家还是要遵守 GPL,人家把这么好用甚至改变了大家生活的好东西免费给大伙用,你反而还不开源,吃相确实挺难看的。
经过了 20 多年的互联网风风雨雨,FFmpeg 至今依然在不断更新,并且可以在官网下载源代码,可以说是当代良心典范了。