接觸DLNA協(xié)議也有7⑻年了。
最早接觸DLNA是在2007年, 為P公司做DLNA方案, 厚厚的1000多頁協(xié)議全部看了1遍。然后是接觸N公司提供的手機(jī)版DLNA DMC實(shí)現(xiàn)。
最近幾年是S公司的DLNA實(shí)現(xiàn)和B公司的實(shí)現(xiàn)。
這幾個(gè)公司都是大公司, 很成心思的是,他們?nèi)坎挥镁W(wǎng)上搜的libupnp,ushare,miniDLNA,全部自己造了1次輪子。
這可能也跟大公司財(cái)大氣粗有關(guān)系, 還有1點(diǎn)比較成心思的是他們均用C語言實(shí)現(xiàn)。
網(wǎng)上很多人說C++是流媒體的老大, 就我個(gè)人工作經(jīng)驗(yàn)來看, 流媒體領(lǐng)域還真沒C++甚么位置, 核心的代碼均被C霸占。
DLNA協(xié)議大致可以分為3層
第1層為裝備發(fā)現(xiàn)層 基于Upnp
第2層為服務(wù)發(fā)現(xiàn)層,主要是SOAP, 這個(gè)和WebService實(shí)際上是差不多的。
第3層為流媒體服務(wù), 傳輸協(xié)議為HTTP1.1, RTP1直在研究很少被實(shí)際使用, 然后是媒體格式和Profile定義。
實(shí)際項(xiàng)目中,主要工作集中在以下2個(gè)方面:
1> 裝備發(fā)現(xiàn)的調(diào)試, 需要開發(fā)者熟習(xí)網(wǎng)絡(luò)抓包和SSDP
2> 媒體格式的MIME和Demux, 各種播放問題調(diào)查
就個(gè)人來講, 感覺DLNA目前最大的問題是有限的帶寬下,如何支持多個(gè)裝備同時(shí)1080P播放。
與云服務(wù)器如何融會(huì)。