首页> 中国专利> 面向互联网的基于分片传输的大尺度直播时移方法及系统

面向互联网的基于分片传输的大尺度直播时移方法及系统

摘要

本发明提供一种面向互联网的基于分片传输的大尺度直播时移方法,包括:客户端发出时移请求以获取切片索引文件;时移服务端由时移时间点得到时移状态标记;客户端接收到时移服务端的反馈后,向时移服务端发出切片索引文件获取请求;时移服务端对切片索引文件获取请求进行处理,以得到该次时移请求的切片序列;时移服务端通过切片序列,生成相应的直播切片索引文件,并返回给客户端;客户端从索引文件中取得具体的切片序列,进行实际切片文件的下载和播放,并重复发出相同的切片索引文件获取请求。实施上述方法的系统,包括时移服务端与客户端。本发明的客户端简单并易于实现,无需计算需要获取的时移索引范围,无需保留并合并各次获取时移索引。

著录项

  • 公开/公告号CN103581693A

    专利类型发明专利

  • 公开/公告日2014-02-12

    原文格式PDF

  • 申请/专利权人 北京清源新创科技有限公司;

    申请/专利号CN201310559939.7

  • 发明设计人 李伟华;李毅;要文涛;

    申请日2013-11-12

  • 分类号H04N21/23(20110101);H04N21/643(20110101);H04N21/845(20110101);H04N21/8547(20110101);H04N21/858(20110101);

  • 代理机构11335 北京汇信合知识产权代理有限公司;

  • 代理人陈圣清

  • 地址 100084 北京市海淀区中关村东路1号院8号楼B座16层1801D-2

  • 入库时间 2024-02-19 23:19:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):H04N21/23 申请日:20131112

    实质审查的生效

  • 2014-02-12

    公开

    公开

说明书

技术领域

本发明涉及视频传输技术领域,尤其涉及一种面向互联网的基于分片传 输的大尺度直播时移方法及系统。

背景技术

近年来,互联网视频业务在国内外均处于一个蓬勃发展的时期,而互联 网视频服务中广泛采用了分片传输模式,以便于搭建或利用已有的CDN服务。 具体的,包括适用于ios终端的HTTP Live Streaming(HLS)协议、适用于flash  player的HTTP Dynamic Streaming(HDS)协议,有可能作为下一代国际标准 的Dynamic Adaptive Streaming over HTTP(DASH)协议,此外还有一些基于flv 切片格式的私有协议,等等。

HLS是苹果公司提出的流媒体网络传输协议,工作原理是把整个流分成 一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放 时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源, 允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会 下载一个包含元数据的extended M3U(m3u8)文件,即切片索引文件,用于寻 找可用的媒体切片。

HDS是Adobe公司的传统流媒体解决方案RTMP+FLV的结合,在互联 网视频行业得到了广泛的应用。它包含了多个部件来完成内容的准备工作, 并通过HTTP将内容传送给终端的Flash Player。内容准备模块包括了面向 VOD和面向Live直播的模块,VOD打包模块将媒体文件分片,并以F4F的 格式存储,Live直播打包模块将直播流实时地写入到F4F文件当中。同时均 会产生媒体对应的F4M格式的索引文件,索引文件中包含了编码、分辨率以 及码率等参数信息。

DASH也称为MPEG-DASH,类似于HLS、HDS等协议,DASH也将视 频内容切片为多个视频小片段,每个片段包含一小段视频内容。DASH是第 一个基于HTTP的自适应码率的国际标准。

综合而言,此类协议的基本特点为:

均采用了索引文件加实际视频切片的模式。

区分为点播、直播不同的服务形式:

采用分片传输模式来提供点播视频服务时,通常客户端将一次性获得包 含所有视频切片索引信息的索引文件,进而再依据播放内容动态获取视频切 片内容。HLS、HDS协议均是如此。

采用分片传输模式来提供直播视频服务时,通常客户端将定期刷新下载 包含当前若干视频切片索引信息的索引文件,进而依据索引文件的内容,以 及当前需要播放的内容,决定是否获取以及获取哪些视频切片内容。如HLS 协议时,客户端不停的下载更新m3u8索引文件,从中获得新产生的切片URL 后,再下载相应切片文件并进行播放。

