用于多点录制的时间同步方法、服务器以及系统与流程

文档序号:13627830阅读:221来源:国知局
用于多点录制的时间同步方法、服务器以及系统与流程

本发明涉及通信技术领域,尤其涉及一种用于多点录制的时间同步方法、录制服务器和内容分发网络。



背景技术:

组播传输在大规模直播中有明显节省骨干带宽的优势,通常采用组播方式承载直播业务。目前,视频直播一般使用rtsp(realtimestreamingprotocol,实时流传输协议)协议,为了系统实现方便,相关的回看、时移服务也会采用rtsp协议实现。但rtsp对网络环境要求高,容易出现马赛克、卡顿等问题,在此方面,hls(httplivestreaming)协议能较好适应各种网络环境,提升播放质量,因此采用rtp组播与hls单播共同承载直播相关业务能发挥两者的优势。

在组播录制为hls索引和分片文件的过程中,录制点设置在cdn(contentdeliverynetwork,内容分发网络)多个边缘服务节点。由于cdn各节点接收到组播内容有时间差异,为保证各cdn节点内容转换的一致性,获得一致的用户体验,需要同步各节点的录制时间。并且,hls录制时在生成时移索引文件时需要指定内容分片的绝对时间才能在终端实现时移效果,但现有技术需要将视频解码才能获得对应的时间,解码将大量消耗cdn边缘节点的性能。



技术实现要素:

有鉴于此,本发明要解决的一个技术问题是提供一种用于多点录制的时间同步方法、录制服务器和内容分发网络。

根据本发明的一个方面,提供一种用于多点录制的时间同步方法,包括:录制服务器接收到头端系统发送的rtp数据包;所述录制服务器获取所述rtp数据包携带的hls切片信息;所述录制服务器根据所述hls切片信息将所述rtp数据包的载荷录制为hls协议格式的媒体数据。

可选地,所述录制服务器接收到头端系统发送的rtp数据包包括:所述录制服务器加入rtp组播地址;所述录制服务器接收头端系统发送的rtp组播数据包,其中,所述头端系统在所述rtp组播数据包中插入所述hls切片信息。

可选地,所述录制服务器获取所述rtp数据包携带的hls切片信息包括:所述录制服务器提取所述rtp数据包的报头;所述录制服务器从所述报头中解析出标识所述hls切片信息的扩展字段数据,获取所述hls切片信息;其中,所述hls切片信息包括:分片的时间间隔、分片的序列号和分片的播放时间。

可选地,所述扩展字段包括:frameinterval、hlsmediasequence和hlsprogramdatetime;其中,frameinterval字段用于标识分片的时间间隔,hlsmediasequence字段用于标识当前rtp数据包的载荷中的视频数据所在的分片序列号,hlsprogramdatetime字段用于标识当前rtp数据包的载荷所在的分片开始播放的绝对播放日期和时间。

可选地,所述录制服务器根据所述hls切片信息将所述rtp数据包的载荷内容录制为hls协议格式的媒体数据包括:所述录制服务器根据所述hls切片信息将所述rtp数据包的载荷内容录制成hls协议媒体格式的分片文件;所述录制服务器生成与所述分片文件相对应的索引文件,在所述索引文件中设置了分片的间隔时长和每个分片第一帧播放的绝对日期和时间。

可选地,所述索引文件为m3u8文件,其中,在所述索引文件中设置了分片的间隔时长和每个分片第一帧播放的绝对日期和时间包括:所述录制服务器在所述索引文件中的每个分片文件描述信息前加入extinf和ext-x-program-date-time标签;其中,所述extinf标签用于标识每个分片的间隔时长,所述ext-x-program-date-time标签用于标识每个分片播放的绝对日期和时间。

可选地,当终端从直播切换到时移播放模式时,获取所述m3u8文件;所述终端从所述m3u8文件中提取extinf标签和ext-x-program-date-time标签设置的数值;所述终端基于所述数值确定与时移播放对应的分片文件信息;所述终端向所述录制服务器发送时移播放请求,其中,所述时移播放请求携带有与时移播放对应的分片文件信息。

根据本发明的另一方面,提供一种录制服务器,包括:媒体数据接收模块,用于接收头端系统发送的rtp数据包;切片信息获取模块,用于获取所述rtp数据包携带的hls切片信息;媒体数据录制模块,用于所述录制服务器根据所述hls切片信息将所述rtp数据包的载荷录制为hls协议格式的媒体数据。

可选地,所述媒体数据接收模块,还用于加入rtp组播地址,接收头端系统发送的rtp组播数据包,其中,所述头端系统在所述rtp组播数据包中插入所述hls切片信息。

