DLNA整合了一套用于家庭分享图片以及音视频的规范,在这规范中UPnP协议担任着设备发现与控制以及媒体发现与控制的重要功能。
1. 什么是DLNA
有时候会想,我在用手机看视频的时候或者听音乐的时候,觉得手机的屏幕不够大,声音不够立体。那么我可能会把手机里的视频先拷到电脑上,然后再在电脑上播放观看。
这里就多出了这个步骤,需要我先把视频拷到电脑上去才能看,如果我手头没有数据线,那岂不是很麻烦了。于是,这种场景被越来越多的人发现,发现的人多了,问题多了,自然会形成一个消费市场,各种形形色色的解决方案都出来了。此时便有人站出来说:“大家听我说,我可以搞一套规范,以后大家都按照这个来做好了”,众人鼓掌。
好了,这个规范就是DLNA。但事实上并没有创造新的技术,只是把已有技术整合起来,成为一种局域网分享的解决方案罢了,大家都来遵守这个规范。
DLNA全称为DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟),旨在解决个人电脑,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能,为设备厂商提供了用于构建互操性数字化家庭设备和平台的必要信息
我们的设备(PC,手机,电视等)可以通过DLNA在局域网内进行多媒体(图片以及音视频)的分享,这就是DLNA的功能,就是DLNA。有了DLNA,我们可以把音乐投送到音质更好的音响上去,可以把视频投送到屏幕更大的电视上去。
虽然说DLNA标准已经停止更新,但是我们可以这样去理解:DLNA是使用了很多已有的基础协议整合的一套规范,按理来说这些协议经过几十年的迭代,已经相当稳定,DLNA无法在已有的协议上再做创新。但是时代是在发展的,而DLNA只是整合协议而已,并没有新技术的产生,使用之前已有的协议毕竟会产生瓶颈,无法满足新设备的发展需求,比如我们想要更低的延迟,更高的画质等等,这可能就需要新技术来实现这些功能。但事实上,实现DLNA的设备已经数以亿计,在不需要更高体验的前提下,DLNA依然是不错的选择。
2. DLNA架构
DLNA为设备和软件之间定义了一个可互相通信的体系架构。它包括物理媒体,网络传输,设备发现与控制,媒体管理与控制,媒体格式,媒体传输协议和远程用户界面,下表是各功能组件和相关技术的简单描述:
(1) 连接
DLNA所使用的网络连接方式,以太网,无线网(包括直连),同轴电缆多媒体等。
(2) 网络
DLNA所使用的网络协议栈,包括IPv4和IPV6。
(3) 设备发现与控制
DLNA使用UPnP作为设备发现与控制的协议框架,是DLNA中相对重要的一层。
(4) 媒体管理与控制
DLNA所使用媒体管理与控制的方式,UPnP Audio/Video (AV)等技术来实现。
(5) 媒体格式
DLNA设备所必须实现的媒体格式以及可选媒体格式。
(6) 媒体传输
DLNA设备所使用的媒体传输方式,使用HTTP或者RTP实时传输协议来实现。
(7) 远程用户界面
DLNA定义了网络设备之间的UI内容是如何被描述,格式化及传输的,也包括不同设备之间的事件发送机制及UI 更新机制。
(8) 设备配置文件
DLNA使用商业视频配置文件(CVP)来定义不同相关设备信息。
3. DLNA的功能
DLNA具备如下功能:
1.探索:网络中寻找无配置的设备并计算出其提供的性能
2.浏览:浏览内容并通过不同方式分类
3.搜索:在设备上寻找特定内容
4.分流:全网发送多媒体内容
5.服务:网络通知通讯录
6.打印:向网络附属打印机发送内容
7.控制:使用网络改变设备状态
8.上传:发送内容到服务器
9.下载:接收并储存内容
10.自动译码:改变分辨率或内容格式来确保设备正确翻译
11.服务保证:区分网络交通优先次序,若网络超载,优先放弃最弱的优先权
12.目前为止DLNA能够识别最大文件数为8000个。
4. DLNA设备分类
设备可以通过DLNA在局域网中进行多媒体的分享,那么必然不同的设备是需要扮演不同的角色的。信息不会平白无故产生,也不会平白无故消失,家庭中的对应设备扮演了信息的生产者和消费者。
通常在家中,可能有很多设备,有电脑,电视,手机,音响等,林林总总各式各样的。如果我们要把手机中的视频投送到电视上去,显然在这个过程中需要有设备发送,有设备接收,有信息传递,那么必须要有不同的角色处理这些事情才能达到我们投送的目的。同时,在DLNA中也约定了一些可以使用的信息(媒体)格式,比如JPEG,MP3,MP4等,只有约定好了的信息格式才可以进行传输。
DLNA设备主要可以分为4种角色,DMS,DMP,DMR和DMC,下表对该4中角色进行描述:
5. DLNA中的UPnP
在网络环境中,这些设备并不能互相认识,不知道谁是电视,谁是电脑,谁又是音响,那这样就相当麻烦了。在DLNA中使用UPnP来达到这一需求,如果你不知道什么是UPnP也没有关系,我们可以大致的去理解它:UPnP是DLNA整合的协议之一,DLNA使用它去发现和控制设备并对媒体进行管理,这就是UPnP在DLNA中做的工作。
UPnP可以帮助设备认识其他设备,并且配置允许的情况下还可以控制其他设备。UPnP为了实现这些功能主要分为以下步骤:寻址,发现,描述,控制,事件触发以及展示。
寻址是UPnP的第一步,它帮助设备在局域网中获取一个IP地址,有了IP地址后其他设备可以很方面的向你发送信息,就像知道了你的地址可以给你寄信一样。
如果这个设备是向其他设备提供服务的,那么在它被添加到网络后,会多播发送大量的消息,告知其他设备它所具有的功能;如果这个设备是提供控制功能,那么在它被添加到网络中后,它同样会通过多播的方式去发现,搜索感兴趣的设备,服务。打个比方,你需要去集市上买些苹果,当你来到热闹的集市上,各种小贩的播音喇叭都在叫卖,不同的小贩叫卖不同的商品,我们可以理解为这就是他们在宣告他们所提供的不同服务,如果你感兴趣,你就会他的摊点购买你想要的苹果。这个场景中,小贩就是通过多播的方式来宣告他提供的服务,感兴趣的顾客都可以去他的摊点,让他提供服务。唯一有差别的就是在你刚到集市上的时候并没有大喊一声你要买苹果,但实际上你通过观察后,已经在心里开始搜索这个集市上卖苹果的摊点了。
你通过小贩的广播,找到了你感兴趣的摊点。但是当你到了摊点,你知道的仅仅是他在卖苹果,你还不知道他卖的是什么苹果,价格是多少,品质怎么样,所以你又开始和小贩进行交谈,了解你想要的具体信息,然后你就知道你在他的摊点可以买到什么样的苹果。这就可以理解为UPnP中的描述功能,一个设备知道另一设备的服务之后,会想去了解他提供服务的具体信息,了解之后控制设备才能知道他可以对这个服务做些什么事情。如果这个服务没有提供的功能,那么很显然,控制设备也就无法控制了。
UPnP控制在买苹果的场景中可以理解你找到你想要的苹果之后,让小贩帮你称重,包装的过程,小贩收到你的“控制指令”后开始执行。比如你要买5斤苹果,在称重的过程中,小贩都会和你反馈少了多了,需要拿出几个或者放进几个。
我们在这里并不讲UPnP具体的实现过程,只是为了让你能清晰的明白UPnP的服务过程是怎样的,DLNA可以通过UPnP进行发现与控制设备和媒体管理。如果你感兴趣可以阅读这篇文章UPnP协议实现过程。