具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示意出了根据本发明的一种用于获取直播媒体数据的方法流程图。所述方法包括步骤S101、步骤S102、步骤S103和步骤S104。
其中,所述直播媒体数据包括至少一段媒体数据段。
优选地,直播装置基于第一划分规则将直播媒体数据划分为一个或多个媒体数据段。例如,将直播媒体数据从每天的0点0分开始,每隔10分钟划分为一个媒体数据段。
其中,根据本发明的方法通过包含于计算机设备中的直播装置来实现。所述计算机设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述计算机设备包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、PDA、游戏机、或IPTV等。其中,所述用户设备及网络设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备以及网络仅为举例,其他现有的或今后可能出现的用户设备、网络设备以及网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
参照图1,在步骤S101中,直播装置获取待播放的媒体数据段的播放时间信息。
其中,所述播放时间信息包括但不限于以下任一项:
1)用户选择的播放时间点;例如,用户在播放视频的窗口中选择的时间点;
2)基于当前的播放行为所确定的待播放媒体数据段的起始时间点;
3)直播进行中的播放时间点。例如,当前时间点。
其中,直播装置获取待播放的媒体数据段的播放时间信息的方式包括但不限于以下任一种:
1)基于用户操作确定播放时间信息;例如,用户选择从前一天的时间点20:23:00开始回看北京卫视的直播视频数据,则直播装置将该时间点作为待播放的媒体数据段的播放时间信息。又例如,用户打开直播视频软件时,直播装置直接将当前时间点作为播放时间信息。
2)基于之前的播放操作确定播放时间信息。例如,用户设备已获得的直播数据段的播放时间为:当天13:20:00至13:30:00,则当该用户设备需要获取下一段13:30:00至13:40:00的直播数据段进行播放时,该用户设备中的直播装置将下一段直播数据段的起始时间点13:30:00作为待播放的媒体数据段的播放时间信息。
接着,在步骤S102中,直播装置根据所述播放时间信息和所述媒体数据段的频道信息,来生成与所述播放时间信息和所述频道信息对应的资源标识信息。
其中,所述频道信息包括各个频道标识信息。优选地,所述频道标识信息包括以下至少任一项:
1)频道名称;
2)频道编号;
3)其他用于唯一标识该频道的信息,例如,该频道用于直播的网络地址信息等。
具体地,直播装置根据所述播放时间信息,来确定与所述播放时间信息对应的媒体数据段的起始播放时间。接着,直播装置根据所述媒体数据段的起始播放时间和所述媒体数据段的频道信息,来生成与该媒体数据段对应的资源标识信息。
优选地,所述资源标识信息包括数值。例如,对待播放视频的起始播放时间和所述媒体数据段的频道标识信息进行MD5运算,并将得到的值作为资源标识信息。
根据本发明的第一示例,用户通过直播装置来观看直播视频。其中,该直播视频对应的直播媒体数据从每天的0点0分开始,每隔10分钟被划分为一个媒体数据段。在2013年1月2日18点14分23秒,该用户通过该直播装置选择观看湖南卫视的从2013年1月1日20点32分48秒开始的视频,则直播装置确定待播放的媒体数据段的播放时间信息为2013年1月1日20点32分48秒。接着,直播装置基于该播放时间信息以及预定的媒体数据段的划分规则,确定该待播放的媒体数据段的起始播放时间为2013年1月1日20点30分。接着,直播装置基于该起始播放时间和该媒体数据段的频道信息“湖南卫视”进行MD5运算,以得到用于标识该媒体数据段的资源标识信息RID_1。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据所述播放时间信息和所述媒体数据段的频道信息,来生成与所述播放时间信息和所述频道信息对应的资源标识信息的实现方式,均应包含在本发明的范围内。
接着,在步骤S103中,直播装置将所述资源标识信息发送至辅助服务器,以接收相应的来自辅助服务器的反馈信息。
其中,所述辅助服务器用于辅助所述直播装置获取所述待播放的媒体数据段。
优选地,所述辅助服务器包括但不限于以下至少任一种:
1)索引服务器,其中,所述索引服务器包含多个资源标识信息与计算机设备的对应关系;
2)媒体服务器,其中,所述媒体服务器包含与各个资源标识信息对应的媒体数据段。
其中,所述反馈信息包括但不限于以下任一项:
1)当所述辅助服务器包括索引服务器时,所述反馈信息包括但不限于与直播装置所发送的资源标识信息对应的一个或多个计算机设备的设备标识信息;
2)当所述辅助服务器包括媒体服务器时,所述反馈信息包括但不限于与直播装置所发送的资源标识信息对应的媒体数据段。
接着,在步骤S104中,直播装置根据辅助服务器的反馈信息来获取与所述资源标识信息对应的媒体数据段。
其中,直播装置根据辅助服务器的反馈信息来获取与所述资源标识信息对应的媒体数据段的方式包括但不限于以下任一种:
1)当所述辅助服务器包括索引服务器时,直播装置基于索引服务器反馈的与该资源标识对应的一个或多个计算机设备来获取与所述资源标识信息对应的媒体数据段。
具体地,直播装置接收索引服务器所反馈的,与所述资源标识信息对应的一个或多个计算机设备,接着,直播装置向所述一个或多个计算机设备中的至少一个计算机设备发送请求,以获取与该资源标识信息对应的媒体数据段。
优选地,直播装置接收索引服务器所反馈的,与所述资源标识信息对应的一个或多个计算机设备的设备标识信息。
其中,所述计算机设备的设备标识信息包括但不限于以下至少任一种:
i)计算机设备的网络地址信息,例如,IP地址信息,又例如,MAC地址信息等;
ii)计算机设备的名称;
iii)其他可用于唯一标识计算机设备的信息。
例如,直播装置接收到索引服务器反馈的与资源标识信息对应的20个计算机设备的IP地址信息,接着,直播装置分别向该20个IP地址信息发送请求。
2)当所述辅助服务器包括媒体服务器时,直播装置接收媒体服务器所反馈的、与自身所发送的资源标识信息对应的媒体数据段。例如,直播装置向媒体服务器发送包含资源标识信息RID_2的请求,并接收媒体服务器反馈的、与RID_2对应的媒体数据段。
优选地,索引服务器所反馈的,与所述资源标识信息对应的一个或多个计算机设备的设备标识信息中还包含媒体服务器的设备标识信息,则直播装置先基于所获得的其他计算机设备的设备标识信息,来获取待播放的媒体数据段。若无法从其他计算机设备获取该媒体数据段或者获取速度较慢时,直播装置则根据媒体服务器的设备标识信息向其发送请求,以获取相应的媒体数据段。
继续对前述第一示例进行说明,该直播装置在步骤S103中向索引服务器发送RID_1,则索引服务器根据自身存储的多个资源标识信息与计算机设备的对应关系,确定存在5个与资源标识信息RID_1对应的计算机设备的IP地址,并将该5个IP地址反馈给该直播装置。接着,该直播装置分别基于该5个IP地址发送请求,以下载与RID_1对应的媒体数据段。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据辅助服务器的反馈信息来获取与所述资源标识信息对应的媒体数据段的实现方式,均应包含在本发明的范围内。
需要说明的是,根据本发明的方法可通过多次执行步骤S103和步骤S104来获取与资源标识信息对应的媒体数据段。例如,直播装置先将生成的资源标识信息发送至索引服务器,以基于索引服务器反馈的一个或多个计算机设备的设备标识信息来获取待播放的媒体数据段,若无法从该一个或多个计算机设备获取该媒体数据段或者获取速度较慢时,直播装置再将资源标识信息发送至媒体服务器,以基于媒体服务器的反馈信息来获取该媒体数据段。
优选地,根据本发明的方法还包括步骤S105(图未示)。
在步骤S105中,直播装置每获得一段媒体数据段,向所述索引服务器发送与该段媒体数据段对应的资源标识信息以及自身的设备标识信息,以供所述索引服务器更新索引信息。
其中,所述索引信息包括各个资源标识信息和其各自对应的一个或多个计算机设备。
优选地,索引信息包括各个资源标识信息和其各自对应的一个或多个计算机设备各自的设备标识信息。
其中,直播装置获取媒体数据段的资源标识信息的方式包括但不限于以下任一种:
1)直播装置每获得一段资源标识信息,即基于该段媒体数据段的起始播放时间和所述直播视频的频道信息,来生成与该媒体数据段对应的资源标识信息。其中,直播装置生成资源标识信息的具体方式已在前述步骤S102中予以详述,不再赘述。
例如,直播装置在2013年1月3日19点35分24秒开始通过媒体服务器获取北京卫视正在直播中的媒体数据,则直播装置按照预定的媒体数据段划分规则,在获取到19点40分至19点50分的媒体数据段后,基于该媒体数据段的起始时播放时间2013年1月3日19点40分和频道信息“北京卫视”进行MD5运算,得到用于标识该媒体数据段的资源标识信息。
2)当直播装置通过执行所述步骤S101至步骤S104来获得所述媒体数据段时,则直播装置直接获取步骤S102中所生成的资源标识信息。
继续对前述第一示例进行说明,该直播装置从前述5个计算机设备处下载到与资源标识信息RID_1对应的媒体数据段后,向索引服务器发送在步骤S102中所生成的该资源标识信息RID_1以及该用户使用的电脑的IP地址,以供索引服务器更新自身存储的包含各个资源标识信息及其对应的设备标识信息的索引信息。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何在媒体服务器中生成直播媒体数据的实现方式,均应包含在本发明的范围内。
根据本发明的方法,通过基于时间信息和频道信息生成的、用于唯一标识直播媒体数据段的资源标识信息,使用户设备能够从其他拥有相应直播媒体数据段的用户设备中获取任意时间点对应的媒体数据段,并且,提高了用户获取媒体数据段的效率,并减轻了媒体服务器的负担。
图2示意出了根据本发明的一种用于在媒体服务器中生成直播媒体数据的方法流程图。所述方法包括由媒体服务器执行的步骤S201、步骤S202和步骤S203。
参照图2,在步骤S201中,媒体服务器将直播媒体数据划分为一个或多个子数据段。
优选地,媒体服务器基于第二划分规则将直播媒体数据划分为一个或多个子数据段。例如,从每天的0点0分开始,每隔预定时间长度划分为一个子数据段。又例如,将直播媒体数据包含的每个媒体数据段均分为多个预定时间长度的子数据段。
更优选地,媒体服务器基于第一划分规则将直播媒体数据划分为一个或多个媒体数据段,并基于第二划分规则将直播媒体数据划分为一个或多个子数据段。例如,媒体服务器将直播媒体数据从每天的0点0分开始,每隔10分钟划分为一个媒体数据段,并将每个媒体数据段从起始播放位置开始,每隔5秒钟划分为一个子数据段。
需要说明的是,一个媒体数据段可包含多个子数据段,或者,一个媒体数据段等于一个子数据段。并且,当子数据段等于媒体数据段时,第一划分规则与第二划分规则相同。
接着,在步骤S202中,媒体服务器根据每个子数据段中的媒体数据来生成相应的校验信息。
具体地,所述子数据段包括多个数据块,媒体服务器对子数据段中的各个数据块,计算与各个数据块的媒体数据对应的校验和。接着,媒体服务器根据该子数据段所包含的多个数据块各自的校验和,来生成与该子数据段的校验信息。
优选地,媒体服务器基于预定规则将子数据段划分为多个预定大小的数据块。例如,媒体服务器将子数据段均分为多个预定大小的数据块;又例如,媒体服务器按照“后一个数据块的大小为前一数据块2倍”的预定规则,将子数据段划分为多个预定大小的数据块
接着,在步骤S203中,媒体服务器将所述校验信息包含于所述子数据段的文件头中。
根据本发明的第二示例,媒体服务器基于预定规则将直播媒体数据划分为多个时长为5秒的子数据段。接着,媒体服务器根据每个子数据段中的媒体数据来生成相应的校验信息。以大小为256KB的子数据段Segment_1为例,媒体服务器保存Segment_1时,将Segment_1均分为大小为16KB的数据块,则Segment_1一共有256KB/16KB=16个数据块,并且,媒体服务器对每一个数据块计算一个4字节的校验和,则媒体服务器要为Segment_1计算4字节*16=64字节的校验和。接着,媒体服务器利用MD5算法,为得到的校验和生成一个4字节的hash值,则媒体服务器将得到的64字节的校验和以及该4字节的hash值作为Segment_1的校验信息。接着,媒体服务器将该校验信息包含于Segment_1的文件头中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何在媒体服务器中生成直播媒体数据的实现方式,均应包含在本发明的范围内。
根据本发明的一个优选实施例,当直播装置获得媒体数据段后,根据本发明的方法还包括由直播装置执行的步骤S106(图未示)和步骤S107(图未示)。
在步骤S106中,直播装置根据子数据段的校验信息,来校验该子数据段中的媒体数据。
具体地,所述子数据段包括多个数据块,所述校验信息中包含与所述多个数据快分别对应的校验和。直播装置对子数据段中的各个数据块,计算与各个数据块的媒体数据对应的校验和,并当计算得到的数据块的校验和与所述校验信息中该数据块的校验和不一致时,判断该子数据段为未能通过校验。
其中,直播装置采用与媒体服务器中用于生成校验信息的方式相同或相对应的方式来对子数据段进行校验。
接着,在步骤S107中,当子数据段未能通过校验时,直播装置丢弃该子数据段。
继续对本发明的第二示例进行说明,当与RID_1对应的媒体数据段中包含子数据段Segment_1时,直播装置采用与前述视频服务器中用于生成Segment_1的校验信息的方式,分别计算与Segment_1包含的16个数据块对应的64字节的校验和,并将该计算得到的校验和与Segment_1的文件头的校验信息中包含的校验和进行比较,当判断计算得到的校验和与校验信息中包含的校验和不一致时,直播装置确定Segment_1为未能通过校验,并丢弃Segment_1。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据子数据段的校验信息,来校验该子数据段中的媒体数据的实现方式,均应包含在本发明的范围内。
更优选地,根据本发明的方法,当子数据段被丢弃时,直播装置通过重新执行步骤S103和步骤S104来再次基于该子数据段对应的资源标识信息,向辅助服务器发送该资源标识信息以获得相应的媒体数据段。
根据本发明的方法,通过媒体服务器为直播数据分段生成校验信息并保存,并且在获取直播数据时对直播数据进行校验,从而能够更好地保证所获取的直播数据的完整性和准确性。
图3示意出了根据本发明的一种用于获取直播媒体数据的直播装置的结构示意图。根据本发明的直播装置包括第一获取装置101、第一生成装置102、第一发送装置103和第二获取装置104。
参照图3,第一获取装置101获取待播放的媒体数据段的播放时间信息。
其中,所述播放时间信息包括但不限于以下任一项:
1)用户选择的播放时间点;例如,用户在播放视频的窗口中选择的时间点;
2)基于当前的播放行为所确定的待播放媒体数据段的起始时间点;
3)直播进行中的播放时间点。例如,当前时间点。
其中,第一获取装置101获取待播放的媒体数据段的播放时间信息的方式包括但不限于以下任一种:
1)基于用户操作确定播放时间信息;例如,用户选择从前一天的时间点20:23:00开始回看北京卫视的直播视频数据,则第一获取装置101将该时间点作为待播放的媒体数据段的播放时间信息。又例如,用户打开直播视频软件时,第一获取装置101直接将当前时间点作为播放时间信息。
2)基于之前的播放操作确定播放时间信息。例如,用户设备已获得的直播数据段的播放时间为:当天13:20:00至13:30:00,则当该用户设备需要获取下一段13:30:00至13:40:00的直播数据段进行播放时,该用户设备中的第一获取装置101将下一段直播数据段的起始时间点13:30:00作为待播放的媒体数据段的播放时间信息。
接着,第一生成装置102根据所述播放时间信息和所述媒体数据段的频道信息,来生成与所述播放时间信息和所述频道信息对应的资源标识信息。
其中,所述频道信息包括各个频道标识信息。优选地,所述频道标识信息包括以下至少任一项:
1)频道名称;
2)频道编号;
3)其他用于唯一标识该频道的信息,例如,该频道用于直播的网络地址信息等。
具体地,第一生成装置102根据所述播放时间信息,来确定与所述播放时间信息对应的媒体数据段的起始播放时间。接着,直播装置根据所述媒体数据段的起始播放时间和所述媒体数据段的频道信息,来生成与该媒体数据段对应的资源标识信息。
优选地,所述资源标识信息包括数值。例如,对待播放视频的起始播放时间和所述媒体数据段的频道标识信息进行MD5运算,并将得到的值作为资源标识信息。
根据本发明的第一示例,用户通过直播装置来观看直播视频。其中,该直播视频对应的直播媒体数据从每天的0点0分开始,每隔10分钟被划分为一个媒体数据段。在2013年1月2日18点14分23秒,该用户通过该直播装置选择观看湖南卫视的从2013年1月1日20点32分48秒开始的视频,则第一获取装置101确定待播放的媒体数据段的播放时间信息为2013年1月1日20点32分48秒。接着,第一生成装置102基于该播放时间信息以及预定的媒体数据段的划分规则,确定该待播放的媒体数据段的起始播放时间为2013年1月1日20点30分。接着,第一生成装置102基于该起始播放时间和该媒体数据段的频道信息“湖南卫视”进行MD5运算,以得到用于标识该媒体数据段的资源标识信息RID_1。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据所述播放时间信息和所述媒体数据段的频道信息,来生成与所述播放时间信息和所述频道信息对应的资源标识信息的实现方式,均应包含在本发明的范围内。
接着,第一发送装置103将所述资源标识信息发送至辅助服务器,以接收相应的来自辅助服务器的反馈信息。
其中,所述辅助服务器用于辅助所述直播装置获取所述待播放的媒体数据段。
优选地,所述辅助服务器包括但不限于以下至少任一种:
1)索引服务器,其中,所述索引服务器包含多个资源标识信息与计算机设备的对应关系;
2)媒体服务器,其中,所述媒体服务器包含与各个资源标识信息对应的媒体数据段。
其中,所述反馈信息包括但不限于以下任一项:
1)当所述辅助服务器包括索引服务器时,所述反馈信息包括但不限于与第一生成装置102所发送的资源标识信息对应的一个或多个计算机设备的设备标识信息;
2)当所述辅助服务器包括媒体服务器时,所述反馈信息包括但不限于与第一生成装置102所发送的资源标识信息对应的媒体数据段。
接着,第二获取装置104根据辅助服务器的反馈信息来获取与所述资源标识信息对应的媒体数据段。
其中,第二获取装置根据辅助服务器的反馈信息来获取与所述资源标识信息对应的媒体数据段的方式包括但不限于以下任一种:
1)当所述辅助服务器包括索引服务器时,第二获取装置104基于索引服务器反馈的与该资源标识对应的一个或多个计算机设备来获取与所述资源标识信息对应的媒体数据段。所述第二获取装置包括接收装置(图未示)和第二发送装置(图未示)。
具体地,接收装置接收索引服务器所反馈的,与所述资源标识信息对应的一个或多个计算机设备,接着,第二发送装置向所述一个或多个计算机设备中的至少一个计算机设备发送请求,以获取与该资源标识信息对应的媒体数据段。
优选地,接收装置接收索引服务器所反馈的,与所述资源标识信息对应的一个或多个计算机设备的设备标识信息。
其中,所述计算机设备的设备标识信息包括但不限于以下至少任一种:
i)计算机设备的网络地址信息,例如,IP地址信息,又例如,MAC地址信息等;
ii)计算机设备的名称;
iii)其他可用于唯一标识计算机设备的信息。
例如,接收装置接收到索引服务器反馈的与资源标识信息对应的20个计算机设备的IP地址信息,接着,第二发送装置分别向该20个IP地址信息发送请求。
2)当所述辅助服务器包括媒体服务器时,第二获取装置104装置接收媒体服务器所反馈的、与自身所发送的资源标识信息对应的媒体数据段。例如,第二获取装置104向媒体服务器发送包含资源标识信息RID_2的请求,并接收媒体服务器反馈的、与RID_2对应的媒体数据段。
优选地,索引服务器所反馈的,与所述资源标识信息对应的一个或多个计算机设备的设备标识信息中还包含媒体服务器的设备标识信息,则第二获取装置104先基于所获得的其他计算机设备的设备标识信息,来获取待播放的媒体数据段。若无法从其他计算机设备获取该媒体数据段或者获取速度较慢时,第二获取装置104则根据媒体服务器的设备标识信息向其发送请求,以获取相应的媒体数据段。
继续对前述第一示例进行说明,第一发送装置103向索引服务器发送RID_1,则索引服务器根据自身存储的多个资源标识信息与计算机设备的对应关系,确定存在5个与资源标识信息RID_1对应的计算机设备的IP地址,并将该5个IP地址反馈给接收装置。接着,第二发送装置分别基于该5个IP地址发送请求,以下载与RID_1对应的媒体数据段。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据辅助服务器的反馈信息来获取与所述资源标识信息对应的媒体数据段的实现方式,均应包含在本发明的范围内。
需要说明的是,根据本发明的方案可通过多次由第一发送装置103执行向将资源标识信息发送至辅助服务器、以及由第二获取装置10执行获取与资源标识信息对应的媒体数据段的操作,来获取与资源标识信息对应的媒体数据段。例如,第一发送装置103先将生成的资源标识信息发送至索引服务器,以供第二获取装置104基于索引服务器反馈的一个或多个计算机设备的设备标识信息来获取待播放的媒体数据段,若第二获取装置104无法从该一个或多个计算机设备获取该媒体数据段或者获取速度较慢时,第一发送装置103再将资源标识信息发送至媒体服务器,以供第二获取装置104基于媒体服务器的反馈信息来获取该媒体数据段。
优选地,根据本发明的直播装置还包括第三发送装置(图未示)。
该第三发送装置用于每获得一段媒体数据段,向所述索引服务器发送与该段媒体数据段对应的资源标识信息以及自身的设备标识信息,以供所述索引服务器更新索引信息。
其中,所述索引信息包括各个资源标识信息和其各自对应的一个或多个计算机设备。
优选地,索引信息包括各个资源标识信息和其各自对应的一个或多个计算机设备各自的设备标识信息。
其中,直播装置获取媒体数据段的资源标识信息的方式包括但不限于以下任一种:
1)所述第三发送装置进一步包括第二生成装置(图未示)和子发送装置(图未示)。每获得一段资源标识信息,第二生成装置即基于该段媒体数据段的起始播放时间和所述直播视频的频道信息,来生成与该媒体数据段对应的资源标识信息,以供子发送装置将该资源标识信息与自身的设备标识信息发送至索引服务器。其中,第二生成装置生成资源标识信息的具体方式已在前述第一生成装置102生成与播放时间信息和频道信息对应的资源标识信息的实施例中予以详述,此处不再赘述。
例如,第二获取装置104在2013年1月3日19点35分24秒开始通过媒体服务器获取北京卫视正在直播中的媒体数据,则第二生成装置按照预定的媒体数据段划分规则,在获取到19点40分至19点50分的媒体数据段后,基于该媒体数据段的起始时播放时间2013年1月3日19点40分和频道信息“北京卫视”进行MD5运算,得到用于标识该媒体数据段的资源标识信息。
2)当通过由第一获取装置101、第一生成装置102、第一发送装置103和第二获取装置104执行操作来来获得所述媒体数据段时,则直播装置直接获取由第一生成装置102所生成的资源标识信息。
继续对前述第一示例进行说明,该直播装置的第二获取装置104从前述5个计算机设备处下载到与资源标识信息RID_1对应的媒体数据段后,第三发送装置向索引服务器发送第一生成装置102生成的该资源标识信息RID_1以及该用户使用的电脑的IP地址,以供索引服务器更新自身存储的包含各个资源标识信息及其对应的设备标识信息的索引信息。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何在媒体服务器中生成直播媒体数据的实现方式,均应包含在本发明的范围内。
根据本发明的方案,通过基于时间信息和频道信息生成的、用于唯一标识直播媒体数据段的资源标识信息,使用户设备能够从其他拥有相应直播媒体数据段的用户设备中获取任意时间点对应的媒体数据段,并且,提高了用户获取媒体数据段的效率,并减轻了媒体服务器的负担。
图4示意出了根据本发明的一种用于生成直播媒体数据的媒体服务器的结构示意图。根据本发明的媒体服务器分割装置201、校验生成装置202和保存装置203。
参照图4,分割装置201将直播媒体数据划分为一个或多个子数据段。
优选地,分割装置201基于第二划分规则将直播媒体数据划分为一个或多个子数据段。例如,从每天的0点0分开始,每隔预定时间长度划分为一个子数据段。又例如,将直播媒体数据包含的每个媒体数据段均分为多个预定时间长度的子数据段。
更优选地,分割装置201基于第一划分规则将直播媒体数据划分为一个或多个媒体数据段,并基于第二划分规则将直播媒体数据划分为一个或多个子数据段。例如,分割装置201将直播媒体数据从每天的0点0分开始,每隔10分钟划分为一个媒体数据段,并将每个媒体数据段从起始播放位置开始,每隔5秒钟划分为一个子数据段。
需要说明的是,一个媒体数据段可包含多个子数据段,或者,一个媒体数据段等于一个子数据段。并且,当子数据段等于媒体数据段时,第一划分规则与第二划分规则相同。
接着,校验生成装置202根据每个子数据段中的媒体数据来生成相应的校验信息。其中,所述校验生成装置202包括第二计算装置(图未示)和子生成装置(图未示)。
具体地,所述子数据段包括多个数据块,第二计算装置对子数据段中的各个数据块,计算与各个数据块的媒体数据对应的校验和。接着,生成装置根据该子数据段所包含的多个数据块各自的校验和,来生成与该子数据段的校验信息。
优选地,媒体服务器基于预定规则将子数据段划分为多个预定大小的数据块。例如,媒体服务器将子数据段均分为多个预定大小的数据块;又例如,媒体服务器按照“后一个数据块的大小为前一数据块2倍”的预定规则,将子数据段划分为多个预定大小的数据块
接着,保存装置203将所述校验信息包含于所述子数据段的文件头中。
根据本发明的第二示例,分割装置201基于预定规则将直播媒体数据划分为多个时长为5秒的子数据段。接着,校验生成装置202根据每个子数据段中的媒体数据来生成相应的校验信息。以大小为256KB的子数据段Segment_1为例,媒体服务器保存Segment_1时,将Segment_1均分为大小为16KB的数据块,则Segment_1一共有256KB/16KB=16个数据块,并且,第二计算装置对每一个数据块计算一个4字节的校验和,则第二计算装置要为Segment_1计算4字节*16=64字节的校验和。接着,子生成装置利用MD5算法,为得到的校验和生成一个4字节的hash值,则校验生成装置202将得到的64字节的校验和以及该4字节的hash值作为Segment_1的校验信息。接着,保存装置203将该校验信息包含于Segment_1的文件头中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何在媒体服务器中生成直播媒体数据的实现方式,均应包含在本发明的范围内。
根据本发明的一个优选实施例,当直播装置获得媒体数据段后,根据本发明的直播装置还包括校验装置(图未示)和选择装置(图未示)。
其中,校验装置根据子数据段的校验信息,来校验该子数据段中的媒体数据。所述校验装置包括第一计算装置(图未示)和判断装置(图未示)。
具体地,所述子数据段包括多个数据块,所述校验信息中包含与所述多个数据快分别对应的校验和。第一计算装置对子数据段中的各个数据块,计算与各个数据块的媒体数据对应的校验和。当计算得到的数据块的校验和与所述校验信息中该数据块的校验和不一致时,判断装置判断该子数据段为未能通过校验。
其中,校验装置采用与媒体服务器中用于生成校验信息的方式相同或相对应的方式来对子数据段进行校验。
接着,当子数据段未能通过校验时,选择装置丢弃该子数据段。
继续对本发明的第二示例进行说明,当与RID_1对应的媒体数据段中包含子数据段Segment_1时,校验装置采用与前述媒体服务器中用于生成Segment_1的校验信息的方式,由第一计算装置分别计算与Segment_1包含的16个数据块对应的64字节的校验和。然后,判断装置将该计算得到的校验和与Segment_1的文件头的校验信息中包含的校验和进行比较,当判断计算得到的校验和与校验信息中包含的校验和不一致时,确定Segment_1为未能通过校验,并由选择装置丢弃Segment_1。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据子数据段的校验信息,来校验该子数据段中的媒体数据的实现方式,均应包含在本发明的范围内。
更优选地,根据本发明的方案,当子数据段被丢弃时,通过重新由直播装置中的第一发送装置103执行向将资源标识信息发送至辅助服务器的操作、以及由直播装置中的第二获取装置104执行获取与资源标识信息对应的媒体数据段的操作,来再次基于该子数据段对应的资源标识信息,向辅助服务器发送该资源标识信息以获得相应的媒体数据段。
根据本发明的方案,通过媒体服务器为直播数据分段生成校验信息并保存,并且在获取直播数据时对直播数据进行校验,从而能够更好地保证所获取的直播数据的完整性和准确性。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。待传输,第二等词语用来表示名称,而并不表示任何特定的顺序。