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

四核64位開源主板ROC RK3308B CC Plus規格書

評論