可选地,所述切片信息获取模块,还用于提取所述rtp数据包的报头,从所述报头中解析出标识所述hls切片信息的扩展字段数据,获取所述hls切片信息;其中,所述hls切片信息包括:分片的时间间隔、分片的序列号和分片的播放时间。

可选地,所述媒体数据录制模块,包括:分片录制单元,用于根据所述hls切片信息将所述rtp数据包的载荷内容录制成hls协议媒体格式的分片文件;索引生成单元,用于生成与所述分片文件相对应的索引文件,在所述索引文件中设置分片的间隔时长和每个分片播放的绝对日期和时间。

可选地,所述索引生成单元,还用于在所述索引文件中的第一个分片文件描述信息前加入extinf和ext-x-program-date-time标签;其中,所述extinf标签用于标识每个分片的间隔时长,所述ext-x-program-date-time标签用于标识每个分片播放的绝对日期和时间。

根据本发明的又一方面,提供一种内容分发网络,包括:如上所述的录制服务器。

本发明的用于多点录制的时间同步方法、录制服务器和内容分发网络,根据rtp数据包中的hls切片信息进行hls索引和分片文件的录制,能够保证不同的录制服务器录制生成数据的一致性,可以通过rtp组播+hls单播承载直播+时移业务,提升了用户观看体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明的用于多点录制的时间同步方法的一个实施例的流程示意图;

图2为根据本发明的录制服务器的一个实施例的模块示意图;

图3为根据本发明的录制服务器的一个实施例的媒体数据录制模块的模块示意图。

具体实施方式

下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。

图1为根据本发明的用于多点录制的时间同步方法的一个实施例的流程示意图,如图1所示:

步骤101,录制服务器接收到头端系统发送的rtp数据包。

录制服务器为用于录制hls索引和分片文件的服务器,录制服务器可以设置在cdn中,作为录制节点。

步骤102,录制服务器获取rtp数据包携带的hls切片信息。

步骤103,录制服务器根据hls切片信息将rtp数据包的载荷录制为hls协议格式的媒体数据。

上述实施例中的用于多点录制的时间同步方法,根据rtp数据包中的hls切片信息进行hls索引和分片文件的录制,能够保证不同的录制服务器录制生成数据的一致性。

hls协议由苹果公司开发,是在http协议上面将媒体内容切片成若干小分片,并组织相应的m3u8(分片索引文件)文件。直播业务通过#ext-x-media-sequence标签来实现,每个更新的分片都会分配递增的序列号,终端播放时也是根据#ext-x-media-sequence标签来决定下一个要播放的分片。

rtp组播直播的头端系统,将rtp组播的rtp报头进行扩展,添加hls切片信息,将rtp报头和rtp负载内容以rtp数据包的形式发送给录制服务器。录制服务器加入rtp组播地址,接收头端系统发送的rtp组播数据包,录制服务器根据rtp数据包中的hls切片信息进行切片和储存,由hls切片信息控制所生成的时移索引和分片文件在cdn内具有全局一致性。

通过头端系统对rtp包数据进行扩展,将hls切片信息通过rtp包携带到各录制服务器,录制服务器提取rtp数据包的报头,从报头中解析出标识hls切片信息的扩展字段数据,获取hls切片信息。hls切片信息可以携带多种信息,例如,hls切片信息包括:分片的时间间隔、分片的序列号和分片的播放时间等。

头端系统将hls切片信息作为扩展数据通过rtp包携带到各录制服务器,扩展数据包括hls分片的时间间隔、分片顺序以及分片所对应的视频播放时间等。录制服务器将rtp数据包中的负载内容录制成hls协议媒体格式并进行存储。rtp包中的扩展数据是加入到标准rtp协议的标准扩展头字段中,对于不做录制的接收设备,如机顶盒,不需要识别这些信息,也不会对播放造成任何影响。

上述实施例中的用于多点录制的时间同步方法,支持h.264、h.265等不同编码格式,根据rtp数据包中的hls切片信息进行hls索引和分片文件的录制,避免录制节点需要消耗性能资源进行视频解码来获取一致的分片时间信息,使得采用rtp组播+hls单播承载直播+时移业务成为可能,节省了网络开销,又提升了用户在网络不佳环境的观看体验。

在一个实施例中,扩展字段包括:frameinterval、hlsmediasequence和hlsprogramdatetime。frameinterval字段用于标识分片的时间间隔,即表示当前rtp负荷中的帧的播放时间相对上一帧的时间间隔,为该分片的播放时长。hlsmediasequence字段用于标识当前rtp数据包的载荷中的视频数据所在的分片序列号。hlsprogramdatetime字段用于标识当前rtp数据包的载荷所在的分片开始播放的绝对播放日期和时间,即表示当前rtp负荷所在的hls媒体分片中的第一个采样帧的绝对播放日期和时间。