通常直播、点播服务时,索引文件的格式略有不同,客户端以此区分服 务的形式,如HLS协议时,点播服务的m3u8尾部一般会有如下标记 “#EXT-X-ENDLIST”,而直播服务的m3u8则一般没有这个标记。如HDS协 议时,则索引f4m文件则通过“<streamType>”为recorded或live来区分点播还 是直播。

随着视频直播业务的开展,直播时移的需求也越来越强烈。直播时移的 功能,是指用户在观看直播时,可通过拖动播放器进度条等形式,定位到当 前直播点之前的某个时间点进行观看,视频直播时视频数据是永远存在的, 没有结尾,所以直播时移观看过程也同样是可一直持续的,如同用户从那个 时间点开始收看直播一样。

在传统的流媒体技术领域,客户端和服务器之间通常采用rtsp、rtmp、 flv-http等面向连接的传输和交互协议,通过这些协议实现时移的基本方法是:

1)在客户端和服务器建立连接后,即开始接收流数据,在直播的过程中, 该连接不会中断。

2)在客户端要求访问时移数据时,通过已建立的连接,将希望跳转到的 时间值传递给服务端,服务端定位到该时间值继续发送流数据。

3)客户端收到流数据后,从该时间点开始按视频流的时间戳开始播放。 此后客户端的播放视频内容将始终与当前最新的视频内容保持一个恒定的差 值。

4)客户端还可进行快进、快退、跳回当前直播点等操作,服务器端接收 到客户端请求后,调整相应的视频数据发送策略,以达到不同的效果。

如果采用分片传输机制来实现直播时移服务,特别是基于HLS、HDS等 通用协议时,面临不少问题:

采用点播的模式来实现一种近似但不等价于直播时移的功能。如针对 HLS协议,通过在获取m3u8的URL中携带时间点参数的方法来访问服务端, 服务端接收到客户端携带时间参数的获取m3u8访问请求后,回应一个点播类 型的m3u8文件给客户端,文件中的最旧切片为请求时间参数对应切片,最新 切片为当前时间对应切片。客户端收到这样的m3u8,遵循处理点播类型m3u8 的规则,将播放从该m3u8中的最旧切片到该m3u8中的最新切片,然后结束 播放,这样将无法获取并播放随着时间的推移而新生成出来的切片。

也有采用专门客户端软件来实现基于分片传输的直播时移,但这样通常 是基于标准的HLS、HDS等协议做适当的修改,如在前述点播模式实现近似 直播时移服务时,当播放结束后,从结束时间点再启动一个新的菜单回看, 并循环往复下去,以此模拟持续不断地时移直播。但这种模式,标准的ios  player、flash player无法直接使用,限制了直播时移应用的推广。

有的时移服务,将较大范围的视频切片索引信息以直播的形式全部发送 到客户端,如整个服务端的可时移范围,客户端在此范围内可进行拖动操作, 即时移操作,同时因为采用了直播形式,所以客户端会定期更新索引文件以 获取新的切片信息。这样也可实现直播时移服务,但每次获取索引信息的数 据量较大,即使采用HTTP-Gzip等压缩算法,当采用HLS协议时,在7天 时移的大尺度时移范围下,索引文件的大小仍将达到几百K字节。

可见,问题的关键在于,当采用HLS、HDS等互联网主流的分片传输播 放协议时,在点播模式下客户端不会主动更新索引文件,无法实现直播时移 内容的持续播放,在直播模式下,由于采用了客户端被动请求索引信息的模 式,即客户端每次发出的索引信息获取的URL均是一样的,不会依据自身的 播放状态向服务端指定获取一个特定范围内的索引信息,这样在直播时服务 端仅能依据当前直播点为客户端提供最近的一段索引信息,通常HLS为最近 的10个切片文件的索引信息,但时移服务时,每个用户在不同时间点所需要 的索引信息均是不同的。

发明内容

针对上述问题中存在的不足之处,本发明提供一种客户端简单并易于实 现,无需计算需要获取的时移索引范围,无需保留并合并各次获取时移索引 的面向互联网的基于分片传输的大尺度直播时移方法及系统。

为实现上述目的,本发明提供一种面向互联网的基于分片传输的大尺度 直播时移方法,包括以下步骤:

S100、客户端发出时移请求R以获取切片索引文件;

S200、时移服务端接到客户端请求后,由时移时间点TR得到时移状态标 记TF,若时移时间点TR与时移状态标记TF相同,则跳转执行步骤S400, 若二者不同,则向客户端反馈直播内容标识CH和时移状态标记TF;

