文章目录

  • 直播源不可用
  • 基础库的问题

直播源不可用

之前陈速找钟展鹏聊过之后,就把传输协议发给了对方。但现在因为传输协议发生变更,udp改成了tcp,他赶紧在QQ上通知钟展鹏这件事。陈速本以为钟展鹏那边会抱怨一番,没想到对方的回复很爽快:“我这边没问题,改个传输协议而已,一天就可以。我们明天对接怎么样,陈工?”

钟展鹏的工作能力让陈速也心生佩服,暗道人家能考上北大确实就是赢在脑子好使,没得话说。当下陈速也满心欢喜,想着客户端那边能有实质性的进展的话,梁江峰的脸色应该能好看些了。

次日,当陈速将环境配置好,把相关参数在QQ上告诉钟展鹏时,就摩拳擦掌等着对方给自己好消息了。半晌,钟展鹏亲自过来找陈速了,他仍然还是那么客气:“陈工,你好。你那边的数据我已经能收到了,但应该是我收的不对,播放是黑屏,你能过来帮忙看一眼吗?”

陈速赶紧跟着钟展鹏到了他的工位。一看,原来钟展鹏的工作做得非常细致,包括详细的日志输出、对数据流的二进制分析,其实人家是已经确定了自己的代码没问题才去找的陈速。这哥们得是多谦虚啊,陈速心中暗赞这修养,要是换了自己恐怕不掀桌子就已经很客气了。不过问题还是要解决,陈速的脑子又飞速地转了起来。

“您这边是直接在盒子里播放的是吧?” 陈速一边整理思路一边问着。

“对,” 钟展鹏应道,“这样播放是有问题吗?还是要再处理一下怎么着?”

“不是,” 陈速想到了一个办法,“这么播放没问题,但我们还是先确定一下视频流本身的情况吧。这个能保存成文件拷贝出来放PC上吗?”

“可以的,我来操作吧。” 说着钟展鹏将一段视频流存成文件再复制到了PC机里。钟展鹏的电脑里已经安装了VLC,直接点击之后一看,居然可以正常播放。这回钟展鹏是松了口气,他看着紧皱着眉头的陈速问道:“陈工,这是什么问题呢?”

陈速长叹了口气,说:“看来是视频格式的兼容性问题,视频编码是黄云鲲开发的,我们去找下他吧。”

到了黄云鲲这儿一看,人没在座位上,一问旁边人只说出差去了。陈速这回头是真的大了,他只好对钟展鹏说:“钟工,要不你回去吧,我找项目经理说说这事去。”

林象南一看是陈速找过来了,倒咧嘴笑了下,陈速觉得那比哭还难看。林象南问着:“怎么,陈工,还没去催呢,就主动来汇报啊。”

“有个好消息,” 陈速也是苦中作乐开起了玩笑,“包你听了之后会开心得欲仙欲死。”

林象南作了个痛不欲生的表情,说:“来吧,让暴风雨来得更猛烈些吧!”

陈速便一五一十把钟展鹏那儿遇到的播放问题描述了一遍。林象南闻言沉默了好一会儿,才说:“黄云鲲正是去沈阳出差,部署他的直播编码程序去了。就因为他的编码必须要Windows环境,公司还特地采购了两台机器外加两个Windows许可。要是这会儿连直播源都有问题,这可怎么弄?”

听着林象南的这些话,陈速这会儿真觉得这是一个会死人的问题了。林象南无可奈何地说:“先别管直播源的事儿了吧,反正也只能等黄云鲲回来才能弄。我关心的是陈工你和肖平安那边的进展怎样了?”

“我这边传输改成tcp的方式以后就稳定了,” 陈速赶紧报告着好消息,“肖平安那边据说也快开发完了。”

“那好吧,” 林象南总算是听到了一个好消息,“咱们现在去洪总办公室,把你发现的这个问题跟他汇报一下吧。现在他要求直播只要有问题就要第一时间告诉他。”

到了洪武青那儿一说,也没有别的办法,只能是等黄云鲲回来再解决吧。洪武青望向陈速问着:“听说你这边把传输协议改成tcp了是吗?效果怎样?”

“跑了一晚上,没有出过问题。” 陈速这话答得很响亮。

“哦,那挺好,” 洪武青点 了点头,“但一晚上还不够,还要测得更长些。你回去告诉詹季明,跑一轮7x24小时的,然后整理一份测试报告给我。”

