我的一些学习经验:ONVIF

李迟按:

这个文章讲讲笔者学习ONVIF的经历。

其实,早在2013年就接触了ONVIF。当时研发的新平台任务有ONVIF的需求。当时我记得自己使用GSOAP生成ONVIF框架代码,还录制了一个视频,在会上讲给同事听。后来利用业余时间看了ONVIF标准,一开始看得不明不白,基本不懂在看什么,看了2遍,发现了些门道,再看一遍,发现原来不过如此。由于公司在该新平台研发任务之前已经有其它部门同事实现了ONVIF,所以项目上直接使用。我用业余时间看,主要还是因为对此有兴趣;二来因为公司项目使用的是网络上人家生成好的代码。我不习惯直接使用人家的东西,必须要自己弄明白才行。后来“人家的代码”一直被使用着,公司组织变化后,ONVIF和流媒体任务落到部门所管,不过是其它同事维护着。所以我对ONVIF的了解,止步于此。

去年,公司参加ONVIF组织的一次会议,结果惨败,除了看视频外,其它功能基本没实现。公司决策对ONVIF进行重新梳理并要求在春节前部署到所有产品上(当然是不可能的)。当时老大是安排给另一位同事进行。再后来,领导看到任务量大,我作为当时部门唯一“机动人员”,光荣地被领导安排协助任务。终于在春节后完成了第一阶段工作。

后来,这个同事被派到大腿部门工作了,我光荣地接手ONVIF的第二阶段任务。但还是在该同事主导下进行,因为老大不放心我这么一位新手接手,怕搞乱重构后代码架构。实际上,我必须有能力独立承担此事。年中时,该同事果然终于转岗到那个部门了,我不出意料外地接手ONVIF的全部工作。自此,除了驱动、Linux系统,我还有ONVIF的任务。

在作为机动人员参与协助ONVIF任务后,又重新看了新版本的标准文档。由于这次真的要写代码实现,所以看得比较细。网上有很多讲ONVIF的文章,但很多是重复的,且是老版本的。不过作为入门资料还是有作用的。

经过较长时间编码的洗礼,对ONVIF有进一步的认知。比如IP地址子网掩码使用的是数字形式而不是常见的字符串。由于ONVIF不同命令使用的字段参数不固定,所以我们引入了C++的STL。像IP地址允许有多个;视频分辨率允许有多个,等等。这段时间也使得我在实际编码中尽量向C++ STL靠拢。

后来,经过考虑,决定在业余时间自己实现一个ONVIF客户端。

这样,对于ONVIF服务端和客户端都进行实践了,对此标准掌握也更加牢固。

当然,限于资源,只能实现了设备管理、媒体服务以及图像服务,其它如PTZ和事件监控,等到条件成熟或公司安排再进行了。

李迟 2016.10 中旬

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,679评论 25 708
  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 10,862评论 3 59
  • 好久没有去看花。自从春天绚烂热闹的花事过完。盛夏来,又该有什么花开? 双海湖北岸。远远望着一片粉,一片白。停车下来...
    清和qinghe阅读 1,768评论 5 5
  • 琉璃不改江山易 姝颜何患粉黛离 麾下三千破军门 孤王紫气绕皇臣 屠戮苍生未曾惧 枯骨二尺不留坟 一念燕山五万里 为...
    进食巨人阅读 218评论 0 0