S300、客户端接收到时移服务端的反馈后,向时移服务端发出切片索引 文件获取请求,并将时移请求R重定义为该请求;

S400、时移服务端依据时移状态标记TF或时移点相对于当前直播时间的 偏移值TC,并依据当前物理时间或当前直播流时间戳,对切片索引文件获取 请求进行处理,以得到该次时移请求R的切片序列;

S500、时移服务端通过切片序列,生成相应的直播切片索引文件,并返 回给客户端;

S600、客户端从索引文件中取得具体的切片序列,进行实际切片文件的 下载和播放,并重复向时移服务端发出和时移请求R相同的切片索引文件获 取请求,以不断获得新的切片序列、下载新的切片文件并播放。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S100中,客户端发出时移请求R中包括直播内容标识CH与时移时间点 TR,其中,直播内容标识CH为频道名称、频道URL或频道ID;

时移时间点TR为时移点的物理时间TA、时移点的视频流时间戳TB、或 时移点相对于当前直播时间的偏移值TC中的一种。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S200中,

若时移时间点TR是时移点物理时间TA或时移点流时间戳TB,向客户 端反馈直播内容标识CH和时移状态标记TF,将客户端请求进行HTTP重定 向,重定向的URL中包含直播内容标识CH和时移状态标记TF,包括:

情况a、若时移时间点TR为时移点物理时间TA,则时移状态标记TF为 时移点的流时间戳信息和当前物理时间信息的元组;

情况b、若时移时间点TR为时移点流时间戳TB,则时移状态标记TF为 时移点的流时间戳信息和当前物理时间信息的元组。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,若时 移时间点TR是时移点相对于当前直播时间的偏移值TC,则时移状态标记TF 为时移点相对于当前直播时间的偏移值TC。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S300中,客户端发出的切片索引文件获取请求中包括直播内容标识CH和 时移状态标记TF。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S400中,包括以下步骤:

S401、从切片索引文件请求中得到时移状态标记TF或时移点相对于当前 直播时间的偏移值TC;

S402、若从切片索引文件请求中得到时移点相对于当前直播时间的偏移 值TC,则时移状态标记TF是TFC,且TFC为时移点相对于当前直播时间的 偏移值TC;

S403、取当前物理时间T或当前流时间戳S;

S404、计算本次时移请求R对应的流时间戳ST,包括:

若时移状态标记TF是TFA,则:流时间戳ST=TFA1+(T-TFA2)

若时移状态标记TF是TFB,则:流时间戳ST=TFB1+(T-TFB2)

若时移状态标记TF是TFC,则:流时间戳ST=S-TFC;

S405、计算本次时移请求R对应的切片序列。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S500中,包括:

情况a:当协议为HLS协议时,按照m3u8文件格式规范,时移服务基于 预设的切片时间间隔D、切片序列和存储的时移数据,生成m3u8格式的切片 索引文件;

情况b:当协议为HDS协议时,按照bootstrap文件格式规范,时移服务 基于预设的切片时间间隔D、切片序列和存储的时移数据,生成bootstrap格 式的切片索引文件。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S600中,还包括:客户端向时移服务端重复发出的切片索引文件获取请求 中,包含直播内容标识CH和时移点相对于当前直播时间的偏移值TC或直播 内容标识CH和时移状态标记TF。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S100实施前,还包括在时移服务端中建立时移数据存储区的步骤S10,其 步骤如下:

S11、定义时移时间长度为L,则时移服务器保证存储从时间戳(S-L)到当 前时间戳S的音、视频数据,且随着时间戳S的推移,不断删除旧的时移数 据和存储新的时移数据,进行滚动存储;

S12、对直播视频数据和时移视频数据,建立时间戳和切片序列的映射规 则。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在步 骤S10中,预设的索引文件中需包含的切片个数C是常量,与时移时间长度 L无关。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,当协 议为HLS协议时,预设的索引文件中需包含的切片个数C最常见的取值为 C=10,比较常见取值为3<=C<=20;当协议为HDS协议时,C最常见的取值 为C=20,比较常见取值为5<=C<=50。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,当用 户要访问多个码率直播构成的自适应码率直播组内容进行时移时,包括以下 步骤:

SA01、客户端发出时移请求R时,携带请求的直播频道组内容标识CG、 时移时间点TR;

