快进快退的处理方法及终端与流程

文档序号:11064977阅读:908来源:国知局
快进快退的处理方法及终端与制造工艺

本发明涉及流媒体通信技术领域,尤其涉及一种快进快退的处理方法及终端。



背景技术:

目前OTT(Over The Top)业务是互联网业务中最常见的业务,且基于开放互联网的OTT移动视频服务业务是将来满足直播(Live)、点播(On Demand)以及时移(Time Shift)等诸多应用需求的最佳解决方案之一。

常见的OTT业务的播放控制采用的是码流自适应方式,常用的协议包括:Http Live Streaming,MPEG DASH,Microsoft Smooth Streaming等等。且一般的OTT业务在快进快退时都是采用底层定位的方式,这种方式下的当前节目的快进快退的用户体验比网络协定电视(Internet Protocol Television,IPTV)业务中的快进快退的用户体验要差,其中IPTV业务是采用的I帧(I Frame)播放模式实现快进快退的。其中,I帧是一种全帧压缩编码帧,也可称为帧内编码帧,I帧的数据量一般比较大,且I帧不需要参考其他帧而生成,属于参考帧,解码时仅用一个I镇就可以重构一个完整的图像。

目前,OTT视频播放使用的协议也在考虑支持快进快退的I帧播放模式,且基于OTT视频播放业务,一般是终端从服务器将当前正在播放的节目的所有I帧的I帧数据都下载下来,在进入快进快退的状态之后,依次将下载的I帧数据输出。

然而,由于I帧的数据量较大,下载当前节目的所有I帧对带宽的要求较高。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种快进快退的处理方法及终端,旨在解决现有技术中在实现快进快退时需要下载大量的I帧的I帧数据带来的对带宽的要求太高的问题。

为实现上述目的,本发明提供一种快进快退的处理方法,包括:

当接收到快进或快退请求时,根据当前节目已播放时长、预先保存的所述当前节目的各I帧的索引信息及所述快进或快退请求中包含的倍速选取I帧,得到I帧序列;

每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且所述数据请求消息中依次携带所述I帧序列中的I帧的索引信息;

接收并解码输出所述服务器根据接收到的I帧的索引信息反馈的I帧数据。

优选地,所述当接收到快进或快退请求时,根据当前节目已播放时长、预先保存的所述当前节目的各I帧的索引信息及所述快进或快退请求中包含的倍速选取I帧,得到I帧序列,包括:

当接收到快进请求或快退请求时,根据所述快进或快退的倍速确定第二时长;

根据所述当前节目已播放时长,所述第二时长及所述当前节目的各I帧的时间点选取I帧,得到所述I帧序列,所述I帧的时间点包含在所述I帧的索引信息中。

优选地,所述根据所述当前节目已播放时长,所述第二时长及所述当前节目的各I帧的时间点选取I帧,得到所述I帧序列,包括:

若为快进,则m的初始值为0,执行以下步骤:

步骤1:将所述当前节目已播放时长加上m倍的所述第二时长的和作为有效时间点;

步骤2:根据所述当前节目的各I帧的时间点,判断所述有效时间点往后是否还有I帧;

步骤3:若所述有效时间点往后还有I帧,则往后选取时间点与所述有效时间点最近的一个I帧作为所述I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若所述有效时间点往后没有I帧,则结束对I帧的选取。

优选地,所述根据所述当前节目已播放时长,所述第二时长及所述当前节目的各I帧的索引信息中包含的I帧的时间点选取I帧,得到所述I帧序列,包括:

若为快退,则m的初始值为0,执行以下步骤:

步骤1:将所述当前节目已播放时长减去m倍的所述第二时长的差作为有效时间点;

步骤2:根据所述当前节目的各I帧的时间点,判断所述有效时间点往前是否还有I帧;

步骤3:若所述有效时间点往前还有I帧,则往前选取时间点与所述有效时间点最近的一个I帧作为所述I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若所述有效时间点往前没有I帧,则结束对I帧的选取。

优选地,所述预先设置的第一时长为预先设置的小于或等于1秒的时间值,或者为基于所述倍速计算得到的小于或等于1秒的时间值。

为了解决上述问题,本发明还提供一种终端,包括:

选取模块,用于当接收到快进或快退请求时,根据当前节目已播放时长、预先保存的所述当前节目的各I帧的索引信息及所述快进或快退请求中包含的倍速选取I帧,得到I帧序列;

