刘歧:“走弯路”的大师兄

LiveVideoStack 2017年8月24日
 

“走弯路”才是技术人的成长捷径

 

LiveVideoStack:从您开始工作,到后来加入蓝汛、高升、金山云,一直到现在出来创业,作为一个优秀的技术人,您认为最核心的(技能或素质)是什么?

 

刘歧:其实我并不优秀,和众多优秀的人们相比,我还差得很远,所以我一直在努力向优秀的人们学习,其实您提到的三家公司都是很好的公司,只是一些客观因素导致我不得不离职。对我来说仅仅是想踏踏实实的做好流媒体,去做一些有意义的事,让自己的技术能够有一点创新。

 

作为一名技术人,最荣幸的事就是自己开发的东西有人用,如果能够被同行认可,那将会是一种更加有认同感的感觉,比自己拿到奖金之类的更能让自己内心愉悦,所以我想持续这种感觉,这包括不断地参与FFmpeg功能开发——从HLS模块开发,FLV模块开发,到被挂到FFmpeg的consult页面后,接触到了世界各国用户的各种需求,并帮忙加入功能到FFmpeg中,每当从ticket、maillist中看到有人在使用自己开发的功能的时候,那种内心的愉悦感是难以形容的。

 

其实不论是在公司工作,还是在FFmpeg社区,能够参与开发并被人们认可和使用,对我来说是一种荣幸,所以我不但过去一直很努力,现在一如既往在努力,未来也会一直努力下去。

 

LiveVideoStack:您刚刚也有提到在不断参与到FFmpeg功能开发之中,我们也经常能在各种论坛、技术群中看到您解答问题以及提交patch这种编码工作,其实对于您现阶段来说还是蛮困难的,您是如何保持这样的状态?或者说怎样一个东西激励着您?

 

刘歧:主要还是平时比较喜欢交流,我认为在帮助别人的同时,其实也是在帮助自己,比如大家提出的很多问题是自己没有遇到过的,那么我就会想办法去复现,让自己遇到相同或者类似的问题,然后去分析代码、分析原理、最终解决这个问题,解决问题之后你会发现对自己也是一种提高,独学而无友则孤陋而寡闻。很多人都觉得应该“少走弯路”,其实有的时候看一看别人踩过的坑,甚至帮助别人去踩一脚之后,你会发现当自己以后做类似事情的时候,类似的这种坑已经被填掉。做技术的万万不能欠技术债,要不早晚会再次遇到相同的问题,只有解决的问题多了,才会心里有底。

 

自从与伙伴们一起创业之后,活动得就不如以前频繁了,不过也在尽力的去分析问题,因为都是一个领域的,我们团队以后也有可能会遇到类似的问题,我们需要未雨绸缪。技术团队最可怕的就是只低头做自己的技术、不看未来的路,我们的配合就是既低头做自己的技术,又去分析未来,这样团队的技术才能不断地进步,不断地迭代,我们也怕被淘汰。

 

至于激励方面会比较多,首先帮助别人解决问题会让我觉得自己还是有价值的,而且帮助别人解决问题的同时,也可以关注别人做的业务从而挖掘大家真正需要的东西,这也是为什么我们团队出来创业了。其实如果不是参与FFmpeg开发,我也不太会发现原来世界还是很大的,所以在我们的团队里,不单单是我,其他成员我也很鼓励他们参与到开源技术的。

 

初识创业

 

LiveVideoStack:您从金山云出来自己创业,会有怎样的体会?最深的感受是什么?比如在公司管理层面、发展方向、核心内容的专注度等等方面都可以。

 

刘歧:其实非常惭愧,我在金山云并未做出什么的贡献,反而幸运的是认识了很多前辈和朋友,大家对我出来创业也很支持。在出来创业之前也和家人深度沟通过,因为创业意味着生活将会从衣食无忧几乎变成风餐露宿,其实创业的主要压力还是生活方面的,工作的压力并不像传说中那么大,如果非要说压力,那工作就是生活,生活就是工作,压力应该指的就是这个;毕竟我们团队的目标很明确,相互之间配合默契,相互信任,我认为这个在创业中是很重要的。并且我们还在不断地check与市场的契合度,不断地分析市场的需求以定制调整计划,一期一期的更新,稳扎稳打、小步迭代吧。产品目前还在基础版本的封闭开发,所以压力并没有那么大,而且有很多前辈愿意伸出援助之手,所以我相信事情会向好的方向发展。

 

