关于DLNA框架

和菜鸟一起学linux之dlna的学习记录-LMLPHP

1、Networking & Connectivity

为了解决物理设备连通问题,

主要依赖于Ethernet,802.11,Ipv4协议栈,Ipv6协议栈。

TCP/IP协议栈必须包含Ipv4,TCP,UDP,DHCP,Auto-IP,ARP,ICMP。

2、Device Discovery&Control

为了解决设备发现和互操作问题,实现所谓的“设备零配置”。比如通过电视播放PC媒体的时候,电视设备需要“自动知道”PC媒体服务器的存在,以及其能提供何种服务。

主要依赖于UPnP设备体系结构标准,XML,SOAP,HTTP等。

3、Media Management

为了解决媒体的标志,管理和分发。

主要依赖于UPnP AV v1.0的规格

ContentDirectory(DMS):

浏览/查找所有的媒体文件

包含了metadata,例如标题,创建者,分辨率等。

管理内容,比如创建播放列表,添加新的项目。

RenderingControl(DMP):

控制rendering的特性,比如音量,背光等。

ConnectionManager(DMP,DMS):

列举支持的传输协议和数据格式

列举已经存在的UPnP AV流

AV Transport(DMP,DMS):

控制活动和位置,比如播放,暂停,快进,快退等。

和菜鸟一起学linux之dlna的学习记录-LMLPHP

和菜鸟一起学linux之dlna的学习记录-LMLPHP

4、Media Transport

解决服务端如何“流化”媒体内容到媒体展示端。

依赖于HTTP1.1,通过关闭TCP连接关闭媒体流。

和菜鸟一起学linux之dlna的学习记录-LMLPHP

5、Media Formats

解决媒体内容如何编码和标志。

定义了media format profiles以及媒体交互规则。

和菜鸟一起学linux之dlna的学习记录-LMLPHP



miniserver具体的流程如下:

和菜鸟一起学linux之dlna的学习记录-LMLPHP





DMR回调处理函数

和菜鸟一起学linux之dlna的学习记录-LMLPHP





DMS回调处理函数

和菜鸟一起学linux之dlna的学习记录-LMLPHP





05-11 13:52