具体实施方式
以下结合图1至图4说明本发明一个实施例:
图1为本发明一个实施例中媒体流切换方法流程图。该方法包括:
102、接收并缓存报文,所述报文用于承载媒体流。
例如,媒体流切换服务器对每个媒体流进行缓存,缓存的内容为承载媒体流的报文。所述媒体流切换服务器可以是一台或一组专用服务器,也可以集成到网络接入节点或路由器等网络设备上。
104、获取所述报文的视觉敏感度。
在本发明实施例的第一个具体应用场景中,媒体流切换服务器以深度报文检测(Deep Packets Inspect,DPI)等方式识别视频关键信息,获取画面组(Group of Pictures,GOP)、I帧、P帧和B帧等信息作为视觉敏感度信息,并得到可以独立解码的报文以及各帧的起始位置。此外,对不同编码格式,还可以检测其它信息,例如,对于MPEG-TS(Transport Stream)格式,可以检测缓存的报文的节目关联表(ProgramAssociation Table,PAT)、节目映射表(Program Map Table,PMT)等。媒体流切换服务器也可以根据视频源即头端(Head End)在报文头中的某些字段或比特位进行的特殊信息,识别出视频关键信息并得到可以独立解码的报文以及各帧的起始位置。
在本发明实施例的第二个具体应用场景中,所述视觉敏感度是媒体流切换服务器根据报文所对应内容的运动矢量丰富度、在画面中的位置、解码端的错误隐藏机制、解码参考关系、亮度与色度、帧类型或条带(SLICE)类型、画面位置及残差或其中部分因素进行评估得到的。所述视觉敏感度的定义的单位为报文。视觉敏感度也可以是上游节点根据报文所对应内容的上述各种因素进行综合评估得到的,举例来说,所述上游节点可以是头端、专用评估设备或具有评估功能的网络设备。媒体流切换服务器接收头端发送的包括视觉敏感度的承载媒体流的报文,获取报文的视觉敏感度。
106、当收到终端的媒体流切换请求时,在所述缓存的报文中选择视觉敏感度高的报文。
在本发明实施例的第一个具体应用场景中,媒体流切换服务器根据各帧的起始位置,以帧为单位,丢弃B帧的报文,选择I帧和P帧的报文,对所选择的报文执行108。或者媒体流切换服务器根据各帧的起始位置,以帧为单位,丢弃B帧和P帧的报文,选择I帧的报文,对所选择的报文执行108。
在本发明实施例的第二个具体应用场景中,媒体流切换服务器根据各帧或各报文的视觉敏感度,以帧或报文为单位,丢弃视觉敏感度低的报文,选择视觉敏感度高的报文,对所选择的报文执行108。所述视觉敏感度高的标准由预设阈值给定。举例来说,当以帧为单位选择视觉敏感度高的报文时,可以计算或估算各帧视觉敏感度的平均值,根据该平均值和预设阈值以帧为单位选择视觉敏感度高的报文。当以报文为单位选择视觉敏感度高的报文时,视觉敏感度低的报文可以来自于B帧图像,可以来自P帧图像,也可以来自I帧图像。
108、重新编排所述视觉敏感度高的报文的序列号。
举例来说,媒体流切换服务器将所选择的报文的RTP序列号,向所选择的报文中RTP序列号较大的一端连续映射。例如,所选择的第一个报文的RTP序列号为X,最后一个报文的RTP序列号为Y,共选择了n个被评估为视觉敏感度高的报文。将这n个报文的RTP序列号重新编排,所选择的第一个报文的RTP序列号重新编排为Y-n+1,第二个报文的RTP序列号重新编排为Y-n+2,依此类推,最后一个报文的RTP序列号仍为Y。
参见图2,图2为本发明实施例中向所选择的报文中RTP序列号较大的一端连续映射的示意图。选择的报文的RTP序列号以100开始,112结束,共7个报文。将这7个报文的RTP序列号重新编排为从106至112的连续序列号。使得终端将要接收的报文的RTP序列号连续,在选择的报文正确传输时,终端将不会发起重传请求。
110、将经过重新编排报文序列号的所述视觉敏感度高的报文发送给终端。
举例来说,媒体流切换服务器将经过重新编排序列号的所述视觉敏感度高的报文单播推送给终端。所述报文推送过程中,单播推送的码流率可以大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。单播推送的码流率也可以等于或小于实时组播码流率,因为媒体流切换服务器丢弃部分视觉敏感度低的报文,不发送给终端,所以单播推送的码流率也可以等于或小于实时组播码流率,只要发送给用户的码流率与丢弃的报文码流率之和大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。
在本发明实施例的某些具体应用场景中,可以在媒体流切换服务器中记录重新编排后的报文序列号与原始报文序列号的映射关系,或者将所述映射关系发送给终端,或者既在媒体流切换服务器中记录所述映射关系也将该映射关系发送给终端。在头端需要对丢包情况进行统计时,存储所述映射关系的媒体流切换服务器或终端向头端发送所述映射关系,或者终端根据所述映射关系得到丢失报文的原始序列号,发送该原始序列号给头端。
图3为本发明一个实施例中媒体流切换服务器框图。所述媒体流切换服务器可以是一台或一组专用服务器,也可以集成到网络接入节点或路由器等网络设备上。该媒体流切换服务器包括,存储模块302、获取模块304、选择模块306、编排模块308和发送模块310;其中,
存储模块302,用于接收并缓存报文,所述报文用于承载媒体流。
例如,存储模块302对每个媒体流进行缓存,缓存的内容为承载媒体流的报文。
获取模块304,用于获取存储模块302中缓存的报文的视觉敏感度。
在本发明实施例的第一个具体应用场景中,获取模块304以DPI等方式识别存储模块302中缓存的报文的视频关键信息,获取画面组(Groupof Pictures,GOP)、I帧、P帧和B帧等信息作为视觉敏感度信息,并得到可以独立解码的报文以及各帧的起始位置。此外,对不同编码格式,还可以检测其它信息,例如,对于MPEG-TS格式,可以检测缓存的报文的PAT、PMT等。获取模块304也可以根据视频源即头端在报文头中的某些字段或比特位进行的特殊信息,识别出视频关键信息并得到可以独立解码的报文以及各帧的起始位置。
在本发明实施例的第二个具体应用场景中,所述视觉敏感度是获取模块304根据媒体流切换服务器根据报文所对应内容的运动矢量丰富度、在画面中的位置、解码端的错误隐藏机制、解码参考关系、亮度与色度、帧类型或SLICE类型、画面位置及残差或其中部分因素进行评估得到的。所述视觉敏感度的定义的单位为报文。低视觉敏感度标识的非重要数据报文里的数据可以来自于B帧图像,可以来自P帧图像,也可以来自I帧图像。视觉敏感度也可以是头端根据报文所对应内容的上述各种因素进行综合评估得到的。获取模块304获取头端发送的包括视觉敏感度的承载媒体流的报文中的视觉敏感度。
选择模块306,用于当收到终端的媒体流切换请求时,在存储模块302缓存的报文中选择视觉敏感度高的报文。
在本发明实施例的第一个具体应用场景中,选择模块306根据标识的各帧的起始位置,以帧为单位,丢弃B帧的报文,在存储模块302缓存的报文中选择I帧和P帧的报文,将所选择的报文交给编排模块308。或者媒体流切换服务器根据各帧的起始位置,以帧为单位,丢弃B帧和P帧的报文,选择I帧的报文,将所选择的报文交给编排模块308。
在本发明实施例的第二个具体应用场景中,选择模块306根据各帧或各报文的视觉敏感度,以帧或报文为单位,丢弃视觉敏感度低的报文,在存储模块302缓存的报文中选择视觉敏感度高的报文,将所选择的报文交给编排模块308。所述视觉敏感度高的标准由选择模块306中的预设阈值给定。
编排模块308,用于重新编排选择模块306选择的报文的序列号。
举例来说,编排模块308将选择模块306选择的报文的RTP序列号,向所选择的报文中RTP序列号较大的一端连续映射。例如,选择模块306选择的第一个报文的RTP序列号为X,最后一个报文的RTP序列号为Y,共选择了n个报文。编排模块308将这n个报文的RTP序列号重新编排,所选择的第一个报文的RTP序列号重新编排为Y-n+1,第二个报文的RTP序列号重新编排为Y-n+2,依此类推,最后一个报文的RTP序列号仍为Y。
发送模块310,用于将经过编排模块308重新编排序列号的报文发送给终端。
举例来说,发送模块310将经过编排模块308重新编排序列号的报文单播推送给终端。所述报文推送过程中,单播推送的码流率可以大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。单播推送的码流率也可以等于或小于实时组播码流率,因为选择模块306丢弃部分视觉敏感度低的报文,不发送给终端,所以单播推送的码流率也可以等于或小于实时组播码流率,只要发送给用户的码流率与丢弃的报文码流率之和大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。
在本发明实施例的某些具体应用场景中,发送模块310还用于将重新编排后的报文序列号与原始报文序列号的映射关系发送给终端。在头端需要对丢包情况进行统计时,终端向头端发送所述映射关系,或者根据所述映射关系得到丢失报文的原始序列号,发送该原始序列号给头端。
在本发明实施例的某些具体应用场景中,媒体流切换服务器还可以包括,记录模块,用于记录重新编排后的报文序列号与原始报文序列号的映射关系。在头端需要对丢包情况进行统计时,所述记录模块向头端发送所述映射关系。
图4为本发明一个实施例中媒体流切换系统示意图。该系统包括媒体流切换服务器402和头端404;其中,
媒体流切换服务器402,用于接收并缓存头端发送的报文,所述报文用于承载媒体流,获取所述报文的视觉敏感度,当收到终端的媒体流切换请求时,在所述缓存的报文中选择视觉敏感度高的报文,重新编排所述视觉敏感度高的报文的序列号,将经过重新编排序列号的所述视觉敏感度高的报文发送给终端。
媒体流切换服务器402可以是一台或一组专用服务器,也可以集成到网络接入节点或路由器等网络设备上。
头端404,用于发送报文,所述报文用于承载媒体流。
头端404是媒体流发起的源头设备,其获取媒体流的方式可以是从卫星电视录制,或从其它有线网络转发等,头端404也可以是其它网络设备,例如侧挂于城域网络设备的边缘服务器。
头端404与媒体流切换服务器或接入节点之间的网络连接可以有多种方式,例如,通过核心网、城域网、汇聚网或其他网络连接方式连接。
所述接入节点,可以是数字用户线路接入复用器(DigitalSubscriber Line Access Multiplexer,DSLAM)设备、光缆终端(opticalline terminal,OLT)设备、下层运营商边缘(Underlay Provider Edge,UPE)设备或IP交换机等设备,也可以是应用于其它在接入节点网络位置上的设备,例如汇聚路由器等。接入节点和终端之间的连接可以包括各种接入技术,例如,数字用户线路(Digital Subscriber Line,DSL)、无源光纤网络(Passive Optical Network,PON)、以太网等。
采用本实施例提供的技术方案,因为只发送视觉敏感度高的报文给终端,降低了媒体流切换对传送带宽的要求,增加了可推送的单播码流数量,并且将选择的报文的序列号,向所选择的报文中序列号较大的一端连续映射,使得终端将要接收的报文的序列号连续,在选择的报文正确传输时,终端将不会发起重传请求。因此不需要终端支持重传抑制就可以解决媒体流切换对传送带宽有较高要求、可推送的单播码流数量有限、推送持续时间比较长的问题。
以下结合图5至图6说明本发明一个实施例:
图5为本发明一个实施例中媒体流切换方法流程图。该方法包括:
502、接收并缓存报文,所述报文用于承载媒体流。
例如,媒体流切换服务器对每个媒体流进行缓存,缓存的内容为承载媒体流的报文。所述媒体流切换服务器可以是一台或一组专用服务器,也可以集成到网络接入节点或路由器等网络设备上。
504、获取所述报文的视觉敏感度。
在本发明实施例的第一个具体应用场景中,媒体流切换服务器以DPI等方式识别视频关键信息,获取画面组(Group of Pictures,GOP)、I帧、P帧和B帧等信息作为视觉敏感度信息,并得到可以独立解码的报文以及各帧的起始位置。此外,对不同编码格式,还可以检测其它信息,例如,对于MPEG-TS格式,可以检测缓存的报文的PAT、PMT等。媒体流切换服务器也可以根据视频源即头端在报文头中的某些字段或比特位进行的特殊信息,识别出视频关键信息并得到可以独立解码的报文以及各帧的起始位置。
在本发明实施例的第二个具体应用场景中,所述视觉敏感度是媒体流切换服务器根据报文所对应内容的运动矢量丰富度、在画面中的位置、解码端的错误隐藏机制、解码参考关系、亮度与色度、帧类型或SLICE类型、画面位置及残差或其中部分因素进行评估得到的。所述视觉敏感度的定义的单位为报文。视觉敏感度标识低的非重要数据报文里的数据可以来自于B帧图像,可以来自P帧图像,也可以来自I帧图像。视觉敏感度也可以是头端根据报文所对应内容的上述各种因素进行综合评估得到的。媒体流切换服务器接收头端发送的包括视觉敏感度的承载媒体流的报文,获取报文的视觉敏感度。
506、当收到终端的媒体流切换请求时,在所述缓存的报文中选择视觉敏感度高的报文。
在本发明实施例的第一个具体应用场景中,媒体流切换服务器根据标识的各帧的起始位置,以帧为单位,丢弃B帧的报文,选择I帧和P帧的报文,对所选择的报文执行508。或者媒体流切换服务器根据各帧的起始位置,以帧为单位,丢弃B帧和P帧的报文,选择I帧的报文,对所选择的报文执行508。
在本发明实施例的第二个具体应用场景中,媒体流切换服务器根据各帧或各报文的视觉敏感度,以帧或报文为单位,丢弃视觉敏感度低的报文,选择视觉敏感度高的报文,对所选择的报文执行108。所述视觉敏感度高的标准由预设阈值给定。
508、重新编排所述视觉敏感度高的报文的序列号。
举例来说,媒体流切换服务器将所选择的报文的RTP序列号,向所选择的报文中RTP序列号较小的一端连续映射。例如,所选择的第一个报文的RTP序列号为X,最后一个报文的RTP序列号为Y,共选择了n个被评估为视觉敏感度高的报文。将这n个报文的RTP序列号重新编排,所选择的第一个报文的RTP序列号仍为X,第二个报文的RTP序列号重新编排为X+1,依此类推,最后一个报文的RTP序列号重新编排为X+n-1。媒体流切换完成后,终端接收的组播报文起始序列号从Y+1开始;选择的报文经过重新编排的序列号,与组播报文起始序列号不连续,对X+n至Y这一段不连续的序列号执行510、512。
参见图6,图6为本发明实施例中向所选择的报文中RTP序列号较小的一端连续映射的示意图。选择的报文的RTP序列号以100开始,112结束,共7个报文。将这7个报文的RTP序列号重新编排为从100至106的连续序列号。媒体流切换完成后,终端接收的组播报文起始序列号从113开始;选择的报文经过重新编排的序列号,与组播报文起始序列号不连续,对107至111这一段不连续的序列号执行510、512。
510、生成重传抑制信息,所述重传抑制信息包括所述经过重新编排的报文的不连续的序列号的标识信息。
以RTP序列号从X+n至y这一段不连续为例,此时可以生成重传抑制信息,重传抑制信息中包括这一段不连续的序列号的信息,例如,这一段不连续的序列号的第一个RTP序列号(X+n)和最后一个RTP序列号(Y)。
512、向所述终端发送所述重传抑制信息,所述重传抑制信息使所述终端接在所述标识信息对应的报文丢失时,不请求重传所述标识信息对应的报文。
举例来说,重传抑制信息可以由扩展RTCP报文发送给接收节点。
514、将经过重新编排报文序列号的所述视觉敏感度高的报文发送给终端。
举例来说,媒体流切换服务器将经过重新编排序列号的所述视觉敏感度高的报文单播推送给终端。所述报文推送过程中,单播推送的码流率可以大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。单播推送的码流率也可以等于或小于实时组播码流率,因为媒体流切换服务器丢弃部分视觉敏感度低的报文,不发送给终端,所以单播推送的码流率也可以等于或小于实时组播码流率,只要发送给用户的码流率与丢弃的报文码流率之和大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。
本领域普通技术人员可以理解,图5所示实施例中重新编排序列号的目的是减少或简化需要发送的重传抑制信息,其他容易想到的可以减少或简化需要发送的重传抑制信息的重新编排序列号的方法都可以作为所述重新编排所述视觉敏感度高的报文的序列号的方法。
本领域普通技术人员可以理解,图5所示实施例中510和512中重传抑制信息的生成和发送,与514中推送单播媒体流给终端并无严格的时间顺序。重传抑制信息可以在推送单播媒体流之前即发送给终端,也可以在已经推送一部分单播媒体流之后发送给终端。
在本发明实施例的某些具体应用场景中,可以在媒体流切换服务器中记录重新编排后的报文序列号与原始报文序列号的映射关系,或者将所述映射关系发送给终端,或者既在媒体流切换服务器中记录所述映射关系也将该映射关系发送给终端。在头端需要对丢包情况进行统计时,存储所述映射关系的媒体流切换服务器或终端向头端发送所述映射关系,或者终端根据所述映射关系得到丢失报文的原始序列号,发送该原始序列号给头端。
图7为本发明一个实施例中媒体流切换服务器框图。所述媒体流切换服务器可以是一台或一组专用服务器,也可以集成到网络接入节点或路由器等网络设备上。该媒体流切换服务器包括,存储模块702、获取模块704、选择模块706、编排模块708、生成模块710和发送模块712;其中,所述存储模块702、获取模块704和选择模块706分别与图3所示实施例中存储模块302、获取模块304和选择模块306功能基本相同。区别在于,编排模块708的功能略有不同,并相应增加了生成模块710,并增加了发送模块712的功能。
存储模块702,用于接收并缓存报文,所述报文用于承载媒体流。
获取模块704,用于获取存储模块702中缓存的报文的视觉敏感度。
选择模块706,用于当收到终端的媒体流切换请求时,在存储模块702缓存的报文中选择视觉敏感度高的报文。
编排模块708,用于重新编排选择模块706选择的报文的序列号。
举例来说,编排模块708将选择模块706选择的报文的RTP序列号,向所选择的报文中RTP序列号较小的一端连续映射。例如,选择模块706选择的第一个报文的RTP序列号为X,最后一个报文的RTP序列号为Y,共选择了n个被评估为视觉敏感度高的报文。编排模块708将这n个报文的RTP序列号重新编排,所选择的第一个报文的RTP序列号仍为X,第二个报文的RTP序列号重新编排为X+1,依此类推,最后一个报文的RTP序列号重新编排为X+n-1。
生成模块710,用于生成重传抑制信息,所述重传抑制信息包括所述经过重新编排的报文的不连续的序列号的标识信息。
以RTP序列号从X+n至Y这一段不连续为例,此时生成模块710可以生成重传抑制信息,重传抑制信息中包括这一段不连续的序列号的信息,例如,这一段不连续的序列号的第一个RTP序列号(X+n)和最后一个RTP序列号(Y)。
发送模块712,用于将经过编排模块308重新编排序列号的报文发送给终端,还用于向所述终端发送生成模块710生成的重传抑制信息,所述重传抑制信息使所述终端接在所述标识信息对应的报文丢失时,不请求重传所述标识信息对应的报文。
举例来说,发送模块712可以用扩展RTCP报文将重传抑制信息发送给接收节点。
举例来说,发送模块712将经过重新编排序列号的所述视觉敏感度高的报文单播推送给终端。所述报文推送过程中,单播推送的码流率可以大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。单播推送的码流率也可以等于或小于实时组播码流率,因为选择模块706丢弃部分视觉敏感度低的报文,不发送给终端,所以单播推送的码流率也可以等于或小于实时组播码流率,只要发送给用户的码流率与丢弃的报文码流率之和大于实时组播码流率,以使单播推送的码流可以追上实时组播码流。
在本发明实施例的某些具体应用场景中,发送模块712还用于将重新编排后的报文序列号与原始报文序列号的映射关系发送给终端。在头端需要对丢包情况进行统计时,终端向头端发送所述映射关系,或者根据所述映射关系得到丢失报文的原始序列号,发送该原始序列号给头端。
在本发明实施例的某些具体应用场景中,媒体流切换服务器还可以包括,记录模块,用于记录重新编排后的报文序列号与原始报文序列号的映射关系。在头端需要对丢包情况进行统计时,所述记录模块向头端发送所述映射关系。
图8为本发明一个实施例中媒体流切换系统示意图。该系统包括媒体流切换服务器802和头端804;其中,
媒体流切换服务器802,用于接收并缓存头端发送的报文,所述报文用于承载媒体流,获取所述报文的视觉敏感度,当收到终端的媒体流切换请求时,在所述缓存的报文中选择视觉敏感度高的报文,重新编排所述视觉敏感度高的报文的序列号,将经过重新编排序列号的所述视觉敏感度高的报文发送给终端,还用于生成重传抑制信息,所述重传抑制信息包括所述经过重新编排的报文的不连续的序列号的标识信息,向所述终端发送所述重传抑制信息,所述重传抑制信息使所述终端接在所述标识信息对应的报文丢失时,不请求重传所述标识信息对应的报文。
媒体流切换服务器802可以是一台或一组专用服务器,也可以集成到网络接入节点或路由器等网络设备上。
头端804,用于发送报文,所述报文用于承载媒体流。
头端804是媒体流发起的源头设备,其获取媒体流的方式可以是从卫星电视录制,或从其它有线网络转发等,头端804也可以是其它网络设备,例如侧挂于城域网络设备的边缘服务器。
头端804与媒体流切换服务器或接入节点之间的网络连接可以有多种方式,例如,通过核心网、城域网、汇聚网或其他网络连接方式连接。
所述接入节点,可以是数字用户线路接入复用器(DigitalSubscriber Line Access Multiplexer,DSLAM)设备、光缆终端(opticalline terminal,OLT)设备、下层运营商边缘(Underlay Provider Edge,UPE)设备或IP交换机等设备,也可以是应用于其它在接入节点网络位置上的设备,例如汇聚路由器等。接入节点和终端之间的连接可以包括各种接入技术,例如,数字用户线路(Digital Subscriber Line,DSL)、无源光纤网络(Passive Optical Network,PON)、以太网等。
采用本实施例提供的技术方案,因为只发送视觉敏感度高的报文给终端,降低了媒体流切换对传送带宽的要求,增加了可推送的单播码流数量,并且发送的报文的序列号经过重新编排,只需发送少量重传抑制信息,即可使终端无需请求报文重传,解决了媒体流切换对传送带宽有较高要求、可推送的单播码流数量有限、推送持续时间比较长的问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质可以是ROM/RAM,磁盘或光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。