DLNA架构在机顶盒上播放云存储文件的实现

2024-02-19 11:48

本文主要是介绍DLNA架构在机顶盒上播放云存储文件的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要: 随着越来越多的数码设备,音像设备等对 UPNP 协议的支持和普及,业界对多媒体内容提供服务的需求越越来越强烈,为了实现遵循 UPNP 协议和 DLNA 架构来对多媒体内容提供服务,多媒体服务器 DMS 就成了唯一能够担当该需求的设备。本文着重介绍如何基于 DLNA 架构,来实现云端媒体文件在机顶盒上的播放。

 

关键词: DLNA , UPNP , DMS ,云存储, fuse

 

1 、 DLNA 简介

数字生活网路联盟 Digital Living Network Alliance (DLNA) 是一个由消费量类电子、行动电话,以及电脑厂商组成的联盟组织。该组织的目标在于建立一套可以使得各厂商的产品互相连接,互相适应的工业标准,从而为消费者实现数字化生活。目前联盟的成员包括飞利浦,三星,松下,惠普,索尼,微软,英特尔和诺基亚在内的众多业界领袖。

 

2 、 DMS 简介

Digital Media Server ( DMS )数字媒体服务器,提供了媒体档案的获取、录制、储存以及作为源头的能力。当然,有需要的话,多媒体档案的版权保护机制也可以被包含在内。 DMS 将会提供多媒体档案伺服的能力,提供诸如多种数字媒体播放装置的直接获取内容以及播放能力。这类型的装置包含了机顶盒、录放影机、具有多媒体伺服器功能的个人电脑、内含硬碟的家庭剧院、广播接收器、影像撷取装置等嵌入式设备。

 

3 、 UPNP 简介

UPnP 全名是 Universal Plug and Play ,主要是微软在推行的一个标准。简单的来说, UPnP 最大的愿景就是希望任何设备 ( 注意,是 ” 任何设备 ” ,像是电视,电脑,音响,冰箱,闹钟,电灯…. 等 ) 只要一接上网络,所有在网络上的设备马上就能知道有“新设备加入”,这些设备彼此之间能互相沟通,更能直接使用或控制它,一切都不需要设定,完全的 Plug and Play 。举个例子来说: 以前如果家中买了一台打印机,当你想要让这台打印机在家中的电脑都能用的时候,你需要先安装打印机,然后需要设定打印机共享,然后在去其他台电脑安装这台网络共享打印机,是不是很麻烦?如果你有 10 台电脑,想想看每台都要去设定的话,是不是很恐怖呢。现在,有了 UPnP后,只要你家的电脑跟打印机都支援 UPnP ,当你一将新买的打印机接上去的时候,所有在网路上的电脑都会发现有一台打印机可用,一切的设定都不需要,马上就能直接用了,完全 Plug and Play!听起来是不是很棒,这就是 UPnP 希望打造的环境,让一切简化,提升我们的生活品质,因此UPnP 主要的诉求是打造“家庭网路 (Home Network) ”的设定自动化。

 

4 、云存储简介

       云存储是在云计算 (cloud computing) 概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。

 

5 、DLNA 的数据传输机制

  DLNA 标准是基于原有网络架构上的中界层,主要是能让支持此层定义的设备可以相互沟通,而不需另外做其他的设定动作,以1.0 版的DLNA 标准来说,就支持了Ethernet(IEEE803.3u) 与Wi-Fi(802.11 a/b/g) ,作为DLNA 标准设备,网络的支持算是必备的。

  至于在各设备之间的相互侦测,则是采用UPnP 标准。DMP 设备通过UPNP 机制来搜寻网络上可相互匹配的DMS 装置,成功连接之后便可以进行后续的播放或传输动作。这个动作是全自动的,因此使用者无须进行任何干涉。而在媒体内容的发现方面,也同样是采用UPnP 机制。而在传输上,目前仍仅止于支持HTTP 标准协议,随后的版本才会将RTP(Real-time Transport Protocol) 传输协议加入。

  而在可传输的多媒体格式上,则分为必备支持以及可自选支持两方面,在必备支持方面,图形档案格式为JPG 、音效格式为LPCM ,影片格式为 MPEG-2 。而在可选择格式方面,图形档案为PNG 、GIF 与TIFF ,音效压缩格式则是AAC 、AC-3 、ATRAC3Plus 、MP3 、WMA9 等等,至于在影片压缩格式上,则是包含了MPEG-1 、MPEG-4 、AVC 以及WMV9 等等,由于目前网络传输速度还有待突破,因此厂商大多也偏向于支持 高压缩比的压缩格式。

  至于在产品测试认证上,DLNA 提供了标准的规范,以及可供厂商自行测试的软件工具,初步确认过可以正常执行以后,再送往DLNA 认证机构进行认证,认证之后便可获颁DLNA 标章。

  DLNA 的远景相当被看好,目前用于解决设备沟通的方式也相当合宜,只是目前DLNA 在标准规范方面还有些许不足,比如说在多媒体档案的数字版权保护机制上仍相当缺乏,而DLNA 网络也缺乏安全防护能力,也容易让骇客或病毒、木马等入侵,造成整个DLNA 环境的隐忧。加上网络架构对于即 时影音播放方面的能力还有待加强,即使加入了QoS 机制,但是在总体频宽未有突破之前( 比如说新的802.11n 标准通过) ,同时进行多方的高画质影音播 放,仍是相当难以达成的。

 

