一种机顶盒、媒体播放处理及媒体恢复播放方法
技术领域
本发明涉及一种机顶盒、媒体播放处理及媒体恢复播放方法。
背景技术
传统的多媒体下载技术主要是采用Client/Server(客户端/服务器,C/S)模式,这种模式是一种集中式的方式,由中心服务器提供媒体节目给众多客户端。C/S模式的内容和服务集中于中心服务器,所有的客户端都必须访问服务器获取内容及服务,因此中心服务器就成了整个网络应用的瓶颈和最薄弱环节。由于服务器的能力和输出带宽有一定限度,随着请求服务器的客户端数量的增加,导致每个客户端所能享有的平均带宽将逐渐减少,对服务器的相应速度将显著下降,甚至无法得到服务。因此,目前网络上越来越多的多媒体下载采用了P2P(Peer to Peer,点对点)模式,也即对等网络技术。
对等网络技术,使加入到P2P网络的节点既扮演服务器,又扮演客户端的角色,通过这种服务器负荷分担,使对带宽的需求分配到整个网络。P2P技术,可以使网络上的客户端既能接收也能对外发送媒体内容,在广播、点播和推播视频节目时,可以通过客户端之间主动或自动的相互传递来发送媒体内容,从而避免所有内容均从一个或少量服务器中发出而造成网络堵塞,从而达到更快获取服务的效果。
机顶盒(Set Top Box,STB)作为家庭数字化信息平台,由于能够将数字电视、信息处理,甚至电脑的部分或全部功能综合起来,因此正日益走入寻常百姓的家庭。然而,现在的机顶盒下载方案仍多采用C/S模式,所有客户端机顶盒下载时,都需要连接服务器,从服务器下载文件,在很大程度上受到服务器配置和网络状况限制,并且随着下载客户增多,下载速度逾慢。
到目前,P2P解决方案和产品仍然主要是基于电脑的方案。基于相对简单、廉价的机顶盒的P2P解决方案,由于其在有限资源上实施的相对技术难度,而一直未能很好解决。
发明内容
本发明要解决的主要技术问题是,提供一种机顶盒、媒体播放处理及媒体恢复播放方法,以实现机顶盒基于P2P网络的断点续播功能。
为解决上述技术问题,本发明采用了如下技术方案:
一种机顶盒的媒体播放处理方法,所述机顶盒基于点对点P2P网络,在机顶盒播放器进行媒体播放时,作为P2P客户端的机顶盒通过P2P网络从P2P服务器接收资源列表,开启多个线程并行加载媒体资源,P2P客户端与P2P服务器之间通过超文本传输协议http流形式互相通信,所述媒体播放处理方法包括:在机顶盒的媒体播放结束时,判断本次媒体播放是否该媒体的首次播放,如是,保存该媒体的媒体信息以及本次媒体播放结束时刻的时间点信息,否则,保存本次媒体播放结束时刻的时间点信息。
在本发明的一种实施例中,所述的方法,所述媒体信息包括:影片名称、大小、内容信息、影片链接地址。
在本发明的一种实施例中,所述的方法,所述媒体信息及时间点信息保存在机顶盒本地数据库。
在本发明的一种实施例中,所述的方法,所述媒体信息在媒体播放开始时保存。
在本发明的一种实施例中,所述的方法,还包括:设定时间点信息更新时间周期,以周期性更新当前播放时间点信息;设定清除时间周期,定期清除超出所述清除时间周期的时间点信息记录。
本发明还提供了基于上述媒体播放处理方法的媒体恢复播放方法,包括:
机顶盒加载需要恢复播放的媒体时,根据前次播放结束时刻的时间点信息形成续播信息,将媒体信息和续播信息组装成可扩展标记语言XML文件流发送给机顶盒播放器;所述播放器根据所述媒体信息和续播信息从前次播放结束时刻之后播放该媒体。
在本发明的一种实施例中,所述的方法,所述播放器根据所述媒体信息和续播信息从前次播放结束时刻之后播放该媒体包括:播放器从所述XML文件解析出该需要恢复播放的媒体的媒体信息以及续播信息,组装成HTTP流发送给P2P客户端,P2P客户端首先判断该媒体是否本地加载完成,如果加载完成,则直接从本地将内容以HTTP流的方式返回给播放器播放,如果没有加载完成,则从P2P服务器接收资源列表,开启多个线程并行加载媒体资源。
在本发明的一种实施例中,所述的方法,每台机顶盒具有唯一MAC地址,在初次启动时,将每台机顶盒对应的MAC地址登记到P2P服务器,P2P服务器接收到续播请求时,首先将发起请求的机顶盒的MAC地址与服务器中登记的记录进行匹配,匹配成功则响应请求允许正常续播,匹配不成功则返回失败。
本发明还提供了一种具有断点续播功能的机顶盒,该机顶盒基于点对点P2P网络,在机顶盒播放器进行媒体播放时,作为P2P客户端的机顶盒通过P2P网络从P2P服务器接收资源列表,开启多个线程并行加载媒体资源,P2P客户端与P2P服务器之间通过超文本传输协议ht t p流形式互相通信,所述机顶盒包括:
时间点信息保存模块,用于在机顶盒的媒体播放结束时,判断本次媒体播放是否该媒体的首次播放,如是,保存该媒体的媒体信息以及本次媒体播放结束时刻的时间点信息,否则,保存本次媒体播放结束时刻的时间点信息;
续播模块,用于在机顶盒加载需要恢复播放的媒体时,根据前次播放结束时刻的时间点信息形成续播信息,将媒体信息和续播信息组装成可扩展标记语言XML文件流发送给机顶盒播放器以供播放器根据所述媒体信息和续播信息从前次播放结束时刻之后播放该媒体。
在本发明的一种实施例中,所述机顶盒实现在android平台。
本发明的有益效果是:本发明通过将机顶盒基于P2P网络实现,并在机顶盒的媒体播放结束时保存本次媒体播放结束时刻的时间点信息,从而在恢复播放时,播放器能够根据保存的前次媒体播放结束时刻的时间点信息,从该时刻恢复播放,实现了机顶盒基于P2P网络的断点续播功能。
附图说明
图1为本发明一种实施例的机顶盒断点续播功能实现系统框图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
如图1,在P2P网络架构中,有至少一个P2P服务器,而每开启一个播放器,即启动一个P2P客户端。机顶盒作为P2P客户端,可以从P2P服务器获取资源并通过机顶盒播放器进行播放。当播放器在点播或播放本地文件时,需要由P2P客户端通过网络向P2P服务器发起请求(HASH值,具有唯一性),它们之间主要通过http(超文本传输协议)流的形式互相通信,P2P服务器在接收到客户端的请求后,根据发送过来的值依据用户需要或服务器设置查找多个可用资源(可以是较稳定或离客户端较近的资源,数量可视具体情形而定,如50个),并将资源列表返回给客户端,客户端根据返回的资源开启多个线程并行加载影片资源。
若用户在播放过程中未播完退出或直接关闭机顶盒,则判断本次是否该用户关于该媒体的首次播放,若是,将媒体(影片)信息和退出的时间点信息保存到机顶盒的数据库中,其中影片信息包括影片名称、大小、内容信息、影片链接地址等,退出的时间点信息精确到毫秒。若不是第一次播放,则只向数据库更新本次退出的时间点信息即可。
由于每次用户观看的影片可能不同,以及可能观看的是分为多集的影片,除了保存退出时间点外,也要将影片信息和当前播放集数保存到数据库,影片信息的话可直接保存影片的id,通过该id便可获取到影片的相关信息。另外,由于保存了影片的当前播放集数信息,若用户在播完第一集之后退出,则下次观看时即可自动从第二集开始播放。在此,统一将播放过程中未播完退出或者直接关闭机顶盒的时刻称为媒体播放结束时刻。可以理解的是,媒体完整播放后退出也同样是一种媒体播放结束的形式,而如果是用户在影片完整播放后退出,此时保存的时间点为零,即返回影片起点,也即相当于重播该影片。
当用户从历史记录选择了想要恢复的影片时,在进入播放器播放之前,先根据当前播放的电影id加载相关的影片信息,组装好对象列表,如果是多集的影片或电视剧,则将每集和播放地址一一配对,以便为连播提供保障,同时还要加载续播信息,即前次媒体播放结束的时间点,如果是多集影片或电视剧的话还要加载对应的集数,然后将上述信息组装成XML(可扩展标记语言)文件流发送到播放器。
播放器从XML文件解析出时间点和影片链接等信息,将当前播放影片地址(HASH哈希地址)与时间点信息组装成HTTP流发送给P2P客户端,P2P客户端首先判断该影片是否本地已经加载完成,如果加载完成,则直接从本地将内容以HTTP流的方式返回给播放器播放,如果没有加载完成,则依前文所述,先向P2P服务器以HTTP流的方式发送请求,服务器处理后返回多个资源地址给客户端,客户端开启多线程同时加载多个片源。
在多台机顶盒构成的P2P网络架构中,每台机顶盒具有唯一MAC地址,在初次启动时,即将每台机顶盒对应的MAC地址登记到服务器,在服务器接收到续播请求时,首先将发起请求的机顶盒的MAC地址与服务器中登记的记录进行匹配,匹配成功则响应请求允许正常续播,匹配不成功则返回失败。
为了进一步提高断点续播的可靠性(如防止突然断电服务器来不及反应的情况),可在媒体播放开始时就保存影片相关信息,这样,出现突发情况时,只要更新时间点信息即可,这样更新数据较少,能够及时完成信息保存。更进一步,也可根据用户设定,设定时间点信息更新周期,以周期性更新当前播放时间点信息,以此降低风险,提高可靠性。
此外,将影片信息及时间信息保存在机顶盒本地数据库,而不是上传到服务器,既减轻了服务器的负担,也提高了续播的反应速度。由于机顶盒数据库容量有限,用户可根据实际需求设定要保存多少条记录,或者设定清除时间周期,定期清除或定期提示用户是否要清除时间较久(超出清除时间周期)的记录等。
本发明的机顶盒,实现在android平台,主要包括:
时间点信息保存模块,用于在机顶盒的媒体播放结束时,判断本次媒体播放是否该媒体的首次播放,如是,保存该媒体的媒体信息以及本次媒体播放结束时刻的时间点信息,否则,保存本次媒体播放结束时刻的时间点信息;
续播模块,用于在机顶盒加载需要恢复播放的媒体时,根据前次播放结束时刻的时间点信息形成续播信息,将媒体信息和续播信息组装成可扩展标记语言XML文件流发送给机顶盒播放器以供播放器根据所述媒体信息和续播信息从前次播放结束时刻之后播放该媒体。
本发明基于P2P网络的传输优势实现了机顶盒上的断点续播方法,可以充分利用P2P网络传输速度快效率高的优势,从前次退出的时间点快速恢复加载用户之前未看完的影片,提升用户观影体验。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。