DLNA 的全稱是 DIGITAL LIVING NETWORK ALLIANCE(數(shù)字生活網(wǎng)絡(luò)聯(lián)盟)。成立于 2003 年 6 月 24 日, 其前身是 DHWG (Digital Home Working Group 數(shù)字家庭工作組),由 Sony、Intel、Microsoft 等發(fā)起成立,旨在解決個(gè)人 PC ,消費(fèi)電器,移動(dòng)設(shè)備在內(nèi)的無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)的互聯(lián)互通,使得數(shù)字媒體和內(nèi)容服務(wù)的無(wú)限制的共享和增長(zhǎng)成為可能。
DLNA 將其整個(gè)應(yīng)用規(guī)定成 5 個(gè)功能組件。從下到上依次為:網(wǎng)絡(luò)互連,,網(wǎng)絡(luò)協(xié)議,媒體傳輸,設(shè)備的發(fā)現(xiàn)控制和管理,媒體格式。
這類設(shè)備指家庭設(shè)備,具有比較大的尺寸及較全面的功能,主要與移動(dòng)設(shè)備區(qū)別開(kāi)來(lái),下屬 5 類設(shè)備:
-
Digital Media Server(DMS)。數(shù)字媒體服務(wù)器,提供媒體獲取、記錄、存儲(chǔ)和輸出功能。同時(shí),內(nèi)容保護(hù)功能是對(duì) DMS 的強(qiáng)制要求。DMS 總是包含 DMP 的功能,并且肯能包含其他智能功能,包括設(shè)備/用戶服務(wù)的管理;豐富的用戶界面;媒體管理/收集和分發(fā)功能。DMS 的例子有 PC、數(shù)字機(jī)頂盒(附帶聯(lián)網(wǎng),存儲(chǔ)功能)和攝像機(jī)等等。
-
DMP。數(shù)字媒體播放器。能從 DMS/M-DMS 上查找并獲取媒體內(nèi)容并播放和渲染顯示。比如智能電視、家庭影院等。
-
DMC。數(shù)字媒體控制器,查找 DMS 的內(nèi)容并建立 DMS 與 DMR 之間的連接并控制媒體的播放。如遙控器。
-
DMR。數(shù)字媒體渲染設(shè)備。通過(guò)其他設(shè)備配置后,可以播放從 DMS 上的內(nèi)容。與 DMP 的區(qū)別在于DMR 只有接受媒體和播放功能,而沒(méi)查找有瀏覽媒體的功能。比如顯示器、音箱等。
-
DMPr。數(shù)字媒體打印機(jī),提供打印服務(wù)。網(wǎng)絡(luò)打印機(jī),一體化打印機(jī)就屬于 DMPr。
手持設(shè)備,相比家庭設(shè)備,手持設(shè)備的功能相對(duì)簡(jiǎn)化一些,支持的媒體格式也會(huì)不同。
-
M-DMS。與 DMS 類似,如移動(dòng)電話,隨身音樂(lè)播放器等。
-
M-DMP。與 DMP 類似。比如智能移動(dòng)電視。
-
M-DMD。移動(dòng)多媒體下載設(shè)備。如隨身音樂(lè)播放器,車載音樂(lè)播放器和智能電子相框等
-
M-DMU。移動(dòng)多媒體下載設(shè)備。如攝像設(shè)備和手機(jī)等。
-
M-DMC。與 DMC 類似。如 DA,智能遙控器。手持設(shè)備沒(méi)有定義 M-DMR,因?yàn)槭殖衷O(shè)備會(huì)講究便利性,會(huì)附加查找控制功能,要不然就只是普通的移動(dòng)電視或收音機(jī)了。
聯(lián)網(wǎng)支持設(shè)備。
-
Mobile Network Connectivity Function (M-NCF)。移動(dòng)網(wǎng)絡(luò)連接功能設(shè)備。提供各種設(shè)備接入移動(dòng)網(wǎng)絡(luò)的物理介質(zhì)。DLNA 的希望是全部實(shí)現(xiàn)無(wú)線化。
-
Interoperability Unit (MIU)媒體交互設(shè)備。提供媒體格式的轉(zhuǎn)換以支持各種設(shè)備需要。
DLNA 架構(gòu)是個(gè)互聯(lián)系統(tǒng),因此在邏輯上它也類似 OSI(Open System Interconnection,開(kāi)放系統(tǒng)互連) 七層網(wǎng)絡(luò)模型。
DLNA 架構(gòu)分為如下圖 7 個(gè)層次:
-
NetWorking Connectivity 網(wǎng)絡(luò)互聯(lián)方式:包括物理連接的標(biāo)準(zhǔn),有有線的,比如符合 IEEE802.3標(biāo)準(zhǔn)的 Ethernet;有無(wú)線的,比如符合 IEEE802.11a/g 標(biāo)準(zhǔn)的 WiFi,能做到 54Mbps,藍(lán)牙(802.15)等,技術(shù)都很成熟。現(xiàn)在 OFDM 和 MIMO(802.11n)已經(jīng)能做到 300Mbps 了,早就超過(guò)比較普及的 100Mbps的 Ethernet 了,只不過(guò)產(chǎn)品還沒(méi)有普及,以后肯定會(huì)用到。
-
NetWorking Stack 網(wǎng)絡(luò)協(xié)議棧:DLNA 的互聯(lián)傳輸基本上是在 IPV4 協(xié)議簇的基礎(chǔ)上的。用 TCP或者 UDP 來(lái)傳都可以。這一層相當(dāng)于 OSI 網(wǎng)絡(luò)層。
-
Device Discovery&Control 設(shè)備發(fā)現(xiàn)和控制。 這個(gè)層次是比較 essential 的,是 DLNA 的基礎(chǔ)協(xié)議框架。DLNA 用 UPnP 協(xié)議來(lái)實(shí)現(xiàn)設(shè)備的發(fā)現(xiàn)和控制。
-
Media Management 媒體管理。媒體管理包括媒體的識(shí)別、管理、分發(fā)和記錄(保存),UPnP AV Architecture:1 and UPnP Printer Architecture:1 這兩個(gè) UPnP 的文檔會(huì)說(shuō)明如何進(jìn)行媒體管理。
-
Media Transport 媒體傳輸:這一層用 HTTP(HyperText Transfer Protocol)超文本傳輸協(xié)議。就是平時(shí)我們上網(wǎng)用的媒體傳輸協(xié)議。HTTP 用 TCP 可靠傳輸,也有混合 UDP 方式的 HTTP。現(xiàn)在 HTTP 的最新版本是 HTTP1.1。可選協(xié)議是 RTP。
-
Media Formats 媒體格式。格式 Formats 在這里等同于編碼格式 Codec,平時(shí)我們說(shuō)的編碼格式比如 Mpeg-2,AVC,x264 就是視頻編碼格式;PCM,mp3(MPEG-2 Layer 3),aac,flac 就是音頻編碼格式。而 avi,rmvb,mkv 這些是媒體封裝格式,包含視頻音頻可能還有字幕流。比如一個(gè)常見(jiàn)的后綴為mkv 的文件,它的視頻 Codec 是 x264,音頻是 aac,它的視音頻編碼屬于 Mpeg-4 Codec Family。
前 3 節(jié)我們對(duì) DLNA 有個(gè)初步的了解,接下來(lái)我們來(lái)搭建一個(gè) DLNA 環(huán)境實(shí)現(xiàn) M-DMS (網(wǎng)易云音樂(lè)播放器)推送音樂(lè)到 DMR( ROC-RK3308B-CC )。
我們選擇 gmrender-resurrect 開(kāi)源代碼來(lái)搭建 DMR 角色,找一個(gè)手機(jī)安裝網(wǎng)易云播放器充當(dāng) M-DMS角色。
版本確認(rèn)
編譯之前我們先確認(rèn)一下 gmrender-resurrect 和關(guān)聯(lián)庫(kù) libupnp 的版本,確保版本符合以下要求:
-
gmrender-resurrect 版本:33600ab663f181c4f4f5c48aba25bf961760a300
-
Libupnp 版本:1.6.21
Buildroot 的 package 的配置信息在 Buildroot/package 文件下相應(yīng)的文件夾里,每個(gè)文件夾包含 3個(gè)文件,分別是*.in,*.hash,*.mk,其中
-
*.in文件記錄了 makeconfig 中的開(kāi)關(guān)宏
-
*.hash文件記錄了代碼壓縮包的 HASH 值和版本信息
-
*.mk文件記錄了代碼編譯信息和版本信息
例如查看gmrender-resurrect 版本信息:
可見(jiàn)版本信息為:33600ab663f181c4f4f5c48aba25bf961760a300。
配置
編譯之前按照以下步驟進(jìn)行配置:
-
設(shè)置環(huán)境變量,使用sourcebuildroot/build/envsetup.sh,選擇配置[1]
-
makemenuconfig,配置BR2_PACKAGE_GMRENDER_RESURRECT[=y]
編譯 gmrender-resurrect
-
如果SDK沒(méi)有編譯過(guò),請(qǐng)使用 build.sh 進(jìn)行全編譯。
-
如果SDK已經(jīng)編譯過(guò),可以使用makegmrender-resurrect-rebuild只編譯gmrender-resurrect及其相關(guān)庫(kù)。
gmrender-resurrect 單獨(dú)編譯完成之后, 需要使用 make 命令來(lái)生成 rootfs。隨后使用命令./mkfirmware.sh,生成rockdev/rootfs.img。
編譯完成之后,燒寫文件系統(tǒng)到板子,即可運(yùn)行。
DLNA啟動(dòng)前,板子需要已經(jīng)連接網(wǎng)絡(luò),否則 DLNA會(huì)啟動(dòng)失敗。可通過(guò)《手機(jī)配網(wǎng)》,配置WiFi網(wǎng)絡(luò);或者使用以太網(wǎng)。
啟動(dòng)DLNA:
看到Readyforrendering說(shuō)明啟動(dòng)成功等待手機(jī)連接( rk3308b 將作為 DMR 的名稱被手機(jī)看到)
將手機(jī)接入局域網(wǎng)(需要和 RK3308B 同一個(gè)網(wǎng)段),打開(kāi)網(wǎng)易云播放器,選擇一首歌曲。
看到上圖紅色箭頭指定的圖標(biāo),點(diǎn)擊打開(kāi)如下圖:
將會(huì)出現(xiàn) rk3308b, 選擇后這首歌曲將被推送到 RK3308B 上,手機(jī)進(jìn)入顯示播放的進(jìn)度條。
播放的過(guò)程中,你可以調(diào)節(jié)音量,切換上下曲。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6100瀏覽量
36278 -
Firefly
+關(guān)注
關(guān)注
2文章
542瀏覽量
8371 -
RK3308
+關(guān)注
關(guān)注
1文章
40瀏覽量
1565
發(fā)布評(píng)論請(qǐng)先 登錄
fireflyROC-RK3308B-CC--啟動(dòng)模式說(shuō)明
fireflyROC-RK3308B主板CC升級(jí)固件簡(jiǎn)介
fireflyROC-RK3308B主板CC教程簡(jiǎn)介
微雪電子RK3308主板CC啟動(dòng)模式介紹
微雪電子RK3308主板CC上手介紹
Core 3308Y固件ROC RK3308B CC PLUS Buildroot NoUI

Core 3308Y固件ROC RK3308B CC PLUS Buildroot MiniGUI

Core 3308Y ROC RK3308B CC PLUS Ubuntu Minimal固件

Core 3308Y固件ROC RK3308B CC PLUS Ubuntu Desktop固件

Core 3308Y固件ROC RK3308B CC PLUS支持Docker固件

Core 3308Y固件ROC RK3308B CC Buildroot NoUI固件

ROC RK3308B CC Buildroot Qt Desktop固件

IoT四核64位開(kāi)源主板ROC RK3308B CC規(guī)格書

四核64位開(kāi)源主板ROC RK3308B CC Plus規(guī)格書

評(píng)論