录制服务器根据hls切片信息将rtp数据包的载荷内容录制成hls协议媒体格式的分片文件。录制服务器生成与分片文件相对应的索引文件,在索引文件中设置了分片的间隔时长和每个分片第一帧播放的绝对日期和时间。

索引文件可以为m3u8文件,在索引文件中设置了分片的间隔时长和分片播放的绝对日期和时间包括:录制服务器在索引文件中的第一个分片文件描述信息前加入extinf和ext-x-program-date-time标签;extinf标签用于标识每个分片的间隔时长,ext-x-program-date-time标签用于标识每个分片播放的绝对日期和时间。

例如,录制服务器使用tagext-x-program-date-time标签为分片设置绝对播放时间,进行组播转单播的录制的m3u8文件,m3u8文件的内容如下:

#extm3u

#ext-x-version:4

#ext-x-targetduration:10

#ext-x-media-sequence:0

#ext-x-program-date-time:2015-07-08t19:00:00.000+08:00

#extinf:10,

1.ts

#ext-x-program-date-time:2015-07-08t19:00:10.000+08:00

#extinf:10,

2.ts

#ext-x-program-date-time:2015-07-08t19:00:20.000+08:00

#extinf:10,

3.ts

#ext-x-program-date-time:2015-07-08t19:00:30.000+08:00

#extinf:10,

4.ts

#ext-x-program-date-time:2015-07-08t19:00:40.000+08:00

#extinf:10,

5.ts

由上可知,在第一个分片文件1.ts之前加了ext-x-program-date-time,表明分片1.ts开始播放的绝对时间是19:00:00,2.ts的绝对播放时间就是19:00:10,以此类推,根据ext-x-program-date-time标签,能够知道每一个ts分片的绝对播放日期和时间。相应地,从extinf标签也能够知道该分片可持续播放的时间长度。

当终端从直播切换到时移播放模式时,获取m3u8文件。终端从m3u8文件中提取extinf标签和ext-x-program-date-time标签设置的数值。终端基于数值确定与时移播放对应的分片文件信息。例如,终端需要播放1分钟前的视频,即19:01分的视频,从m3u8文件中提取extinf的值为10秒,ext-x-program-date-time标签的值为19:00,则终端确定与时移播放对应的分片文件为m3u8文件中的第6个分片,获取第6个分片的信息,如序列号等。

终端向录制服务器发送时移播放请求,时移播放请求携带有与时移播放对应的分片文件信息,终端接收到与时移播放对应的分片文件作为时移内容进行播放。终端从时移切回直播时,停止时移内容的请求,清空时移内容,终端加入对应直播频道的组播组,接收rtp组播数据,并开始播放。

上述实施例中的用于多点录制的时间同步方法,能够实现不同录制服务器生成数据的一致性,可以通过rtp组播+hls单播承载直播+时移业务,能节省网络开销,并可以提升了用户在网络不佳环境的观看体验。

如图2所示,本发明提供一种录制服务器20包括:媒体数据接收模块21、切片信息获取模块22和媒体数据录制模块23。媒体数据接收模块21接收头端系统发送的rtp数据包。切片信息获取模块22获取rtp数据包携带的hls切片信息。媒体数据录制模块23录制服务器根据hls切片信息将rtp数据包的载荷录制为hls协议格式的媒体数据。

媒体数据接收模块21加入rtp组播地址,接收头端系统发送的rtp组播数据包。切片信息获取模块22提取rtp数据包的报头,从报头中解析出标识hls切片信息的扩展字段数据,获取hls切片信息。其中,hls切片信息包括:分片的时间间隔、分片的序列号和分片的播放时间等。

如图3所示,媒体数据录制模块23包括:分片录制单元231和索引生成单元232。分片录制单元231根据hls切片信息将rtp数据包的载荷内容录制成hls协议媒体格式的分片文件。索引生成单元232生成与分片文件相对应的索引文件,在索引文件中设置分片的间隔时长和每个分片播放的绝对日期和时间。

索引生成单元232在索引文件中的每个分片文件描述信息前加入extinf和ext-x-program-date-time标签。extinf标签用于标识每个分片的间隔时长,ext-x-program-date-time标签用于标识第一个分片播放的绝对日期和时间。

在一个实施例中,本发明提供一种内容分发网络,包括:如上的录制服务器。

上述实施例中的用于多点录制的时间同步方法、录制服务器和内容分发网络,能够实现不同录制服务器生成数据的一致性,可以通过rtp组播+hls单播承载直播+时移业务,能节省网络开销,又减少了节点性能资源消耗,提升了用户观看体验。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1