发送模块,用于在所述选取模块得到所述I帧序列之后,每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且所述数据请求消息中依次携带所述I帧序列中的I帧的索引信息;

接收输出模块,用于在所述发送模块发送数据请求消息之后,接收并解码输出所述服务器根据接收到的I帧的索引信息反馈的I帧数据。

优选地,所述选取模块包括:

时长确定模块,用于当接收到快进请求或快退请求时,根据所述快进或快退的倍速确定第二时长;

帧选取模块,用于在所述时长确定模块确定所述第二时长之后,根据所述当前节目已播放时长,所述第二时长及所述当前节目的各I帧的时间点选取I帧,得到所述I帧序列,所述I帧的时间点包含在所述I帧的索引信息 中。

优选地,所述帧选取模块具体用于:

若为快进,则m的初始值为0,执行以下步骤:

步骤1:将所述当前节目已播放时长加上m倍的所述第二时长的和作为有效时间点;

步骤2:根据所述当前节目的各I帧的时间点,判断所述有效时间点往后是否还有I帧;

步骤3:若所述有效时间点往后还有I帧,则往后选取时间点与所述有效时间点最近的一个I帧作为所述I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若所述有效时间点往后没有I帧,则结束对I帧的选取。

优选地,所述帧选取模块具体用于:

若为快退,则m的初始值为0,执行以下步骤:

步骤1:将所述当前节目已播放时长减去m倍的所述第二时长的差作为有效时间点;

步骤2:根据所述当前节目的各I帧的时间点,判断所述有效时间点往前是否还有I帧;

步骤3:若所述有效时间点往前还有I帧,则往前选取时间点与所述有效时间点最近的一个I帧作为所述I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若所述有效时间点往前没有I帧,则结束对I帧的选取。

优选地,所述预先设置的第一时长为预先设置的小于或等于1秒的时间值,或者为基于所述倍速计算得到的小于或等于1秒的时间值。

本发明提供的快进快退的方法的实施例是在接收到快进或快退请求时,终端根据当前节目已播放时长、预先保存的当前节目的各I帧的索引信息及快进快退请求中包含的倍速选取I帧,得到I帧序列,且每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且发送的数据请求消息中依次携带该I帧序列中的一个I帧,终端还将接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧的数据,以实现快进快退。由于选取的I帧为当前节目的一部分I帧,使得在实现快进快退时,不需要将当前节目的所有I 帧的I帧数据都下载下来,能够在实现快进快退的输出效果的同时有效的减少I帧数据的下载量,且I帧数据下载量的降低能够有效降低对宽带的要求。

附图说明

图1为本发明快进快退的处理方法的第一实施例的流程示意图;

图2为本发明快进快退的处理方法的第二实施例的流程示意图;

图3为本发明终端的第一实施例的功能模块的示意图;

图4为本发明终端的第二实施例的功能模块的示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:在接收到快进或快退请求时,终端根据当前节目已播放时长、预先保存的当前节目的各I帧的索引信息及快进快退请求中包含的倍速选取I帧,得到I帧序列,该I帧序列中包含当前节目的部分I帧。终端在选取该I帧序列之后,每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且发送的数据请求消息中依次携带该I帧序列中的一个I帧,且终端还将接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧的数据,以实现快进快退。由于选取的I帧为当前节目的一部分I帧,使得在实现快进快退的过程中,不需要将当前节目的所有I帧的I帧数据都下载下来,能够在实现快进快退的输出效果的同时有效的减少I帧数据的下载量,且I帧数据下载量的降低能够有效降低对宽带的要求。

具体地,请参阅图1,为本发明提出的一种快进快退的处理方法的第一实施例的示意图,该方法包括:

步骤101、当接收到快进或快退请求时,根据当前节目已播放时长、预先保存的当前节目的各I帧的索引信息及快进或快退请求中包含的倍速选取I帧,得到I帧序列;

在本发明实施例中,终端在最初开始播放节目时,将向服务器发送I帧 索引信息请求消息,服务器在接收到该I帧索引信息请求消息之后,将解析该终端当前节目的视频源,获取该当前节目的各I帧的索引信息,并将获取到的各I帧的索引信息反馈给终端。

其中,终端在接收到其当前节目的各I帧的索引信息之后,将保存该当前节目的各I帧的索引信息。

其中,I帧的索引信息至少包含I帧的时间点,且I帧的时间点是指该I帧在当前节目中所处的时间点。

此外,I帧的索引信息中还可以包括I帧所在分片的名称、I帧在分片中的偏移位置及I帧的大小等等参数。