SA02、时移服务端接到客户端请求后,对时移时间点TR进行解析,若 时移时间点TR为是时移点物理时间TA或时移点流时间戳TB,则选择该直 播组中一路直播,得到时移状态标记TF,然后向客户端反馈直播频道组内容 标识CG和时移状态标记TF;

若时移时间点TR是时移点相对于当前直播时间的偏移值TC,则直接跳 转至SA04;

SA03、客户端接收到时移服务端的反馈后,向时移服务端发出请求,请 求中携带直播频道组内容标识CG和时移状态标记TF;

SA04、时移服务端接到客户端携带的直播频道组内容标识CG和时移状 态标记TF或直播频道组内容标识CG和时移点相对于当前直播时间的偏移值 TC的请求后,生成组索引文件返回给客户端;

SA05、客户端收到组索引文件后,获取其中包含的各路直播对应的索引 文件URL;

SA06、客户端对各路直播对应的索引文件URL进行判断,若各路直播对 应的索引文件URL中包含多个URL,则依据自身情况选择URL并进行请求;

若各路直播对应的索引文件URL中只有一个URL,则直接请求该URL;

SA07、时移服务端接收到客户端的包含直播内容标识CH和时移状态标 记TF或直播内容标识CH和时移点相对于当前直播时间的偏移值TC的索引 获取请求后,并依次执行步骤S400和S500,形成索引文件返回给客户端;

SA08、客户端收到索引文件后,从索引文件中取得具体的切片序列,进 行实际切片文件的下载和播放;

SA09、跳转至步骤SA06,以维持时移过程。

上述的面向互联网的基于分片传输的大尺度直播时移方法,其中,在时 移过程中采用下述步骤以进行快进,包括:

SB01、客户端发送快进请求时,URL中携带直播内容标识CH、时移时 间点TR与播放标识PM;

SB02、时移服务端接收客户端请求;

SB03、时移服务端从请求URL中,获得播放标识PM,并提取出快进倍 速SP;

SB04、若播放标识PM是快进的请求,且当前播放内容已达到直播点, 则时移服务端发送重定向请求给客户端,重定向到正常速率播放的URL,结 束快进处理过程;若当前播放内容未达到直播点,则转SB05;

SB05、时移服务端由时移时间点TR得到时移状态标记TF,将TF和快 进倍速SP反馈给客户端;

SB06、客户端接收到时移服务端的反馈后,向时移服务端发出新的切片 索引文件获取请求;

SB07、时移服务端取当前物理时间T;

SB08、时移服务端从客户端请求中获取时移状态标记TF和快进倍速SP 后,计算本次时移快进请求对应的流时间戳ST;

SB09、时移服务端计算本次时移请求R对应的切片序列:

将时间戳ST作为输入,执行步骤S12的映射规则,得到切片序列;

SB10、时移服务端通过切片序列,生成相应的切片索引文件,返回给客 户端;

SB11、客户端从索引文件中取得具体的切片序列,发送实际切片文件的 访问请求;

SB12、时移服务端收到客户端发来的切片访问请求后,返回的切片中只 包含关键帧,不包含其他视频帧类型数据和音频数据,包括:

SB121、返回的切片中只包含部分关键帧,而忽略掉另一部分关键帧,以 保证快进时发送的切片数据占用带宽不会过大;

SB122、修改返回的切片中的关键帧时间戳,以使时间戳的增长速度符合 视频流的快进播放所需的增长速度;

SB13、客户端播放收到的切片数据;

SB14、客户端重复向时移服务端发出包含直播内容标识CH、时移状态标 记TF、快进倍速SP的快进切片索引文件获取请求,以不断获得新的切片序 列、下载新的切片文件并播放。

本发明还提供一种实施上述面向互联网的基于分片传输的大尺度直播时 移方法的系统,包括客户端与时移服务端,其中,客户端包括:

客户端数据传输模块,用于发送时移请求、向时移服务端发送切片索引 文件获取请求、以及接收时移服务端的反馈;

切片索引文件获取模块,用于获取切片索引文件;

切片序列处理模块,用于取得索引文件中具体的切片序列,进行实际切 片文件的下载和播放,并重复发出切片索引文件获取请求,以不断获得新的 切片序列、下载新的切片文件并播放;

时移服务端包括:

时移数据存储区,用于存储时移数据;

时移状态标记生成模块,用于在时移服务端接到客户端请求后,由时移 时间点得到时移状态标记;

切片序列生成模块,用于对切片索引文件获取请求进行处理,以得到该 次时移请求的切片序列;