到现在最深刻的感受就是没有时间的概念,所有人都在拼了命的往前赶进度,基本处于累了就睡觉、睡醒了就开始干活的状态,团队成员之间频繁的沟通,频繁的交流,有想法或者新发现会马上互相共享,以便信息充分的在内部流通,大家的战斗力都极其强悍,这其实是我出来之前比较担心的一个问题,但到现在我觉得之前的担心是多余的,完全超乎我的想象。

 

LiveVideoStack:您刚才也有提到目前产品处在基础版本封闭开发阶段,咱们创业的方向是怎样的?关于产品有什么可以跟我们分享的?

 

刘歧:我们的创业方向其实不能完全用ToB或者ToC来形容,我们做的产品说成是ToUser会更合适一些。有关产品目前也没什么好谈的,说多了自己也会觉得在吹牛(哈哈),我觉得还是先做出来,给大伙用起来以后再去谈会好一些。

 

LiveVideoStack:那我们就拭目以待了。

 

FFmpeg“巨匠”

 

LiveVideoStack:我们都知道您在FFmpeg社区中贡献是很多的,当初是怎样的机会接触到FFmpeg?又是怎样一步步成为国内唯一高度活跃的FFmpeg Maintainer?

 

刘歧:其实我接触到FFmpeg比较晚,从2012年才开始大量的阅读FFmpeg官方文档,开始主要是研究FFmpeg的maillist,直到2013年才尝试着给FFmpeg提代码,就这样零零散散地为FFmpeg提patch,其实提patch的过程也是社区对自己建立信任的过程,后来Michael发现我提了好多hlsenc的patch,就开始邀请我成为hlsenc的维护者。

 

再后来我发现FFmpeg其实很好参与,在业余的时间多去读读官方文档,读读代码从而加深对FFmpeg代码实现的理解;并且了解FFmpeg里面各种维护工具,例如coverity、ticket、fuzz等;知道在哪里报bug、哪里需要加功能,只要与其他人没有冲突,完全可以提交patch进去。由于经常提patch,大家说我可以直接push代码进去,就这样开始被大家信任了,我也一直坚持做下来了。

 

从FFmpeg中可以接触到全世界范围内的需求,不论是功能实现的严谨性,例如时间戳相差一帧的问题;还是功能的前沿性,例如支持fmp4的HLS等。慢慢的,接触大家的需求多了,一想到自己以后也会用到,那就直接撸代码支持上吧,在以后自己用到的时候也不用专门维护一个独立的版本,有整个社区在维护,节省了维护的成本,就这样,活跃度就一点点提升了。

 

提代码的同时,也会帮助其他提patch的同学去review代码,我记得Michael他们在IRC里曾经讨论过,其实社区更需要的是review代码的人,当然,并不是不需要提patch,而是说review代码同样很重要——review也是活跃度的一种,在很多时候review别人的代码和被别人review代码,也是自己提高的一个过程,从中能学到不少代码实现更简洁,性能更高的处理方式,例如如果自己重新实现一个字符串替换的功能要撸很多代码,但是用FFmpeg中的bprint的话将会大大节省代码量,并且性能也不差。

 

LiveVideoStack:您对于FFmpeg的初学者在学习和成长上有什么建议?或者有什么相关书籍可以推荐?

 

刘歧:其实FFmpeg的文档已经很全了,只要静下心阅读,入门还是很快的,文档里面包含了API使用的demo代码、命令行手册等,如果要参与FFmpeg开发,首先还是要认认真真的、仔仔细细的读一遍FFmpeg的官方文档的。

 

LiveVideoStack:说到FFmpeg开发,您在10月份会做一个FFmpeg实战开发培训,可以说是国内首次。

 

刘歧:与其说是培训,到不如说是一次分享,其实这也是对自己之前学习的过程做一个总结,将这个过程浓缩之后的内容介绍给大家,希望可以帮助大家更好的解决实战开发中遇到的问题,提升对FFmpeg技能理解。

 

LiveVideoStack:培训在内容设置和讲师上会有怎样的亮点?

 

刘歧:主要会由文杰和我来做分享,文杰是在客户端方面与流媒体服务器方面开发有很深造诣的大神,我主要会介绍FFmpeg的基础部分,文杰会介绍客户端开发实战部分,这样可以让大家有一个尽量完整的技术知识链,从而获得从环境搭建到实现推流及播放的一整套直播方案的实战经验。

还可输入800
全部评论
作者介绍

刘歧

FFmpeg决策委员会

委员

文章

粉丝

视频

阅读排行
  • 2周
  • 4周
  • 16周