陈速领命出来,立即就找到詹季明,把洪武青的意思告诉给了他。詹季明一点头就开干去了。说实话,陈速心里头倒是觉得洪总有些多虑了,这都跑一晚上了都没问题,哪还能出什么幺蛾子。不过,现实还是再一次教训了陈速,在软件开发的世界里,没有什么是不可能的。

基础库的问题

长时间测试跑到第三天的时候,詹季明来找陈速了,开口就说:“陈总,今天出了一个丢包的日志,你过来看下吧。” 陈速起初是不太相信,跟着詹季明过去一看,日志里这个错误信息十分扎眼。这会儿正是下班,洪武青出来路过看见他们凑在一起,也上来问着遇到什么问题了。

陈速还有些不甘心,但也只好如实说了,从日志里看到出了一个丢包的差错。洪武青一听,就说:“那肯定是程序哪里有个不容易复现的bug,你要回去把代码好好排查一遍。”

“会不会是tcp传输也会丢包呢?” 陈速傻乎乎地问了这么一句。然后他就发现洪武青看着他就像看一个外星人那样,并说:“tcp丢包?那不可能的,tcp传输要么延迟大些,总能传过来;要么就是超时直到断开连接。所以传输协议这一层不用去怀疑,赶紧在你自己的代码里找问题吧。”

陈速闻言吐吐舌头,赶紧回自己座位上调试代码去了。这问题确实不好排查,因为大多数时间都不出错。对于修复bug来说,能复现的都不叫事,最怕的就是幽灵一般不时出没的。陈速熬了一晚上,也仅将bug的范围定在了自己写的基础库上。

竟然是基础库的问题。陈速望着渐渐发白的天际,觉得头痛无比。因为肖平安也在使用这个库,这下他要是听到这消息不得把自己扔到通惠河里去么。但这会儿陈速脑子也转不动了,不管了,索性现在就在地板上蜷一会儿,等他来了再说。

肖平安听陈速说完问题之后表情倒是比较平静,只是问道:“那你这边什么时候能修复这个bug?”

“一周吧。” 陈速其实心里也没底,只能先给出一个时间再说。

“行,等你改好了把代码提交以后,再通知我更新吧。” 肖平安只说了这么多,又埋头到他自己的工作里去了。

陈速坐下来后也实在扛不住了,就找梁江峰请假了:“梁工,我昨晚熬了一宿,这会儿实在盯不住了。我上午回去睡一觉,下午再过来行吧?”

“啊,你昨晚没回去呀?” 梁江峰有些吃惊,“那你赶紧回去睡一觉吧,工作再忙也得保重好身体。要是下午不想来也没关系的。” 听着这话,陈速心里觉得有一股暖意流过,打了个招呼就回劲松的住处去休息了。

下午陈速吃过午饭就又回公司了,现在还远不是能躺下来休息的时候,再加把劲吧。这一天过去也没啥进展,陈速下了班蔫头耷脑地往地铁站走,没想到肖平安在后面赶了上来。这段时间肖平安加班比陈速还狠,基本上都是公司最后一个离开的。陈速则是因为住得离公司近,回家以后还能接着干,所以早走晚走都无所谓。

“兄弟你那边怎么样了?” 陈速有气无力地问着。

“还行,差不多快了。” 肖平安不知重复过多少次这样的回答。

“怪不得看你今天这么早走,看来真是差不多了啊。” 陈速以为是这么回事。

“没有,我家里有点事,今天得早回去。” 肖平安解释着。

“这样是吧,” 陈速这一次打算问明白些,“你那边什么时候能提交测试呢?” 。

“下周吧。” 肖平安这么说,陈速也只能接受了。

“现在还有什么问题吗?” 陈速继续问着。

“功能上没什么问题,” 肖平安顿了一下,又接道,“就是代码结构有些乱,等调稳定了,我要专门找时间做一次重构。”

听他这么说,陈速心里隐约有些不安起来。因为陈速知道重构代码的最好时机,不是在写完所有功能之后,而应该是开发完一个模块后随手就要进行。陈速自己的习惯则是上午实现功能,下午就要做重构,只有这样才能保证代码的质量。否则时间长了,光回忆实现逻辑就得费半天神。况且代码在已经整体完成的情况下,重构的工作量和重写是差不了多少的。陈速嗅到了一丝危险的味道,但他现在还无法明确地看出来。

不过,事实会再一次证明墨菲法则的正确性,陈速的担心在不久以后就成了另一场恶梦。