直播切片索引文件生成模块,用于通过切片序列生成相应的直播切片索 引文件;

时移服务端数据传输模块,用于接收客户端发送的时移请求,并将时移 服务端的反馈以及生成的直播切片索引文件发送给客户端。

与现有技术相比,本发明具有以下优点:

1、客户端简单并易于实现,无需计算需要获取的时移索引范围,无需保 留并合并各次获取的时移索引;

2、适用于HLS、HDS、DASH等协议,使得ios player、flash player可直 接访问直播时移服务,易于在互联网无须安装定制播放器即可实现直播时移 服务;

3、在回退到时移点后,可像直播服务那样,持续播放视频内容,而不会 像菜单时移服务那样,在视频播放到某个时间点后停止播放;

4、在提供时移服务时,可实现快进播放;

5、支持多个码率直播构成的自适应码率直播组的时移;

6、在大尺度时移范围时,无须下载数据量过大的索引文件,仅需下载当 前播放点附近的视频片断对应的索引信息,提高了网络传输效率和服务响应 时间;

7、针对多台时移服务器构成的分布式系统(如CDN系统),可使客户端 在访问不同的时移服务器来获取视频片段索引信息时,随时间推移所获得的 索引信息之间保持连续,如同一直访问一台服务器一样,而不会因为访问服 务器的改变而出现获得的索引信息之间不连续的情况。

附图说明

图1为本发明方法部分的流程图。

具体实施方式

如图1所示,本发明提供一种面向互联网的基于分片传输的大尺度直播 时移方法,包括以下步骤:

S100、客户端发出时移请求R以获取切片索引文件。

具体的,在步骤S100中:

客户端发出时移请求R中包括直播内容标识CH与时移时间点TR,其中, 直播内容标识CH为频道名称、频道URL、频道ID或其他直播内容标识信息;

时移时间点TR为时移点的物理时间TA、时移点的视频流时间戳TB、时 移点相对于当前直播时间的偏移值TC或其他时移时间点表示方式。

另外,在步骤S100实施前,需要执行步骤S10,在时移服务端中建立时 移数据存储区。

具体的,包括以下步骤:

定义时移时间长度为L,则时移服务器保证存储从时间戳(S-L)到当前 时间戳S的视音频数据,且随着时间戳S的推移,不断删除旧的时移数据和 存储新的时移数据,进行滚动存储。

对直播视频数据和时移视频数据,建立时间戳和切片序列的映射规则。 其中,对时间戳和切片序列的具体映射方法包括以下步骤:

设定IS=直播视频数据和时移视频数据中的关键帧的时间戳集合,IS= {I0,I1,…}

从IS中查找小于等于CS的元素,从满足条件的元素中取最大值,设为 ICS,其中,CS为一个任意的合法的视频流时间戳;

计算CS对应切片号N(CS),方法为:N(CS)=取整(F(ICS)),其中,F是 以ICS为自变量的线性函数;其中,F的一种定义方法为:

设定D=预设的切片时间间隔,则F(ICS)=ICS/D。

设定C=预设的索引文件中需包含的切片个数,则CS对应的切片序列 的切片号集合为:{N(CS)-C+1+B,N(CS)-C+2+B,…N(CS)+B},其中:B 是取值范围[0,C-1]的常整数。

其中,预设的索引文件中需包含的切片个数C是常量,与时移时间长度 L无关。

其中,当协议为HLS协议时,预设的索引文件中需包含的切片个数C最 常见的取值为C=10,比较常见取值为3<=C<=20;当协议为HDS协议时,C 最常见的取值为C=20,比较常见取值为5<=C<=50。

S200、时移服务端接收到客户端请求后,由时移时间点TR得到时移状态 标记TF,并将时移状态标记TR与时移时间点TF进行比较,若时移时间点 TR与时移状态标记TF相同,则跳转执行步骤S400,若二者不同,则向客户 端反馈直播内容标识CH和时移状态标记TF。

具体的,在步骤S200中,包括:

若时移时间点TR是时移点物理时间TA或时移点流时间戳TB,向客户 端反馈直播内容标识CH和时移状态标记TF,将客户端请求进行HTTP重定 向,重定向的URL中包含直播内容标识CH和时移状态标记TF,包括:

情况a、若时移时间点TR为时移点物理时间TA,则时移状态标记TF为 时移点的流时间戳信息和当前物理时间信息的元组:

