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 在推出后遵循了 GPL 协议,这个协议的全称是 GNU 通用公共许可证,不少软件和代码都会遵循这个协议。举个例子,比如我写了一段超牛逼的代码,然后我选择把这段代码免费开源给大家,但走的是 GPL 协议,这就意味着假如你在我代码的基础上进行修改,那么你的这段代码也要开源才行。所以一定程度上,GPL 协议起到了监督和约束的作用。而 FFmpeg 遵循 GPL 协议,也就意味着大家都可以使用这个功能超级齐全的音视频工具箱,并在此基础上魔改出各种软件,可以说是赛博菩萨了。。。 比如早期大家经常用的 QQ 影音和暴风影音等等,它们的内核其实都是 FFmpeg ,然后大厂再拿过来根据需求增加功能或者本土化一下,就可以打包发布了。还有世超个人很喜欢用的 PotPlayer 播放器,简单好用功能齐全,内核也是 FFmpeg 。。。其实正常来讲,有了这前两步,FFmpeg 在互联网界就已经是十分炸裂的存在了,然而它还有一个大杀器 ——
尽管它最初是在 Linux 环境下开发的,但是它移植起来并不麻烦。所以大家也能在 Windows 等系统上使用,实现了真正的遍地开花,比如视频处理软件 QuickCut 等等。甚至就连安卓系统,也有 RxFFmpeg 这种基于 FFmpeg 和 OpenSSL 等编译的音视频处理框架,真就散是满天星。。。所以 FFmpeg 它一来功能齐全,要啥有啥,二来基于开源协议,免费试用,三来基于 Linux ,但是又便于移植。
好家伙,这几样 buff 叠起来,想不成功都难啊。。。
按理来讲,本期科普小作文到这里就该结束了,结尾升华一波,夸赞一下这个开源项目让大家的生活有多么方便 blabla 之类的。
然而并没有,事实上,这个团队也是有它的小脾气的,因为 FFmpeg 当年做过一个非常经典的乐子新闻 ——我说停停,您这不是已经开源了吗,怎么还来个耻辱柱公开挂别人啊?但这事儿其实很好理解,因为那些用了 FFmpeg 的软件或者公司中,有相当一部分不讲武德,没有遵循 GPL 协议,不公开自己的代码。。。于是 FFmpeg 思来想去,就算不能找你对线,那我还不能顺着网线恶心你吗?
于是他们就在 FFmpeg 的官网整了个耻辱柱,把那些不开源的软件和企业名字挨个挂出来,直接公开处刑。这东西没啥实质性惩罚,主打的就是一个精神攻击,隔着大半个地球嘲讽一下你。之所以说是隔着大半个地球,因为这个耻辱柱名单里面,就有前面提到的 QQ 影音和暴风影音。。。 反正,你可以说 FFmpeg 小心眼,也可以说人家真的很严格,但毕竟它最初就遵守了 GPL 协议,后来的软件无论个人还是互联网大厂,都应该讲信用才对。不过这个协议在好几年前就下架了,也不知道啥时候能更新,世超还挺期待的。总之大家还是要遵守 GPL,人家把这么好用甚至改变了大家生活的好东西免费给大伙用,你反而还不开源,吃相确实挺难看的。
而且经过了 20 多年的互联网风风雨雨,FFmpeg 至今依然在不断更新,并且可以在官网下载源代码,可以说是当代良心典范了。。。撰文:百威 编辑:米罗
来源:
Wikipedia
LiveVideoStack
知乎 - 关于FFmepg的冷知识,这一篇就够了
CSDN - FFMPEG详解(完整版)
CSDN - 使用 FFmpeg 转换视频/音频格式 | 开源 免费 | 不用套壳软件
CSDN - 最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器
GitHub - QuickCut 、RxFFmpeg
ffmpeg.org
Google 、New Bing