在本发明实施例中,用户可通过遥控器控制或者触摸屏触摸等方式向终端发出快进或快退的请求,该快进或快退的请求中包含快进或快退的倍速,其中,快进或快退的倍速可以是2、4、8、16等等。

终端在接收到该快进或快退请求之后,将根据当前节目已播放时长、预先保存的该当前节目的各I帧的索引信息及该快进或快退请求中包含的倍速选取I帧,得到I帧序列。

其中,终端在接收到快进或快退请求之后,将停止正常播放速度的播放模式,且终端将获取到当前节目在接收到快进或快退请求时的已播放时长,例如:若在当前节目播放10分钟的时候接收到快进或快退请求,则当前节目已播放时长为10分钟。

在本发明实施例中,终端可以是电视机、电脑、机顶盒、PAD、智能手机等等。

步骤102、每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;

步骤103、接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧的数据。

在本发明实施例中,终端在选取I帧并得到I帧序列之后,将每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息。

需要说明的是,在本发明实施例中,I帧序列中的I帧是按照时间点的先后顺序进行排列的,若是在快进情况下得到的I帧序列,则I帧序列中的I 帧是按照时间点逐渐增大的顺序排列的,若是在快退情况下得到的I帧序列,则I帧序列中的I帧是按照时间点逐渐减小的顺序排列的。

终端每发送一个数据请求消息,该数据请求消息中都将包含I帧序列中的I帧的索引信息,且终端是按照I帧序列中的I帧的排列顺序依次携带在数据请求消息中发送的。

例如:I帧序列为[I0,I1,I2,I3,……,I10],则终端在得到该I帧序列之后,将每间隔预先设置的第一时长,依次发送携带I0的索引信息的数据请求消息、携带I1的索引信息的数据请求消息,携带I2的索引信息的数据请求消息、携带I3的索引信息的数据请求消息,……,携带I10的索引信息的数据请求消息。

其中,终端在向服务器发送数据请求消息时,其携带的I帧的索引信息包含该I帧的时间点、I帧所在分片名称、I帧在分片的偏移位置及I帧大小。

服务器在接收到数据请求消息之后,将利用其携带的I帧的索引信息中的I帧的时间点确定I帧在当前节目的总时长上的位置,并利用I帧所在的分片名称确定I帧所在的分片,且在确定分片之后,利用I帧在该分片中的偏移位置及I帧大小提取I帧数据,且将提取的I帧数据反馈给终端。

服务器每次接收到数据请求消息之后,都将按照上述方式基于I帧的索引信息确定对应的I帧数据,并将获取到的I帧数据反馈给终端。且终端每次在接收到I帧数据之后,都将对接收到I帧数据进行解码输出,使得能够在终端的显示界面上显示快进或快退的输出效果。

在本发明实施例中,当终端接收到快进或快退请求时,将根据当前节目已播放时长、当前节目各I帧的索引信息及快进或快退的倍速选取I帧,得到I帧序列,且每隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息,在接收到服务器根据接收到的I帧的索引信息反馈的I帧数据后,终端将解码输出该I帧数据。通过上述方式,使得只需要从服务器下载选取的部分的I帧即可实现快进快退的输出效果,而不需要将当期节目的所有I帧下载下来,有效减少I帧数据的下载量,且能够有效的降低对宽带的要求。

为了更好的理解本发明实施例中的技术方案,请参阅图2,为本发明提供 的快进快退的处理方法的第二实施例的示意图,该方法中的步骤201和步骤202是对第一实施例中的步骤101的细化,具体的,该方法包括:

步骤201、当接收到快进请求或快退请求时,根据快进或快退的倍速确定第二时长;

在本发明实施例中,当接收到快进或快退请求时,终端将根据快进或快退的倍速确定第二时长,其中,该第二时长用于选取I帧。

其中,快进或快退的倍速是携带在快进或快退请求中的,使用终端的用户可以通过选择确定快进或快退的倍速。

进一步的,根据快进或快退的倍速确定第二时长可以是:若快进或快退的倍速为N,则确定第二时长为N秒,或者确定第二时长为N秒的倍速。

进一步的,第二时长可以与第一时长相关,该第一时长是预先设置的向服务器发送数据请求消息的时间间隔,具体的:第二时长等于快进或快退的倍速与第一时长的乘积,即若第一时长为1秒,倍速为N时,则确定第二时长为N秒,若第一时长为1/3秒时,则确定第二时长为N/3秒。