TF为TFA,由TFA1和TFA2构成,TFA={TFA1,TFA2},其中:

TFA1=S-(T-TA)

TFA2=T

其中,T为当前物理时间,S为当前流时间戳。

情况b、若时移时间点TR为时移点流时间戳TB,则时移状态标记TF为 时移点的流时间戳信息和当前物理时间信息的元组:

TF为TFB,由TFB1和TFB2构成,TFB={TFB1,TFB2},其中:

TFB1=TB

TFB2=T

其中,T为当前物理时间。

另外,若时移时间点TR是时移点相对于当前直播时间的偏移值TC,则 时移状态标记TF为时移点相对于当前直播时间的偏移值TC。

S300、客户端接收到时移服务端的反馈后,向时移服务端发出切片索引 文件获取请求,并将时移请求R重定义为该请求。其中,客户端发出的切片 索引文件获取请求中包括直播内容标识CH和时移状态标记TF。

S400、时移服务端依据时移状态标记TF或时移点相对于当前直播时间的 偏移值TC,并依据当前物理时间或当前直播流时间戳,对切片索引文件获取 请求进行处理,以得到该次时移请求R的切片序列。

具体的,包括以下步骤:

S401、从切片索引文件请求中得到时移状态标记TF或时移点相对于当前 直播时间的偏移值TC;

S402、若从切片索引文件请求中得到时移点相对于当前直播时间的偏移 值TC,则时移状态标记TF是TFC,且TFC为时移点相对于当前直播时间的 偏移值TC;

S403、取当前物理时间T或当前流时间戳S;

S404、计算本次时移请求R对应的流时间戳ST,包括:

若时移状态标记TF是TFA,则:流时间戳ST=TFA1+(T-TFA2)

若时移状态标记TF是TFB,则:流时间戳ST=TFB1+(T-TFB2)

若时移状态标记TF是TFC,则:流时间戳ST=S-TFC;

S405、计算本次时移请求R对应的切片序列:将时间戳ST作为输入,执 行S12的映射规则,得到切片序列。

S500、时移服务端通过切片序列,生成相应的直播切片索引文件,并返 回给客户端。

在步骤S500中还包括:

情况a:当协议为HLS协议时,按照m3u8文件格式规范,时移服务基于 预设的切片时间间隔D、切片序列和存储的时移数据,生成m3u8格式的切片 索引文件;

情况b:当协议为HDS协议时,按照bootstrap文件格式规范,时移服务 基于预设的切片时间间隔D、切片序列和存储的时移数据,生成bootstrap格 式的切片索引文件。

S600、客户端从索引文件中取得具体的切片序列,进行实际切片文件的 下载和播放,并重复向时移服务端发出和时移请求R相同的切片索引文件获 取请求,以不断获得新的切片序列、下载新的切片文件并播放。其中,客户 端向时移服务端重复发出的切片索引文件获取请求中,包含直播内容标识CH 和时移点相对于当前直播时间的偏移值TC或直播内容标识CH和时移状态标 记TF

另外,在时移服务端对当前物理时间T或当前流时间戳S取值时,针对 多台服务器构成的分布式直播时移系统,当用户在直播时移过程中,在不同 时刻需要访问不同的时移服务器来获取索引文件时,应对不同服务器的当前 物理时间T和当前直播流时间戳S进行同步。包括以下步骤:

多台时移服务器利用NTP时间同步服务器进行物理时间T同步;

在多台时移服务器中,选择一台作为源服务器。各时移服务器需要取得 物理时间T时,并不取本地物理时间,而是向源服务器获取其物理时间作为T;

在多台时移服务器中,选择一台作为源服务器。各时移服务器的当前直 播流时间戳不是在本地自行生成,而是向源服务器获取其当前直播流时间戳 作为S。

在本发明中,当用户要访问多个码率直播构成的自适应码率直播组内容 进行时移时,采用下述步骤实现:

SA01、客户端发出时移请求R时,携带请求的直播频道组内容标识CG、 时移时间点TR;

SA02、时移服务端接到客户端请求后,对时移时间点TR进行解析,若 时移时间点TR为是时移点物理时间TA或时移点流时间戳TB,则选择该直 播组中一路直播,得到时移状态标记TF,然后向客户端反馈直播频道组内容 标识CG和时移状态标记TF;

若时移时间点TR是时移点相对于当前直播时间的偏移值TC,则直接跳 转至SA04;