仙人掌之歌——坑,各种坑(2)相关推荐

  1. hive 增加表字段语录_Hive改表结构的两个坑|避坑指南

    Hive在大数据中可能是数据工程师使用的最多的组件,常见的数据仓库一般都是基于Hive搭建的,在使用Hive时候,遇到了两个奇怪的现象,今天给大家聊一下,以后遇到此类问题知道如何避坑! 坑一:改变字段 ...

  2. 【吐血经验】在 windows 上安装 spark 遇到的一些坑 | 避坑指南

    在 windows 上安装 spark 遇到的一些坑 | 避坑指南 最近有个活:给了我一个阿里云桌面(windows 10系统),让我在上面用 scala + spark 写一些东西. 总是报错不断, ...

  3. Spark踩坑填坑-聚合函数-序列化异常

    Spark踩坑填坑-聚合函数-序列化异常 一.Spark聚合函数特殊场景 二.spark sql group by 三.Spark Caused by: java.io.NotSerializable ...

  4. [iOS]贝聊 IAP 实战之见坑填坑

    大家好,我是**贝聊科技** 的 iOS 工程师 @NewPan. 这次为大家带来我司 IAP 的实现过程详解,鉴于支付功能的重要性以及复杂性,文章会很长,而且支付验证的细节也关系重大,所以这个主题会 ...

  5. Cobalt Strike折腾踩坑填坑记录

    文章目录 0X00 背景 0x01 基础原理 0x02 关于破戒 Exit暗桩 0x03 CDN+反代隐藏Teamserver Domain Fronting Proxy 0x04 DNS上线 一个未 ...

  6. 仙人掌之歌——坑,各种坑(3)

    文章目录 客户端播放器兼容性有问题 不定期就会崩溃 谁不是一堆事呢 客户端播放器兼容性有问题 黄云鲲一回来,林象南就叫上了陈速.钟展鹏一块儿到洪武青办公室开会.这个问题主要由陈速来描述,钟展鹏在一边进 ...

  7. 仙人掌之歌——坑,各种坑(1)

    udp传输不靠谱 陈速评估了下直播各个服务中,最关键的恐怕就是各层节点之间的数据传输稳定性了.起码在服务器之间传输数据是不能有丢包和乱序现象的,陈速想明白之后,就把肖平安和詹季明一块儿叫到小会议室里商 ...

  8. 仙人掌之歌——进军To C直播(1)

    要解决的问题 只过了两天,洪武青就叫陈速和梁江峰到他办公室去一趟了.进了办公室,钟展鹏和葛栋山也已经在里面了.陈速暗道这看来就是要规划直播CDN的新任务.洪武青示意大家都坐下,这会儿连沙发带椅子,四个 ...

  9. JWT 入坑爬坑指南

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「程序新世界」 越来越多的开发者开始学习 ...

最新文章

  1. Visual Studio2005无法启动web调试的真正原因
  2. HTML DOM Table 对象
  3. 可恶的.NET FRAME,将一切变得更简单,还是更复杂?
  4. Matlab之logspace
  5. Java基础 【Arrays 类的使用】
  6. Java面试之锁-自旋锁
  7. 多线程 简单的实现案例
  8. OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )
  9. JAVA设计模式之【职责链模式】
  10. PageHelpe的分页不起作用
  11. VC调用Lingo并转化成 QT 工程编写一个特定的解决线性问题的软件
  12. CSS标准颜色参考表
  13. css自己做条纹背景,用css实现条纹背景
  14. Xshell 安装教程以及踩过的坑
  15. unity物体移动的几种常用方式
  16. 主键外键超键候选键区别以及联系
  17. 基于Python的电商数据分析系统
  18. allegro铜皮倒圆角
  19. 信奥赛一本通 C++题解 2041【例5.9】新矩阵
  20. 魔兽世界修改服务器配置文件,魔兽世界怀旧服出生参数修改和技能学习

热门文章

  1. 分享155个ASP源码,总有一款适合您
  2. 定时/计数器的原理和应用
  3. pci和pci_PCI合规性
  4. CSS3颜色值RGBA与渐变色
  5. Ristretto 简介:一个高性能 GO 缓存
  6. RKMEDIA--AI/AO的使用
  7. matlab乖离率计算,乖离率怎么算,计算公式是什么?
  8. 【Linux】进程状态(阻塞、挂起、僵尸进程)
  9. 游戏帧同步和状态同步
  10. 跨部门的高效沟通与协作