推荐序三
Learning without thinking is useless; thinking without learning is dangerous.
学而不思则罔,思而不学则殆
——孔子
初识Steven Liu实际上是在FFmpeg的Mail List,他在FFmpeg社区非常的活跃,提交了大量的Patch又帮助review了很多其他人的Patch,看到他的ID,猜测大概是国人。那时我还处于潜水在FFmpeg社区的Mail List的状态,想着是不是可以进入这个社区做点事情,而此时的Steven Liu,已经是FFmpeg中DASH、HLS等部分的维护者,是少数几个在FFmpeg社区的有影响力的国人。
后来我一边从FFmpeg社区学习(主要是Steven Liu、Mark Thompson、Michael Niedermayer等一众活跃的维护者),一边尝试提交自己的一些Patch,大概也是这个时候,Steven Liu注意到了我的存在(我猜测主要是他作为FFmpeg社区中的少数的几个国人贡献者之一,看到有另外的国人尝试融入这个社区,产生了莫名亲近感吧,不过这种猜测我一直没有向他亲证),我们开始一些断断续续的网上联系。某天,突然接到他的邀请,说要借着LiveVideoStackCon Beijing 2017的机会,让FFmpeg社区的国人在线下碰面,见面后知道,他在写一本有关FFmpeg的书,这个项目从想法到开始实施,经历了3年多的时间,本想去拜读他的初稿,但碍于初见,没有提出;但是开始持续关注他在某个FFmpeg技术讨论群中偶尔谈及的这本书的进度;何时完成初稿,何时进行评审,何时开始发行等,心中充满期待,想等后面等正式发行后,买来拜读,结果某天与他私底下聊起本书,他告诉我可以写一篇序言,我便自荐了这篇序言。
FFmpeg作为音视频领域的瑞士军刀,涉及的知识之繁杂,从它的庞杂的选项上可以推知一二;这本书从FFmpeg社区开始讲起,后面逐步引入最为重要的几个基本工具,诸如FFmpeg、FFplay这些;之后逐步展开到作者最为擅长的流媒体相关的一些主题,最后简单概述了FFmpeg API层面上的使用。整本书中,谈及了FFmpeg的社区,各种应用场景,特别是流媒体相关的一些场景,还有工具的使用,背后的设计考虑等。本书所着重的工具,对于大部分使用者,可助其解决问题;而本书谈及的社区,则可帮助读者理解FFmpeg这类开源社区的运作方式以及历史;另外,本书也充分体现了对开源社区的所推崇的共享文化的身体力行,把自身的知识与技能集结成书,无私传递给别人,特别还在他自身创业之际,尤为不易;而我作为最初的几个能读到本书的读者之一,从中获益颇多,希望其他读者也可以有所得,这也是他写书的初衷吧。大部分开源社区的知识,大多口口相传,融入代码中,缺少文档,非常感谢还有Steven Liu这样的开源践行者,把知识的获取变得更加的便利,去促进知识的传播,这样我们也可以在他们肩上快速地去探求“事情为何如此”,也让我们可以从这积淀丰厚的开源文化中汲取力量。
赵军
开源爱好者、FFmpeg社区贡献者
2018年1月于上海