SA03、客户端接收到时移服务端的反馈后,向时移服务端发出请求,请 求中携带直播频道组内容标识CG和时移状态标记TF;

SA04、时移服务端接收到客户端携带的直播频道组内容标识CG和时移 状态标记TF或直播频道组内容标识CG和时移点相对于当前直播时间的偏移 值TC的请求后,生成组索引文件返回给客户端,组索引文件包含该直播组中 各路直播对应的索引文件URL,URL中包含直播内容标识CH和时移状态标 记TF或直播内容标识CH和时移点相对于当前直播时间的偏移值TC;

SA05、客户端收到组索引文件后,获取其中包含的各路直播对应的索引 文件URL;

SA06、客户端对各路直播对应的索引文件URL进行判断,若各路直播对 应的索引文件URL中包含多个URL,则依据自身情况选择URL并进行请求;

若各路直播对应的索引文件URL中只有一个URL,则直接请求该URL;

SA07、时移服务端接收到客户端的包含直播内容标识CH和时移状态标 记TF或直播内容标识CH和时移点相对于当前直播时间的偏移值TC的索引 获取请求后,并依次执行步骤S400和S500,形成索引文件返回给客户端;

SA08、客户端收到索引文件后,从索引文件中取得具体的切片序列,进 行实际切片文件的下载和播放;

SA09、跳转至步骤SA06,以维持时移过程。

在本发明中,在时移过程中采用下述步骤以进行快进,包括:

SB01、客户端发送快进请求时,URL中携带直播内容标识CH、时移时 间点TR与播放标识PM;

其中,时移时间点TR:只能是时移点物理时间TA或时移点流时间戳TB;

播放标识PM:包含:是快进还是正常播放、快进倍速;

SB02、时移服务端接收客户端请求;

SB03、时移服务端从请求URL中,获得播放标识PM,并提取出快进倍 速SP;

SB04、若播放标识PM是快进的请求,且当前播放内容已达到直播点, 则时移服务端发送重定向请求给客户端,重定向到正常速率播放的URL,结 束快进处理过程;若当前播放内容未达到直播点,则执行步骤SB05;

SB05、时移服务端由时移时间点TR得到时移状态标记TF,将TF和快 进倍速SP反馈给客户端,包括:

情况a、若时移时间点TR为时移点物理时间TA,则时移状态标记TF为 时移点的流时间戳信息和当前物理时间信息的元组:

TF为TFA,由TFA1和TFA2构成,TFA={TFA1,TFA2},其中:

TFA1=S-(T-TA)

TFA2=T

其中,T为当前物理时间,S为当前流时间戳;

情况b、若时移时间点TR为时移点流时间戳TB,则时移状态标记TF为 时移点的流时间戳信息和当前物理时间信息的元组:

TF为TFB,由TFB1和TFB2构成,TFB={TFB1,TFB2},其中:

TFB1=TB

TFB2=T

其中,T为当前物理时间;

SB06、客户端接收到时移服务端的反馈后,向时移服务端发出新的切片 索引文件获取请求;

SB07、时移服务端取当前物理时间T;

SB08、时移服务端从客户端请求中获取时移状态标记TF和快进倍速SP 后,计算本次时移快进请求对应的流时间戳ST:

若TF是TFA,则:ST=TFA1+(T-TFA2)*SP;

若TF是TFB,则:ST=TFB1+(T-TFB2)*SP;

SB09、时移服务端计算本次时移请求R对应的切片序列:

将时间戳ST作为输入,执行步骤S12的映射规则,得到切片序列;

SB10、时移服务端通过切片序列,生成相应的切片索引文件,返回给客 户端;

SB11、客户端从索引文件中取得具体的切片序列,发送实际切片文件的 访问请求;

SB12、时移服务端收到客户端发来的切片访问请求后,返回的切片中只 包含关键帧,不包含其他视频帧类型数据和音频数据,包括:

SB121、返回的切片中只包含部分关键帧,而忽略掉另一部分关键帧,以 保证快进时发送的切片数据占用带宽不会过大。快进倍速SP越大,忽略的关 键帧比例越高;

SB122、修改返回的切片中的关键帧时间戳,以使时间戳的增长速度符合 视频流的快进播放所需的增长速度。

设切片中的一个任意关键帧的时间戳是SI,则修改后的时间戳SIT计算 方法为:

