音视频类应用开发这些年的一点感受

对产品的认知的变化,以前觉得,只要作出的产品功能都实现了,这个产品就可以提供了客户服务了,就可以换来真金白银,想法就是too young too simple,缺少的,是在产品的在用户体验,性能、可运营、可维护、可拓展升级等方面的考虑。


比方最近几年做了几个音视频实时通信相关的产品,有那么一点的经验,在对讲、监控、实时VOIP、直播、点播等等业务上做了些应用,对SIP协议、RTP/RTCP协议、音视频编解码、WebRTC、RTSP/RTMP/GB28181协议等等,包括Janus、Freeswitch、SRS等等服务器框架也有了一些积累和应用,产品也慢慢走向成熟,但公司最终还是放弃了这块,原因当然有跟公司主营方向不同的原因,但更重要的是,我们这三五个人,做了近2年的产品,给公司只是服务了不到10个项目,投入产出比太低,实际应用少,产品稳定周期长,售后问题也不少,放弃那是必然,可惜了的,是这些积累的经验,价值在哪里?


推出的音视频服务的产品,其可用性、易用性和用户体验如何,对于复杂网络场景下的处理如何,这是相当考验技术的一个行业,投入的资源和技术积累的程度,核心算法的设计、开发能力,都是尤其重要的,所以通过互联网开源项目堆出的产品,只能处在demo环节,离真正的产品化还有好远好远的距离;


这类产品做出demo容易,做出稳定可用的产品很难!


各方面的技能要求,比方通信网络技术:

TCP和UDP的选择;搞不定丢包就选TCP,比方POC语音对讲相对小数据量的应用,就适合选用TCP;比方实时性要求相对高的推送,当然也选TCP;如果选了UDP作为传输层协议,那就要考虑好丢包检测、丢包重传,丢包恢复或者相关的技术应用,否则这个产品就是有天然缺陷的,除非你能保证网络100%的可靠,很明显是不存在这样的网络的;

 

客户端技术:

处理编码、解码、抖动、丢包、时间同步等等复杂的场景和业务,基础的框架比方类似WebRTC的框架越熟练越好;

是否有编解码算法优化和算法定制能力?


服务端技术:

网络通信技术至关重要,其次才是协议,才是业务;

是否有网络路由、负载、运营监控、扩容能力?



你能做什么?自我认知最重要的,你的能力边界在那里?


最近也做了几个不相关的小应用,顺利的通过了验收,拿到了票子,有点类似一手交钱一手交货的感觉,你的货对方愿意付钱!


这类应用,有一个特点,就好比砖瓦匠干的或一样,计件也好,记工时也罢,计算机编程就是一门技术,你要根据客户的需求,将描述性的语言转换为程序可以理解的逻辑,这个是你当前能挣的钱,仅此而已。对这种活的认知就是,不应该仅此而已,你能干更重要的事,挣更多的钱,这种事在哪里,不知道,但不积跬步无以至千里!


对开源软件的认知,开源软件一定有不完善的地方,功能的也好,性能的也罢,多少是和产品的要求存在差异的,只有具备了对开源软件全盘定制,优化的能力,才敢说基于这款开源软件输出的产品可以提供个用户使用。


对职业态度的认知,记得第一个项目,被客户评价遵守契约精神,把客户需求的各种场景做了一个单元测试验收表格,连同软件和验收excel文件都发给了客户,得到如此的评价,甚至超过了客户付的RMB,颇感意外,确实是对专业态度的肯定!

呱牛笔记

请先登录后发表评论
  • 最新评论
  • 总共0条评论