一种播放列表提供方法及系统的制作方法

文档序号:7765448阅读:298来源:国知局
专利名称:一种播放列表提供方法及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种播放列表提供方法及系统。
背景技术
随着科学的发展和技术的进步,互联网视讯业务逐渐走进千家万户。互联网视频 一般是通过媒体服务器或下载服务器的下载后,在终端的播放器上进行播放。传统的互联 网视讯业务通常是采用客户端的播放器向流媒体服务器请求播放,流媒体服务器通过媒体 分片的形式下发给终端的播放器,终端的播放器将接收到分片进行组合形成新的媒体文 件。这样处理由于新文件是基于分片形成,与老文件没有关联,系统需要同时存储新文件和 老文件,多占用了存储空间,浪费了系统资源。

发明内容
有鉴于此,有必要提供一种节省系统资源的播放列表提供方法。同时提供一种节省系统资源的播放列表提供系统及流媒体服务器。一种播放列表提供方法,包括第一流媒体服务器接收播放器发送的媒体报告描述MPD请求,所述MPD请求中携 带播放列表;所述第一流媒体服务器读取MPD请求中播放列表,并判断所述播放列表中各内容 所在的第二流媒体服务器;所述第一流媒体服务器分别向所述第二流媒体服务器发送对应内容的MPD请求;所述第一流媒体服务器分别接收所述各内容所在的第二流媒体服务器返回的MPD 描述文件;以及所述第一流媒体服务器将所述第二流媒体服务器返回的MPD描述文件组合成总 的MPD描述文件,返回给所述播放器。一种播放列表提供系统,包括第一流媒体服务器和多个内容所在的第二流媒体 服务器;所述第一流媒体服务器,用于接收播放器发送的媒体报告描述MPD请求,所述MPD 请求中携带播放列表,读取播放列表,并判断所述播放列表中各内容所在的流媒体服务器, 向所述各内容所在的流媒体服务器分别发送对应内容的MPD请求,分别接收所述各内容所 在的流媒体服务器返回的MPD描述文件,组合成总的MPD描述文件,返回给所述播放器;所述第二流媒体服务器,用于接收所述第一流媒体服务器发送的MPD请求,并返 回MPD描述文件给所述第一流媒体服务器。一种流媒体服务器,包括接收模块,用于接收播放器发送的媒体报告描述MPD请求,所述MPD请求携带播放 列表;播放列表读取模块,用于读取播放列表,并判断所述播放列表中各内容所在的第二流媒体服务 器;内容请求模块,用于向所述各内容所在的第二流媒体服务器分别发送对应内容的 MPD请求;响应接收模块,用于分别接收所述各内容所在的服务器返回的MPD描述文件;组合模块,用于组合成总的MPD描述文件;应答模块,用于将组合后的MPD描述文件返回给所述播放器。本发明实施例通过向各内容所在的服务器分别发送对应内容的MPD请求,分别接 收各内容所在的服务器返回的MPD请求,组合成总的MPD描述文件,并将组合后的MPD描 述文件返回给播放器,使播放器可以根据组合后的MPD描述文件向不同的内容服务器请求 媒体,有效避免了系统资源的浪费,媒体播放列表的请求也更加灵活。有利于视频业务的推 广。