步骤202、根据当前节目已播放时长,第二时长及当前节目的各I帧的索引信息中包含的I帧的时间点选取I帧,得到I帧序列;

在本发明实施例中,终端还将根据当前节目已播放时长,第二时长及当前节目的各I帧的时间点选取I帧,得到I帧序列,其中,I帧的索引信息中包含I帧的时间点,此外,I帧的索引信息中还可包含I帧的时间点、I帧所在分片的名称、I帧在分片的偏移位置及I帧大小等等参数。

下面将基于快进和快退不同的情况分别描述终端选取I帧的过程:

若为快进,则m的初始值为0,终端执行以下步骤:

步骤1:将当前节目已播放时长加上m倍的第二时长的和作为有效时间点;

步骤2:根据当前节目的各I帧的时间点,判断有效时间点往后是否还有I帧;

步骤3:若有效时间点往后还有I帧,则往后选取时间点与有效时间点最近的一个I帧作为I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若有效时间点往后没有I帧,则结束对I帧的选取。

或者;

若为快退,则m的初始值为0,终端执行以下步骤:

步骤1:将当前节目已播放时长减去m倍的第二时长的差作为有效时间点;

步骤2:根据当前节目的各I帧的时间点,判断有效时间点往前是否还有I帧;

步骤3:若有效时间点往前还有I帧,则往前选取时间点与有效时间点最近的一个I帧作为I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若有效时间点往前没有I帧,则结束对I帧的选取。

需要说明的是,按照上述方式得到的I帧序列,该I帧序列中的I帧是按照时间点的先后顺序排列的,便于在向服务器发送数据请求消息时,能够按照I帧的时间点的顺序依次将I帧的索引信息携带在数据请求消息中,且使得终端接收到的I帧数据也将是按照时间点顺序排列的,这样终端能够按照时间点的先后顺序依次解码输出I帧数据,具有较好的快进快退的输出效果,避免输出出现紊乱。

需要说明的是,在本发明实施例中,往前往后是基于当前节目的播放时间来描述的,若是快进,则是往该当前节目未播放的时间的方向,若是快退,则是往该当前节目已播放时间的方向。

步骤203、每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;

在本发明实施例中,终端将每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息。

具体的:在sT时刻,终端向服务器发送数据请求消息,数据请求消息中携带I帧序列中的第s+1个I帧,其中,s的值为[0,1,2,……,S],T为第一时长,且I帧序列中包含S+1个I帧。其中,当s为0时,是表示终端在得到I帧序列之后,将立即开始向服务器发送携带I帧序列中的第1个I帧的数据请求消息。

在本发明实施例中,该预先设置的第一时长可以是预先设置的小于或等于1秒的时间值,或者为基于倍速计算得到的小于或等于1秒的时间值。

例如:若该第一时长为1秒,则终端将每隔1秒发送一次数据请求消息,且通过每秒发送一次数据请求消息,可以实现通过第一时长作为步长的速度来体现不同快进或快退的倍速之间的差异,用户体验好。

进一步的,终端还可基于快进或快退的倍速计算第一时长,在倍速为N时,则第一时长为1/logsN,其中s大于1,例如:若快进或快退的倍速为8,则终端每隔1/3秒向服务器发送一个数据请求消息。

需要说明的是,在本发明实施例中,数据请求消息是一种超文本传输协议(Hyper Text Transfer Protocol,http)请求。

步骤204、接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧数据。

在本发明实施例中,服务器在接收到终端发送的数据请求消息之后,解析该数据请求消息,获取该数据请求消息中包含的I帧的索引信息,并根据该I帧的索引信息获取相应的I帧数据,并将获取的I帧数据反馈给终端。

终端在接收到服务器根据接收到的I帧的索引信息反馈的I帧数据之后,将对该I帧数据进行解码输出,由于终端是每间隔一个第一时长向服务器发送数据请求消息,则终端也将每间隔一个时长接收到服务器反馈的I帧数据,使得能够在终端的显示界面上实现快进快退的有效输出。

其中,终端在解码I帧数据之后,可以按照正常的播放模式输出解码后的I帧数据,也可以按照I帧的播放模式输出解码后的I帧数据,在实际应用中科根据具体的需要进行设置,此处不做限定。

