首页 > 代码库 > DLNA的一些体会

DLNA的一些体会

接触DLNA协议也有7-8年了。


最早接触DLNA是在2007年, 为P公司做DLNA方案, 厚厚的1000多页协议全部看了一遍。然后是接触N公司提供的手机版DLNA DMC实现。

最近几年是S公司的DLNA实现和B公司的实现。

这几个公司都是大公司, 很有意思的是,他们全部不用网上搜的libupnp,ushare,miniDLNA,全部自己造了一次轮子。

这可能也跟大公司财大气粗有关系, 还有一点比较有意思的是他们均用C语言实现。

网上很多人说C++是流媒体的老大, 就我个人工作经验来看, 流媒体领域还真没C++什么位置, 核心的代码均被C霸占。


DLNA协议大致可以分为3层

第一层为设备发现层 基于Upnp

第二层为服务发现层,主要是SOAP, 这个和WebService其实是差不多的。

第三层为流媒体服务, 传输协议为HTTP1.1, RTP一直在研究很少被实际使用, 然后是媒体格式和Profile定义。


实际项目中,主要工作集中在以下2个方面:

1> 设备发现的调试, 需要开发者熟悉网络抓包和SSDP

2> 媒体格式的MIME和Demux, 各种播放问题调查


就个人来说, 感觉DLNA目前最大的问题是有限的带宽下,如何支持多个设备同时1080P播放。

与云服务器如何融合。

DLNA的一些体会