如TF是TFA,则:SIT=(SI-TFA1)/SP

如TF是TFB,则:SIT=(SI-TFB1)/SP;

SB13、客户端播放收到的切片数据;

SB14、客户端重复向时移服务端发出包含直播内容标识CH、时移状态标 记TF、快进倍速SP的快进切片索引文件获取请求,以不断获得新的切片序 列、下载新的切片文件并播放。

在本发明中,针对HDS协议客户端采用如下具体实现方法,包括以下步 骤:

SC01、编写html页面,其中包含Adobe FlashPlayer播放控件;

SC02、定义时移时间长度L,则页面中设计播放进度条。其中,进度条 的结束时间是当前物理时间T,开始时间是T-L,进度条的时间区间为:[T-L, T]。随着物理时间T的推移,进度条的开始时间和结束时间也不断推移。

SC03、初始访问页面,客户端发送不携带时移参数的直播请求,播放当 前直播的内容;

SC04、用户拖动进度条后,计算拖动到的目标时间TP。

P=拖动目标位置在整个进度条中的比例(0-1)

TP=(T-L)+L*P;

SC05、以目标时间TP为时移时间参数,启动播放器发送请求到时移服务 器。

类似如下URL:

http://domainname:port/index.f4m?begintimeabs=<TP>

其中:

domainname: 时移服务器域名

port:       时移服务器端口

index.f4m:  请求的直播描述文件,f4m格式为HDS协议的标准描述 文件格式。

begintimeabs:请求时移到的绝对时间

SC06、FlashPlayer自动完成后续操作,获取时移内容并进行播放,流程 和flashplayer访问一个标准HDS直播的流程相同。如下:

a)接收时移服务端的302重定向请求,访问重定向后的URL。类似如下:

http://domainname:port/index.f4m?begintimeabs=<TP>&tsflag=<TF>

其中,

tsflag:时移服务器基于客户端本次访问信息生成的时移状态标记。

b)接收服务器发送的真实f4m文件,从中提取bootstrap索引文件的URL。

UBT=bootstrap索引文件的URL,bootstrap为HDS协议的标准索引文件。

c)不停刷新访问UBT,从中提权相应fmp4切片文件序列。

d)从服务端下载对应fmp4切片文件,并进行播放。

本发明还提供一种面向互联网的基于分片传输的大尺度直播时移系统, 包括客户端与时移服务端,其中,客户端包括:

客户端数据传输模块,用于发送时移请求、向时移服务端发送切片索引 文件获取请求、以及接收时移服务端的反馈。

切片索引文件获取模块,用于获取切片索引文件。

切片序列处理模块,用于取得索引文件中具体的切片序列,进行实际切 片文件的下载和播放,并重复发出切片索引文件获取请求,以不断获得新的 切片序列、下载新的切片文件并播放。

时移服务端包括:

时移数据存储区,用于存储时移数据。

时移状态标记生成模块,用于在时移服务端接到客户端请求后,由时移 时间点得到时移状态标记。其中,若时移状态标记TF为时移时间点TR,则 跳转执行切片序列生成模块,否则向客户端反馈直播内容标识CH和时移状态 标记TF。

切片序列生成模块,用于对切片索引文件获取请求进行处理,以得到该 次时移请求的切片序列。其中,时移服务端依据时移状态标记TF或当前直播 时间的偏移值TC,并依据当前物理时间或当前直播流时间戳,对切片索引文 件获取请求进行处理,以得到该次时移请求的切片序列。

直播切片索引文件生成模块,用于通过切片序列生成相应的直播切片索 引文件。其中,当协议为HLS协议时,按照m3u8文件格式规范,时移服务 基于预设的切片时间间隔D、切片序列和存储的时移数据,生成m3u8格式的 切片索引文件;

当协议为HDS协议时,按照bootstrap文件格式规范,时移服务基于预设 的切片时间间隔D、切片序列和存储的时移数据,生成bootstrap格式的切片 索引文件。

时移服务端数据传输模块,用于接收客户端发送的时移请求,并将时移 服务端的反馈以及生成的直播切片索引文件发送给客户端。

惟以上所述者,仅为本发明的较佳实施例而已,举凡熟悉此项技艺的专 业人士。在了解本发明的技术手段之后,自然能依据实际的需要,在本发明 的教导下加以变化。因此凡依本发明申请专利范围所作的同等变化与修饰, 曾应仍属本发明专利涵盖的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号