需要说明的是,在本发明实施例中,终端是循环执行步骤203和步骤204的,即终端每次发送一个数据请求消息之后,都要接收一次服务器根据该数据请求消息中包含的I帧的索引信息反馈的I帧数据并解码输出,并在距离上一次发送间隔第一时长的情况下,发送一次数据请求消息,并接收服务器的反馈的I帧数据并解码输出,依次类推,直至针对I帧序列中的每一个I帧都发送了一个数据请求消息并接收了反馈的I帧数据。且在执行步骤203和步骤204过程中,终端的输出界面将形成快进快退的输出效果。

在本发明实施例中,当接收到快进或快退请求时,根据快进或快退的倍速确定第二时长,并根据当前节目已播放时长,第二时长及当前节目的各I帧的索引信息中包含的I帧时间选取I帧,得到I帧序列,且在得到I帧序列之后,终端将每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;且终端还将接收并解码输出服务器根据接收到的数据请求消息中的I帧的索引信息反馈 的I帧数据。通过上述的方式,使得仅需要从服务器下载选取的I帧序列中的I帧,而不需要下载当前节目中的所有I帧,能够有效的降低I帧的下载量,降低对宽带的要求。

为了更好的理解本发明实施例中的技术方案,下面将详细介绍一个具体的应用场景,包括:

1)终端接收到快进请求中,提取该快进请求中包含的快进倍速N,及确定当前节目已播放时长T1;

2)终端确定向服务器发送数据请求消息的时间间隔第一时长为1/logsN,用于选取I帧的第二时长为N/logsN;

3)终端利用第二时长N/logsN,当前节目已播放时长T1及终端已保存的当前节目的各I帧的时间点确定I帧序列,该I帧序列为[I0,I1,I2,I3,……,I10];

4)终端向服务器发送数据请求消息,请求I帧序列中的I0的I帧数据;

5)终端接收服务器反馈的I0的I帧数据,并解码输出;

6)终端向服务器发送数据请求消息,请求I帧序列中的I1的I帧数据;

7)终端接收服务器反馈的I1的I帧数据,并解码输出;

……

8)终端向服务器发送数据请求消息,请求I帧序列中的I10的I帧数据;

9)终端接收服务器反馈的I10的I帧数据,并解码输出。

在本发明实施例中,N倍速快进或快退时,每秒的节目时间步长为N,但是不用每秒获取N秒内的所有I帧,而是1/T0个I帧,该T0是指第一时长,这样就可以很大程度上减少需要下载的I帧的数量,降低对带宽的需求,同时,倍数越大,获取的I帧个数也多,输出的快进快退的画面切换效果更好,也能进一步提升用户体验。

在本发明实施例中,通过对当前节目的各I帧进行选取,使得只需要下载部分I帧的I帧数据,而不需要下载当前节目的所有I帧的I帧数据,能够有效的减少I帧数据的下载量,同时降低对宽带的要求。

请参阅图3,为本发明实施例中终端的结构的实施例,包括:

选取模块301,用于当接收到快进或快退请求时,根据当前节目已播放时长、预先保存的当前节目的各I帧的索引信息及快进或快退请求中包含的倍 速选取I帧,得到I帧序列;

发送模块302,用于在选取模块301得到I帧序列之后,每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;

接收输出模块303,用于在发送模块302发送数据请求消息之后,接收并解码输出服务器根据接收到的I帧索引信息反馈的I帧数据。

在本发明实施例中,终端在最初开始播放节目时,将向服务器发送I帧索引信息请求消息,服务器在接收到该I帧索引信息请求消息之后,将解析该终端当前节目的视频源,获取该当前节目的各I帧的索引信息,并将获取到的各I帧的索引信息反馈给终端。

其中,终端在接收到其当前节目的各I帧的索引信息之后,将保存该当前节目的各I帧的索引信息。

其中,I帧的索引信息至少包含I帧的时间点,且I帧的时间点是指该I帧在当前节目中所处的时间点。

此外,I帧的索引信息中还可以包括I帧所在分片的名称、I帧在分片中的偏移位置及I帧的大小等等参数。

在本发明实施例中,用户可通过遥控器控制或者触摸屏触摸等方式向终端发出快进或快退的请求,该快进或快退的请求中包含快进或快退的倍速,其中,快进或快退的倍速可以是2、4、8、16等等。

终端在接收到该快进或快退请求之后,将根据当前节目已播放时长、预先保存的该当前节目的各I帧的索引信息及该快进或快退请求中包含的倍速选取I帧,得到I帧序列。

其中,终端在向服务器发送数据请求消息时,其携带的I帧的索引信息包含该I帧的时间点、I帧所在分片名称、I帧在分片的偏移位置及I帧大小。

