在去年我們還未開始開發基於node.js的新版本EasyDarwin RTSP開源流媒體服務器的時候,我寫了一篇博客《對EasyDarwin開源項目后續發展的思考:站在巨人的肩膀上再跳上另一個更高的肩膀》,思考了為什么要基於node.js來做像RTSP、SIP、GB28181這種信令協議的流媒體服務器,現在新版本的EasyDarwin(based on node.js)已經全線替換了原來基於Apple的Darwin Streaming Server的流媒體服務器版本,體驗及效果非常好,而且相較於之前的C++版本,新版本極大地降低了開發門檻,很多開發者都踴躍加入了進來!
總結與思考
“
EasyDarwin是從安防行業發展過來的,經過多年的發展,還是有非常強的安防屬性在里面,我一直在思考EasyDarwin的發展定位,首先,我們要做的是Easy,如何Easy,一方面是使用者要Easy,非常Easy進行編譯、部署和運行,另一方面,如何二次開發Easy:
使用Easy:這個就要靠完善的使用文檔、視頻教程、簡易的部署向導來實現了,這個相信是在現有架構基礎上可以再繼續優化的;
二次開發Easy:這個就費勁了,現在的情況是一個企業要找那么一兩個會C++的開發,已經非常困難了,要對EasyDarwin做一點點的功能擴展,難於登天!當然,這不僅僅是EasyDarwin是這樣的,國內、國外很多其他類型的開源項目都面臨了這個問題,使用方便,但查問題、改問題就找不到人手了;
還有一個問題,就是現在大部分的流媒體服務器沒有非常好的后台和權限管理功能,而這個又跟具體流媒體服務器是無關的,所以,做上吧,怕是雞肋,不做吧,感覺很深奧,入門困難;
”
以上都是之前的思考,現在看來,都是比較有前瞻性的:
- RTSP、SIP、GB28181這種文本類型的通信協議,是非常適合於js這種語言進行解析和處理的;
- 前端與后端的結合更加方便了,實際上,我們在開發流媒體系統比較多了之后就會發現,大部分的流媒體系統,其實核心底層的東西並不多,大部分都還是上層的業務邏輯的控制,這種情況下,采用js、Python、golang這些語言都能很快搞定業務邏輯,比C++來開發效率要高多了;
- 再也不用擔心底層性能和穩定性的問題了,都是站在巨人的肩膀上,只要安心做邏輯就好了;
后續我們會繼續按照之前的思路往前推進:
使用類似於node.js框架進行網絡I/O;
使用C++編寫node插件進行流媒體關於復雜計算類型的功能;
使用node.js后端語言進行管理頁面和權限控制的開發;
優勢:
即使EasyDarwin上層的邏輯開發停滯了,但是node.js體系還在推進,也就是說EasyDarwin的底層還是在不斷優化和發展的;
不再僅僅是C++的開發才能參與到項目的開發了,各種前端、后端的開發都能加入進來了,開發群體和開發門檻大大改觀;
node.js配套組件非常多,很多接口化、管理化、數據庫相關的操作,都不用再經過底層C++了,上層直接就搞定了,底層只需要關注核心流媒體部分的功能!
獲取更多信息
Copyright © EasyDarwin.org 2012-2017

