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。
手持设备,相比家庭设备,手持设备的功能相对简化一些,支持的媒体格式也会不同。
-
M-DMS。与 DMS 类似,如移动电话,随身音乐播放器等。
-
M-DMP。与 DMP 类似。比如智能移动电视。
-
M-DMD。移动多媒体下载设备。如随身音乐播放器,车载音乐播放器和智能电子相框等
-
M-DMU。移动多媒体下载设备。如摄像设备和手机等。
-
M-DMC。与 DMC 类似。如 DA,智能遥控器。手持设备没有定义 M-DMR,因为手持设备会讲究便利性,会附加查找控制功能,要不然就只是普通的移动电视或收音机了。
联网支持设备。
-
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文章
6105浏览量
36486 -
Firefly
+关注
关注
2文章
544浏览量
8698 -
RK3308
+关注
关注
1文章
40浏览量
1637
发布评论请先 登录
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规格书

评论