6 、 DLNA 必须具备的功能

       6.1 播放多媒体文件

       6.2 把多媒体资料上传到服务器

       6.3 把多媒体资料从服务器复制到当前设备

       6.4 把当前设备上的媒体资源共享给其他设备

 

7 、 DLNA 与云存储系统的嫁接

       DLNA 架构设计的目标是在同一个局域网中实现设备的即插即用和共享,目前的传输协议为Wi-Fi(802.11 a/b/g) ,基于 HTTP 进行传输,还不支持 RTP 。而云存储系统是基于互联网的,要让互联网上的文件可以通过 DLNA 在本地进行发现和播放,需要相应的技术实现,本文通过 fuse 把云端的文件映射为本地系统文件。 DMS 通过扫描映射过来的本地系统文件来发现云端的文件,然后才能共享出来被其他设备发现。其播放过程也是与本地文件播放机制一致。 DMS 不知道其扫描的目录文件是在云端的文件。这就造成了 DMS 扫描媒体文件信息的时间较长,给用户体验带来问题。

 

8 、 DMS 获取媒体文件的机制

       DMS 启动时,会扫描本地系统目录,遍历所有的文件,然后挨个读取文件信息,判断其媒体格式,目前 DMS 支持的媒体格式如下所示:

 

 

媒体类型

必须支持的格式

可选支持的格式

Image

JPEG

PNG, GIF, TIFF

Audio

LPCM

AC3, AAC, MP3,WMA9, ATRAC3plus

Video

MPEG2

MPEG1, MPEG4,VC1, MPV1

DMS 为了获取所有的媒体文件,必须读取文件,判断其文件格式,另外还得根据文件格式读取特定的信息,比如版权信息,作者,如果是MP3 文件还要读取歌词等,如果是TS 文件还要读取文件的关键帧,以便生成可以快进快退的索引文件。通过上面DMS 扫描文件的机制可以看出,当这些操作是在本地文件上的话,时间延迟可以在接受的范围内,如果是互联网上的文件,则用户体验会直线下降,因为DMS 获取这些信息的同时会造成从云端下载整个文件,这个时候,网络成为了瓶颈。针对这个问题,我们必须详细分析其原理,找到解决网络成为瓶颈的问题。

 

9 、通过机顶盒播放云端文件存在的问题

    目前在机顶盒上,由于受到网络的局限,播放云端的文件延迟时间较长。众所周知,IPTV 已经普及,IPTV 也是播放互联网上的视频,在网络速度达到2Mbps/ 秒的情况下也可以做到流畅播放,这证明可以通过改进DMS 处理文件的机制,做到流畅播放云端的文件。从目前在机顶盒上测试的情况来看,除了扫描媒体文件的时间过长外,播放媒体文件的速度相当流畅,而扫描过程造成对云端文件的下载是一个瓶颈,如果DMS 只获取文件的基本信息,针对云存储文件进行一些特殊的处理,我们完全可以做到提高用户体验,流畅播放云存储文件的目的。


10 、优化改进方法

    1 、DMS 扫描目录时,只获取文件的基本信息,比如文件大小,文件名,文件创建时间,文件后缀名等。而不获取文件的内容信息,尽量减少扫描过程耗费的时间。

    2 、由播放器来识别媒体文件的格式,可播放则播放,不可播放则提示用户。

    这样处理后,可以把DMS 扫描媒体文件的时间限制在一个很小的范围内,播放器播放时在正式的读取文件内容信息进行播放处理。

转自:http://blog.csdn.net/langeldep/article/details/6462489

这篇关于DLNA架构在机顶盒上播放云存储文件的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/724564

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too