服务器在接收到数据请求消息之后,将利用其携带的I帧的索引信息中的I帧的时间点确定I帧在当前节目的总时长上的位置,并利用I帧所在的分片名称确定I帧所在的分片,且在确定分片之后,利用I帧在该分片中的偏移位置及I帧大小提取I帧数据,且将提取的I帧数据反馈给终端。

在本发明实施例中,终端可以是电视机、电脑、机顶盒、PAD、智能手机等等。

在本发明实施例中,当接收到快进或快退请求时,选取模块301根据当前节目已播放时长、预先保存的当前节目的各I帧的索引信息及快进或快退请求中包含的倍速选取I帧,得到I帧序列;接着,发送模块302每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;且由接收输出模块303接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧数据。

在本发明实施例中,当终端接收到快进或快退请求时,将根据当前节目已播放时长、当前节目各I帧的索引信息及快进或快退的倍速选取I帧,得到I帧序列,且每隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息,在接收到服务器根据接收到的数据请求消息包含的I帧索引信息反馈的I帧数据后,终端将解码输出该I帧数据。通过上述方式,使得只需要从服务器下载选取的部分的I帧即可实现快进快退的输出效果,而不需要将当期节目的所有I帧下载下来,有效减少I帧数据的下载量,且有效的降低对宽带的要求。

为了更好的理解本发明实施例中的终端,请参阅图4,为本发明实施例中终端的结构的实施例,包括如图3所示实施例中描述的选取模块301,发送模块302,接收输出模块303,且与图3所示实施例中描述的内容相似,此处不再赘述。

在本发明实施例中,选取模块301包括:

时长确定模块401,用于当接收到快进请求或快退请求时,根据快进或快退的倍速确定第二时长;

帧选取模块402,用于在时长确定模块401确定第二时长之后,根据当前节目已播放时长,第二时长及当前节目的各I帧的时间点选取I帧,得到I帧序列,I帧的时间点包含在I帧的索引信息中。

其中,帧选取模块402具体用于:

若为快进,则m的初始值为0,执行以下步骤:

步骤1:将当前节目已播放时长加上m倍的第二时长的和作为有效时间点;

步骤2:根据当前节目的各I帧的时间点,判断有效时间点往后是否还有I帧;

步骤3:若有效时间点往后还有I帧,则往后选取时间点与有效时间点最 近的一个I帧作为I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若有效时间点往后没有I帧,则结束对I帧的选取。

或者,帧选取模块402具体用于:

若为快退,则m的初始值为0,执行以下步骤:

步骤1:将当前节目已播放时长减去m倍的第二时长的差作为有效时间点;

步骤2:根据当前节目的各I帧的时间点,判断有效时间点往前是否还有I帧;

步骤3:若有效时间点往前还有I帧,则往前选取时间点与有效时间点最近的一个I帧作为I帧序列的第m+1个帧,令m=m+1,返回执行步骤1;

步骤4:若有效时间点往前没有I帧,则结束对I帧的选取。

在本发明实施例中,预先设置的第一时长为预先设置的小于或等于1秒的时间值,或者为基于倍速计算得到的小于或等于1秒的时间值。

在本发明实施例中,当接收到快进或快退请求时,选取模块301根据当前节目已播放时长、预先保存的当前节目的各I帧的索引信息及快进或快退请求中包含的倍速选取I帧,得到I帧序列;具体的:选取模块301中的时长确定模块401根据快进或快退的倍速确定第二时长,并由帧选取模块402根据当前节目已播放时长,第二时长及当前节目的各I帧的时间点选取I帧,得到I帧序列,索引信息中包含I帧的时间点。

接着,发送模块302每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;且由接收输出模块303接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧数据。

在本发明实施例中,当接收到快进或快退请求时,根据快进或快退的倍速确定第二时长,并根据当前节目已播放时长,第二时长及当前节目的各I帧的索引信息中包含的I帧时间选取I帧,得到I帧序列,且在得到I帧序列之后,终端将每间隔预先设置的第一时长,向服务器发送一个数据请求消息,且数据请求消息中依次携带I帧序列中的I帧的索引信息;且终端还将接收并解码输出服务器根据接收到的I帧的索引信息反馈的I帧数据。通过上述的方式,使得仅需要从服务器下载选取的I帧序列中的I帧,而不需要下载当前节目中的所有I帧,能够有效的降低I帧的下载量,降低对宽带的 要求。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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