我的一些學習經驗: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 中旬
相關文章
- 我的英語學習經驗
- 我的一點學習經驗 (轉)
- 我通過OCP認證的學習經驗
- 真實記錄我的學習linux的經驗Linux
- 分享一些我自己的docker使用經驗Docker
- 我2年學習程式設計的經驗總結程式設計
- 我的前端學習經歷前端
- java的個人學習經驗Java
- docker學習系列16使用過程的一些經驗總結Docker
- 一些Java學習經驗分享,幫助你更好更快入門Java
- 專案學習經驗
- Oracle 學習經驗談Oracle
- SAP學習經驗談
- 我在Facebook學到的10個經驗
- 我的Go語言學習經歷Go
- 分享我曾經的學習和找工作經歷
- C# 學習經驗分享C#
- 淺談SAP學習經驗
- 我早年在Google學到的10條經驗Go
- 關於強化學習的事後經驗回放,我是這樣理解的強化學習
- 從零基礎到拿到網易Java實習offer,談談我的學習經驗Java
- 給同學們分享一些面試經驗面試
- 我大一學習C++的經歷C++
- kafka-一些我在學習中的理解Kafka
- .NET的C# 學習經驗總結C#
- 強化學習-學習筆記10 | 經驗回放強化學習筆記
- CCNA初學者學習經驗!(轉)
- 【原】深度學習的一些經驗總結和建議 | To do v.s Not To Do深度學習
- 為什麼你學不會遞迴?告別遞迴,談談我的一些經驗遞迴
- UWP學習——來自前輩們的經驗
- 過來人的大資料學習經驗大資料
- 【經驗】學習android開發的步驟Android
- 關於Canvas的一些經驗Canvas
- 編譯配置的一些經驗編譯
- 利用索引的一些經驗(SQLSERVER)索引SQLServer
- Matt Cutts:我早年在Google學到的10條經驗TTSGo
- 深度學習模型設計經驗分享深度學習模型
- 前端學習路線及面試經驗前端面試