图1为本发明实施例播放列表提供方法流程图。图2为本发明实施例播放列表提供系统示意图。图3为本发明实施例流媒体服务器内部结构框图。图4为本发明实施例播放列表提供方法信令图。
具体实施例方式为了使用户可以在个人电脑(PC,Personal Computer)、手机(HS,Handset)等多 种不同终端上体验到直播、点播的视频业务。并且保证系统侧的性能,本发明实施例提供了 播放列表提供方法。以解决新老文件没有直接必然关系,导致系统资源浪费的问题。请结合参看图1,本发明实施例的播放列表提供方法包括如下步骤步骤102,第一流媒体服务器接收播放器发送的媒体报告描述(MPD,Media Presentation Description)请求,所述MPD请求中携带播放列表。步骤104,流媒体服务器读取播放列表,并判断播放列表中各内容所在的第二流媒 体服务器,其中η可以为大于等于1的自然数。步骤106,第一流媒体服务器向各内容所在第二流媒体服务器分别发送对应内容 的MPD请求。步骤108,各内容所在第二流媒体服务器分别向第一流媒体服务器返回MPD描述 文件。步骤110,第一流媒体服务器将收到的MPD描述文件组合成一个总的MPD描述文件 返回给终端播放器。本发明实施例通过向各内容所在的第二流媒体服务器分别发送对应内容的MPD 请求,分别接收各内容所在的第二流媒体服务器返回的MPD描述文件,组合成总的MPD描述 文件,并将组合后的MPD描述文件返回给播放器,使播放器可以根据组合后的MPD描述文件 向不同的第二流媒体服务器请求媒体,有效避免了系统资源的浪费,媒体播放列表的请求 也更加灵活,有利于视频业务的推广。目前HTTP Streaming协议未定义流媒体服务器侧播放列表的实现方式,一般只能通过 在源端转码时将多个文件转码为一个文件进行播放,新生成的文件和老文件无关系, 多占用了存储,而且也不够灵活,如果需要形成新的播放列表,则又要重新生成新的文件。 另外,播放列表常常引用在连续视频播放或音乐专辑播放中。比如管理员将一个连续剧的 多部内容或一部音乐专辑的多个内容编辑成一个播放列表,用户点击该播放列表时可以顺 序收看该连续剧的所有子集或者该专辑的所有音乐。如果多个内容分部在一台服务器或多 台服务器上,如果需要组成服务器侧的播放列表,可以发布播放列表的描述文件到一台服 务器。MPD描述文件可以包括以下信息1、内容播放顺序;2、内容所在服务器地址;3、该内 容播放的统一资源定位器(URL,Uniform Resource Locator)等信息。传统的流媒体服务器在终端请求播放列表的节目时,如果该内容不在本服务器, 则存放播放列表文件的流媒体服务器Streaming Server向存放内容的服务器发起请求,获 取媒体数据后转发给播放器。播放列表所在的流媒体服务器需要一直维护和播放器间的会 话,同时需要和不和终端播放器通话的内容所在的服务器交互,将内容获取到本地后再转 给终端的播放器。这样的话也是增加了流媒体服务器的性能消耗,并且需要维护与播放器 的会话。本发明实施例很好的解决了在HTTP Streaming协议交互下实现服务器侧播放列 表的能力,并且解决了传统服务器侧播放列表同时需要多台流媒体服务器参与,增加性能 消耗的问题。请结合参看图2,本发明实施例播放列表提供系统包括包含有播放列表描述文 件的流媒体服务器Streaming Server 204即第一流媒体服务器,和多台内容所在的流媒体 服务器Streaming Serverl-n即第二流媒体服务器。其中η可以为大于等于1的自然数, 若η等于1,则包含内容所在的流媒体服务器为1台。该播放列表提供系统可以向播放器 202提供播放请求播放的媒体。流媒体服务器Streaming Server 204,用于接收播放器发送的媒体报告描述MPD 请求,读取播放列表,并判断播放列表中各内容所在的流媒体服务器,向各内容所在的流媒 体服务器Streaming Server-n 206分别发送对应内容的MPD请求,分别接收各内容所在的 流媒体服务器Streaming Server-n206返回的MPD描述文件,组合成总的MPD描述文件,返 回给播放器202。内容所在的流媒体服务器Streaming Server-n 206,用于接收所述流媒体 服务器Streaming Server 204发送的MPD请求,并返回MPD描述文件给所述流媒体服务器 Streaming Server 204。其中该内容分片的MPD信息描述可以在Streaming Server 204提 供的播放列表中,Streaming Server 204通过MPD请求,获取各内容所在服务器Streaming Server-n 206。请结合参看图3,其中流媒体服务器Streaming ServerfCM可以包括接收模块 302、播放列表读取模块304、列表存储模块306、内容请求模块308、响应接收模块310、组合 模块312和应答模块314。接收模块302,用于播放器202发送的媒体报告描述MPD请求,其中MPD请求中携 带播放列表。播放列表读取模块304,用于读取播放列表,并判断播放列表中各内容所在的 第二流媒体服务器。列表存储模块306,用于存储播放列表及所对应内容所在第二流媒体服 务器对应关系表。其中,对应关系表包含了请求播放的内容及对应服务器所在的URL或IP 地址。流媒体服务器204可以包含列表存储模块306也可以没有,放在其他存储设备上存储,或不存储,不再赘述。内容请求模块308,用于向各内容所在的服务器分别发送对应内容 的MPD请求。响应接收模块310,用于分别接收各内容所在的第二流媒体服务器返回的MPD 描述文件。组合模块312,用于将各内容所在服务器返回的MPD描述文件组合成总的MPD描 述文件。应答模块314,用于将组合后的MPD描述文件返回给播放器202。 本发明实施例可以存储播放列表,以保持播放列表和各内容所在第二流媒体服务 器对应关系的完整性,当网络出现连接问题的时候,可以根据存储的对应关系继续连接,这 样避免了终端的播放器再次发送请求的情况。请继续结合参看图4,本实施例中为了实现服务器侧列表提供方法,需要有播放 器、存放有播放列表描述文件的第一流媒体服务器StreamingServer、及各内容所在的第二 流媒体服务器Streaming Server-I和StreamingServer-2参与。播放列表提供方法包括 如下步骤步骤402,第一流媒体服务器Streaming Server接收终端播放器发送的MPD请 求。播放器拿到了播放列表内容的URL,该URL指向存放有播放列表描述文件的第一流媒 体服务器Streaming Server,播放器向该第一流媒体服务器Streaming Server发起MPD Request请求,请求播放该播放列表。步骤404,第一流媒体服务器Streaming Server读取本地播放列表,判断列 表中的内容所在的第二流媒体服务器。存放有播放列表描述文件的第一流媒体服务器 Streaming Server解析播放列表描述文件,判断播放列表中有哪些媒体内容存放在哪些第 二流媒体服务器Streaming Server上。步骤406,第一流媒体服务器Streaming Server向有内容的第二流媒体服务器 Streaming Server-I发送MPD Request请求。存放有播放列表描述文件的第一流媒体服 务器Streaming Sever通过HTTP Streaming协议向原始内容所在的第二流媒体服务器 Streaming Server-I发起MPD请求,请求该第二流媒体服务器Streaming Server上内容所 对应的不同码率和分片的描述文件。步骤408,第二流媒体服务器Streaming Server-I向第一流媒体服务器 Streaming Server返回该内容的MPD response 口向应消息。步骤410,第一流媒体服务器Streaming Server向有内容的服务器Streaming Server-2发送MPD Request。存放有播放列表描述文件的第一流媒体服务器Streaming Sever通过HTTP Streaming协议向原始内容所在的第二流媒体服务器Streaming Server-2发起MPD请求,请求该第二流媒体服务器Streaming Server上内容所对应的不同 码率和分片的描述文件。步骤412,第二流媒体服务器Streaming Server-2向第一流媒体服务器 Streaming Server返回该内容的MPD response 口向应消息。步骤414,第一流媒体服务器Streaming Server将第二流媒体服务器Streaming Server-I和第二流媒体服务器Streaming Server-2返回的MPDresponse响应消息中不同 内容的分片描述文件组合为一个总的描述文件,组合过程中需要考虑不同码率的组合和不 同文件分片的组合,每个分片的URL仍然是指向内容所在的第二流媒体服务器。将这些内 容对应的MPD描述文件组合包括a)将相同码率、相同编码格式、相同分辨率的分片描述组合到一起。
比如内容1和内容2均有以下码率、编码格式、分辨率的描述<QualityLevel Bitrate = “ 350000 “ FourCC = “ WVCl “ Width ="320" Height = " 176" COdecPrivateData = “ 250000010FC38A09F0578A09F815E80 450808AADEACF400000010E5AE7F840“ /> 内容1该码率、编码格式、分辨率下的分片描述信息如下<cn = 〃 0 〃 d = 〃 20000000 “ /><cn = 〃 I" d = 〃 20000000“ /><cn = 〃 2" d = 〃 20000000“ /><cn=〃 3〃 d=〃 20000000〃 /><cn=〃 4〃 d=〃 20000000〃 /><cn = 〃 5 〃 d = 〃 20000000 “ /><cn = 〃 6 〃 d = 〃 20000000 “ /><cn=〃 7〃 d=〃 20000000〃 /><cn = 〃 8" d = 〃 20000000 “ /><cn = 〃 9" d = 〃 20000000 “ /><cn=〃 10〃 d=〃 20000000〃 /><cn=〃 11〃 d=〃 20000000〃 /><cn=〃 12〃 d=〃 20000000〃 /><cn=〃 13〃 d=〃 20000000〃 /><cn=〃 14〃 d=〃 20000000〃 /><cn=〃 15〃 d=〃 20000000〃 /><cn=〃 16〃 d=〃 20000000〃 /><cn=〃 17〃 d=〃 20000000〃 /><cn=〃 18〃 d=〃 20000000" /><cn=〃 19〃 d=〃 20000000〃 /><cn=〃 20〃 d=〃 20000000" />内容2该码率、编码格式、分辨率下的分片描述信息如下<cn=〃 0〃 d=〃 30000000〃 /><cn=〃 1" d=〃 30000000〃 /><cn=〃 2" d=〃 30000000〃 /><cn=〃 3〃 d=〃 30000000〃 /><cn=〃 4〃 d=〃 30000000〃 /><cn=〃 5〃 d=〃 30000000〃 /><cn = 〃 6 〃 d = 〃 30000000 “ /><cn = 〃 7" d = 〃 30000000 “ /><cn = 〃 8" d = 〃 30000000 “ /><cn = 〃 9" d = 〃 30000000 “ /><cn=〃 10〃 d=〃 30000000〃 />内容3该码率、编码格式、分辨率下的分片描述信息如下
<cn = 〃0 〃 d = 〃 50000000 “ /><cn = 〃I" d = 〃 50000000“ /><cn = 〃2" d = 〃 50000000“ /><cn=〃3〃 d=〃 50000000〃 /><cn=〃4〃 d=〃 50000000〃 /><cn = 〃5 〃 d = 〃 50000000 “ /><cn = 〃6 〃 d = 〃 50000000 “ /><cn = 〃7 〃 d = 〃 50000000 “ /><cn=〃8" d=〃 50000000〃 /><cn=〃9〃 d=〃 50000000〃 /><cn=〃10〃 d=〃 50000000〃 />组合后的描述文件部分结构如下<QualityLevel Bitrate=" 350000〃 FourCC = “ WVCl “ Width=" 320〃Height = “ 176〃CodecPrivateData = “ 250000010FC38A09F0578A09F815E80450808AADEACF40000 0010E5AE7F840"/><cn=〃0〃 d=〃 20000000〃 /><cn=〃1〃 d=〃 20000000〃 /><cn=〃2" d=〃 20000000〃 /><cn=〃3〃 d=〃 20000000〃 /><cn=〃4〃 d=〃 20000000〃 /><cn=〃5〃 d=〃 20000000〃 /><cn=〃6〃 d=〃 20000000〃 /><cn=〃7〃 d=〃 20000000〃 /><cn=〃8" d=〃 20000000〃 /><cn=〃9〃 d=〃 20000000〃 /><cn=〃10〃 d=〃 20000000〃 /><cn=〃11〃 d=〃 20000000〃 /><cn=〃12〃 d=〃 20000000〃 /><cn=〃13〃 d=〃 20000000〃 /><cn=〃14〃 d=〃 20000000〃 /><cn=〃15〃 d=〃 20000000〃 /><cn=〃16〃 d=〃 20000000〃 /><cn=〃17〃 d=〃 20000000" /><cn=〃18〃 d=〃 20000000〃 /><cn=〃19〃 d=〃 20000000〃 /><cn=〃20〃 d=〃 2 0000000〃 /><cn=〃21〃 d=〃 30000000〃 /><cn=〃22〃 d=〃 30000000〃 />
<cn=〃 23〃 d=〃 30000000〃 /><cn=〃 24〃 d=〃 30000000〃 /><cn=〃 25〃 d=〃 30000000〃 /><cn=〃 26〃 d=〃 30000000〃 /><cn=〃 27〃 d=〃 30000000" /><cn=〃 28〃 d=〃 30000000〃 /><cn=〃 29〃 d=〃 30000000〃 /> <cn=〃 30〃 d=〃 30000000〃 /><cn=〃 31〃 d=〃 30000000〃 /><cn=〃 32〃 d=〃 50000000〃 /><cn=〃 33〃 d=〃 50000000〃 /><cn=〃 34〃 d=〃 50000000〃 /><cn=〃 35〃 d=〃 50000000〃 /><cn=〃 36〃 d=〃 50000000〃 /><cn=〃 37〃 d=〃 50000000" /><cn=〃 38〃 d=〃 50000000〃 /><cn=〃 39〃 d=〃 50000000〃 /><cn=〃 40〃 d=〃 50000000〃 /><cn=〃 41〃 d=〃 50000000〃 /><cn=〃 42〃 d=〃 50000000〃 />b)在相同码率、相同编码格式、相同分辨率下,播放列表中如果部分内容缺少该码 率、编码格式、分辨率的描述信息,需要丢弃掉此码率、编码格式、分辨率的描述,这样终端 播放器无需做任何修改,但在进行码率适配时由于终端播放器看不到该码率,则此码率将 无法播放。步骤416,第一流媒体服务器Streaming Server向终端播放器返回组合后的MPD response响应消息。对于终端播放器来说,不同的流媒体服务器Streaming Server间的交 互,终端播放器仍然可以认为点播的是一个文件,并按照不同的码率和不同分片向内容所 在的第二流媒体服务器Streaming Server-I和第二流媒体服务器Streaming Server-2发 起下载请求。由于不同分片仍然指向了其所在的不同第二流媒体服务器,因此播放过程中 终端会和不同的第二流媒体服务器进行交互,因此节省了系统的性能。对于终端来说,从存放有播放列表描述文件的第一流媒体服务器Streaming Server上请求到MPD描述文件后,按照原有处理方式处理,无需变化。由于分片URL仍然指 向了分片所在的第二流媒体服务器Streaming Server,终端在请求不同内容的过程中,会 从各自内容和分片所在的第二流媒体服务器Streaming Server请求。终端在拿到MPD文 件后,如果不需要更新MPD文件,将断开和存放有播放列表描述文件的第一流媒体服务器 Streaming Server的连接,第一流媒体服务器Streaming Server不需要维持和终端播放器 的会话和状态。由于所有内容都是其所在第二流媒体服务器直接发流给终端,不需要经过 其它流媒体服务器转发,也不需要将所有内容拷贝到同一台流媒体服务器上,节省了存储 和流媒体服务器性能。
本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令相关 的硬件完成,该程序可以存储一计算机可读存储介质中,该计算机可读存储介质如R0M、RAM寸。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
权利要求
1.一种播放列表提供方法,其特征在于,该方法包括第一流媒体服务器接收播放器发送的媒体报告描述MPD请求,所述MPD请求中携带播 放列表;所述第一流媒体服务器读取MPD请求中播放列表,并判断所述播放列表中各内容所在 的第二流媒体服务器;所述第一流媒体服务器分别向所述第二流媒体服务器发送对应内容的MPD请求;所述第一流媒体服务器分别接收所述各内容所在的第二流媒体服务器返回的MPD描 述文件;以及所述第一流媒体服务器将所述第二流媒体服务器返回的MPD描述文件组合成总的MPD 描述文件,返回给所述播放器。
2.如权利要求1所述的方法,其特征在于,所述第一流媒体服务器将所述第二流媒体 服务器返回的MPD描述文件组合成总的MPD描述文件包括将不同内容中相同码率,编码格 式及分辨率不同的分片描述信息拼接到一起,每个分片描述信息对应的URL地址不变,仍 然指向对应分片所在的所述第二流媒体服务器。
3.如权利要求1所述的方法,其特征在于,同一内容的分片在不同的第二流媒体服器上。
4.如权利要求1所述的方法,其特征在于,该方法还包括若在相同码率、相同编码格 式及相同分辨率下,播放列表中部分内容缺少所述码率、所述编码格式及所述分辨率的描 述信息时,所述第一流媒体服务器丢弃所述部分内容所述缺少的码率、所述编码格式及所 述分片率的描述信息。
5.如权利要求1所述的方法,其特征在于,所述MPD请求包括所述内容的播放顺序、 所述内容所在的服务器地址及所述内容播放的统一资源定位器URL。
6.一种播放列表提供系统,其特征在于,包括第一流媒体服务器(204)和多个内容所 在的第二流媒体服务器O06);所述第一流媒体服务器(204),用于接收播放器发送的媒体报告描述MPD请求,所述 MPD请求中携带播放列表,读取播放列表,并判断所述播放列表中各内容所在的流媒体服务 器,向所述各内容所在的流媒体服务器分别发送对应内容的MPD请求,分别接收所述各内 容所在的流媒体服务器返回的MPD描述文件,组合成总的MPD描述文件,返回给所述播放 器;所述第二流媒体服务器(206),用于接收所述第一流媒体服务器发送的MPD请求,并返 回MPD描述文件给所述第一流媒体服务器。
7.如权利要求6所述的系统,其特征在于,所述组成总的MPD描述文件包括将不同内 容中相同码率,编码格式及分辨率不同的分片描述信息拼接到一起,每个分片描述信息对 应的URL地址不变,仍然指向对应分片所在的第二流媒体服务器。
8.如权利要求6所述的系统,其特征在于,该系统还包括若在相同码率、相同编码格 式及相同分辨率下,播放列表中部分内容缺少该码率、编码格式及分辨率的描述信息时,所 述第一流媒体服务器丢弃所述部分内容所述缺少的码率、编码格式及分片率的描述信息。
9.一种流媒体服务器004),其特征在于,包括接收模块(30 ,用于接收播放器发送的媒体报告描述MPD请求,所述MPD请求携带播放列表;播放列表读取模块(304),用于读取播放列表,并判断所述播放列表中各内容所在的第 二流媒体服务器;内容请求模块(308),用于向所述各内容所在的第二流媒体服务器分别发送对应内容 的MPD请求;响应接收模块(310),用于分别接收所述各内容所在的服务器返回的MPD描述文件; 组合模块(312),用于组合成总的MPD描述文件; 应答模块(314),用于将组合后的MPD描述文件返回给所述播放器。
10.如权利要求9所述的流媒体服务器004),其特征在于,还包括 列表存储模块(306),用于存储播放列表及所对应内容所在第二流媒体服务器的对应 关系表。
全文摘要
本发明提供一种播放列表提供方法,第一流媒体服务器接收播放器发送的媒体报告描述MPD请求,MPD请求中携带播放列表;第一流媒体服务器读取MPD请求中播放列表,并判断播放列表中各内容所在的第二流媒体服务器;第一流媒体服务器分别向第二流媒体服务器发送对应内容的MPD请求;第一流媒体服务器分别接收各内容所在的第二流媒体服务器返回的MPD描述文件;第一流媒体服务器将第二流媒体服务器返回的MPD描述文件组合成总的MPD描述文件,返回给播放器。同时,本发明还提供一种播放列表提供系统和流媒体服务器。通过本发明实施例可使播放器可以根据组合后的MPD描述文件向不同的内容服务器请求媒体,有效避免了系统资源的浪费,媒体播放列表的请求也更加灵活。
文档编号H04N21/437GK102131114SQ20101054756
公开日2011年7月20日 申请日期2010年11月17日 优先权日2010年11月17日
发明者甘漠 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1