一种时移时间获取方法及机顶盒与流程

文档序号:16447894发布日期:2019-01-02 21:31阅读:623来源:国知局
一种时移时间获取方法及机顶盒与流程

本发明涉及时移节目技术领域,尤其涉及一种时移时间获取方法及机顶盒。



背景技术:

随着电视技术快速发展,智能电视逐渐进入人们的视野,目前,智能电视的电视业务分为直播电视业务和时移电视业务,直播电视业务具有时间同步性,错过某个时间点的节目便无法再观看,而时移电视业务不受时间同步性的限制,可以实现暂停、快进或快退操作。例如,用户正在观看直播电视,此时按下暂停键使画面暂停,使电视节目由直播节目切换到时移节目,当用户再次恢复播放时,电视节目会接着上次暂停点继续播放。

现有技术中,在观看时移节目过程中,一般要求在视频窗口界面的下方显示节目的时移时间信息,其中,时移时间信息包括时移时间范围以及当前时移播放时间,其中,时移时间范围包括左边界时间和右边界时间。例如,当暂停正在直播的直播电视后,电视节目由直播节目切换到时移节目,此时,在智能电视的视频窗口界面上会显示出时移时间范围的左边界时间和右边界时间,其中,右边界时间是指当前电视节目的直播时间,同时视频窗口界面也会显示出当前时移播放时间。通常情况下,机顶盒发送RTSP(Real Time Streaming Protocol,实时流传输)协议指令至时移服务器,从而获取时移服务器下发的时移时间范围和当前时移播放时间并显示在智能电视的视频窗口界面。例如,当暂停直播节目并再次恢复时,或者,当直播节目过程中快退到某个时间点时,时移服务器根据RTSP协议指令将时移时间信息发送至机顶盒,机顶盒根据所述指令将时移时间信息发送至智能电视并显示在视频窗口界面,同时将时移时间信息对应的视频帧依次显示在视频窗口界面。为了在视频窗口界面上准确显示时移时间信息,机顶盒通过RTSP协议指令获取时移时间信息时,机顶盒会不断通过向时移服务器发送RTSP协议指令请求获取时移时间信息,从而刷新视频窗口界面上显示的时移时间范围和当前时移播放时间。

但是,如果机顶盒频繁通过RTSP协议指令向时移服务器请求更新时移时间范围和当前时移播放时间,导致时移服务器的负载加重,同时时移服务器负载加重又导致时移服务器信息返回延迟,从而影响智能电视的视频窗口界面时间刷新的实时性。当然,如果时移服务器频繁接收多个机顶盒发送的当前时移播放时间请求,会进一步导致时移服务器的负载加重,进而影响视频窗口界面时间刷新的实时性。



技术实现要素:

为克服相关技术中存在的问题,本发明提供了一种时移时间获取方法及机顶盒,以解决现有技术中当电视节目进入时移节目时,时移服务器频繁通过RTSP协议指令获取时移时间信息,服务器的负载加重,同时,服务器负载加重时又导致服务器信息返回延时,从而影响视频窗口界面时间刷新的实时性的问题。

根据本发明实施例的第一方面,提供一种时移时间获取方法,包括:

接收时移服务器根据时移播放请求发送的基准音视频数据流以及基准时移时间信息;

接收所述时移服务器在所述基准音视频数据流之后自动下发的当前音视频数据流;

确定所述当前音视频数据流提取出的PCR值与基准音视频数据流中提取出的PCR值的时间差值;

根据所述时间差值以及所述基准时移时间信息,确定当前时移时间信息。

根据本发明实施例的第二方面,提供一种机顶盒,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为权利要求1所述的方法。

本发明的实施例提供的技术方案可以包括以下有益效果:本发明实施例提供的时移时间获取方法包括:接收时移服务器根据时移播放请求发送的基准音视频数据流以及基准时移时间信息;接收所述时移服务器在所述基准音视频数据流之后自动下发的当前音视频数据流;确定所述当前音视频数据流提取出的PCR值与基准音视频数据流中提取出的PCR值的时间差值;根据所述时间差值以及所述基准时移时间信息,确定当前时移时间信息。

由上述描述可知,本发明公开的时移时间获取方法无需频繁向时移服务器获取当前时移时间信息,在进入时移播放状态时,向时移服务器发送时移播放请求,时移播放请求同时包括获取音视频数据流请求和基准时移时间信息请求,然后接收基准音视频数据流和之后的音视频数据流,从基准音视频数据流中提取PCR值并作为基准PCR值,从当前音视频数据流中提取PCR值,计算提取到的PCR值与基准PCR值之间的时间差值,所述时间差值即为基准音视频数据流和当前音视频数据流之间的时间差值,由于基准时移时间信息与基准音视频数据流对应,所以,基准时移时间信息中的基准当前时移播放时间加上所述时间差值即为当前时移播放时间,同样的,基准左边界时间和基准右边界时间也可以根据所述时间差值计算。

当无需向时移服务器频繁请求获取当前时移时间信息时,自然会减轻时移服务器的负载,从而减少时移服务器返回信息延迟的现象,进而加强视频窗口界面时间刷新的实时性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

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

图1为本发明实施例提供的一种时移时间获取方法的流程示意图;

图2为本发明实施例提供的一种应用场景结构示意图;

图3为本发明实施例提供的步骤S300流程示意图;

图4为本发明实施例提供的步骤S400流程示意图;

图5为本发明实施例提供的步骤S402流程示意图;

图6为本发明实施例提供的另一种时移时间获取方法流程示意图;

图7为本发明实施例提供的步骤S500流程示意图;

图8为本发明实施例提供的步骤S502流程示意图;

图9为本发明实施例提供的又一种时移时间获取方法流程示意图;

图10为本发明实施例提供的再一种时移时间获取方法流程示意图;

图11为本发明实施例提供的一种机顶盒框图;

图中符号表示:

1-时移服务器,2-智能电视,3-视频窗口界面,4-机顶盒,401-处理器,402-存储器,403-电源组件,404-多媒体组件,405-输入/输出接口,406-通信组件。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

由时移服务器端发送到机顶盒端的音视频数据流是经过编码器进行编码压缩后的数据流,发送到机顶盒端的音视频数据流经过解码器进行解码后,提取出音视频数据流中的音视频帧,并依次进行播放。音视频编码器中有一个系统时钟,系统时钟是一个27MHz的时钟,信号的抽样、处理均是以此时钟为基础的,此时钟用来产生指示音视频的正确显示和解码的时间戳。其中,PCR是由对系统时钟脉冲触发的计数器状态抽样而来,是放在TS包头的自适配域中传送。PCR共占6Bytes,其中6bits预留,42bits有效位。42bits的PCR分为两部分:33bits的PCR_Base和9bits的PCR_Ext。PCR_Base是由27MHz脉冲经300分频后的90kHz脉冲触发计数器,再对计数器状态进行取样得到的。PCR_Ext是由27MHz脉冲直接触发计数器,再对计数器状态进行取样得到的。

由于PCR值是对系统时钟脉冲触发的计数器状态的采样,所以PCR值表示其所在TS包中的音视频数据对应的编码器端系统时间,所以,在时移节目中,通过PCR值可计算出时移节目播放的相对时间,从而实现时移节目中时移时间信息的更新。具体如下:

图1是根据一示例性实施例示出的一种时移时间获取方法的流程图。

图2是本方法的应用场景示意图。

步骤S100,接收时移服务器根据时移播放请求发送的基准音视频数据流以及基准时移时间信息。

结合图2可知,智能电视2在直播状态下接收到来自遥控的时移播放请求时,智能电视2会将时移播放请求发送给机顶盒4,由机顶盒4将时移播放请求发送给时移服务器1,所述时移播放请求包括暂停或快退请求。例如,当智能电视2正在直播某电视节目,此时由于忙于其他事情可按下暂停键,智能电视2播放的节目由直播节目切换到时移节目,待忙完事情后可按下播放键从刚才暂停的地方继续播放;或者,在观看直播的过程中对于直播节目想再次观看,此时,可通过快退到某个时间点实现回看。在观看时移节目过程中,需要在智能电视2的视频窗口界面3显示时移时间信息,时移时间信息包括当前时移播放时间、左边界时间和右边界时间。

直播节目和时移节目之间是无缝切换的,观看者感觉不到后方播放器的播放切换,例如,当在观看直播节目过程中按下暂停键时,此时画面暂停,当过一段时间恢复播放时,电视节目会接着暂停的地方继续播放。我们知道直播节目是实时的,也是无法暂停的,所以要实现直播节目与时移节目的无缝切换,就需要在时移服务器端录制一段时间的已播放节目在服务器端缓存起来,当由直播节目切换到时移节目时,机顶盒直接从时移地址获取音视频数据,并发送至智能电视。

时移服务器端缓存的数据以缓冲时间为计算单位,一般情况下缓存一个小时的音视频流数据,缓存的数据是当前直播时间前一个小时的音视频数据,所以,服务器端缓存的音视频数据是动态变化的,并随着直播时间的变化而变化。

基准时移时间信息包括基准当前时移播放时间、基准左边界时间和基准右边界时间。基准当前时移播放时间是指当前时移节目中正在播放的时间点,基准左边界时间和基准右边界时间是在视频窗口界面显示的时移时间范围。一般情况下,基准左边界时间是当前直播时间的前一个小时对应的时间点,基准右边界时间为当前直播时间,如果当前时移播放时间与右边界时间一致时,当前节目由时移节目切换到直播节目。

当时移服务器接收到时移播放请求时,时移服务器根据时移播放请求发送基准音视频流和基准时移时间信息,所以,时移播放请求同时包括获取音视频数据流以及获取基准时移时间信息的请求指令,获取音视频数据流请求与获取基准时移时间信息请求指令均通过RTSP协议发送。其中,基准时移时间信息与基准音视频流对应,并包括基准当前时移播放时间、基准左边界时间和基准右边界时间。当时移服务器接收到时移播放请求时,时移服务器向机顶盒发送由暂停点或快退点开始的音视频数据流,其中,在音视频数据流中第一个带有PCR值的音视频数据流是基准音视频数据流,基准时移时间信息是与基准音视频数据流对应的时移时间信息。

步骤S200,接收时移服务器在基准音视频数据流之后自动下发的当前音视频数据流。

时移服务器接收到时移播放请求时,时移服务器会自动向机顶盒发送接下来的音视频数据流,同时,机顶盒也会不断的接收时移服务器发送的音视频数据流。也就是说,当时移服务器接收到时移播放请求时,时移服务器将缓存的已播放的音视频数据流发送到机顶盒中,在发送过程中,先将基准音视频流发送出去,随后再发送基准音视频流之后的音视频流,而机顶盒也会根据时移服务器发送的音视频数据流的顺序依次接收并解析音视频数据流。

接收到当前音视频数据流后,从当前音视频数据流中提取PCR值,并根据提取到的PCR值进行时间差值的计算。步骤S300,确定当前音视频数据流提取出的PCR值与基准音视频数据流中提取出的PCR值的时间差值。

在接收到基准音视频数据流时,从基准音视频数据流中提取PCR值。即从基准音视频数据流中获取TCP包,并从TCP包中依次提取TS包,判断当前TS包中是否包含有PCR值,当包含有PCR值时,提取PCR值作为基准PCR值,如果当前TS包中不包含有PCR值,获取下一个TS包继续判断是否包含有PCR值,直至提取到基准PCR值。

根据从当前音视频数据流中提取到的PCR值与基准音视频数据流中提取到的PCR值计算时间差值,由于PCR值是对27MHz系统时钟的计时采样,因此,从当前音视频数据流中提取到的PCR值与基准PCR值的时间差值便对应当前音视频数据流与基准音视频数据流的时间差值,所以,通过计算从当前音视频数据流中提取到的PCR值与基准PCR值的时间差值便可实时更新当前时移播放时间。

根据从当前音视频数据流中提取到的PCR值与基准PCR值计算时间差值的方法,参见图3,为本发明实施例提供的一种步骤S300流程示意图。

步骤S301,分别将PCR值和基准PCR值转化为时间值。

由上文可知,PCR是由对系统时钟脉冲触发的计数器状态抽样而来,是放在TS包头的自适配域中传送。PCR共占6Bytes,其中6bits预留,42bits有效位。42bits的PCR分为两部分:33bits的PCR_Base和9bits的PCR_Ext。PCR_Base是由27MHz脉冲经300分频后的90kHz脉冲触发计数器,再对计数器状态进行取样得到的。PCR_Ext是由27MHz脉冲直接触发计数器,再对计数器状态进行取样得到的。公式如下:

PCR_Time=PCR_Base×300+PCR_Ext;

PCR_Ext=(system_clock_frequence)×T;

PCR_Base的作用是在切换节目时,提供对解码器PCR计数器的初始值,保证机顶盒端音视频同步,PCR_Ext的作用是通过解码器端的锁相环电路修正解码器的系统时钟。本发明实施例提供的方法中,在计算从当前音视频数据流中提取的当前PCR值与基准PCR值的时间差值时,提取PCR值字段中的PCR_Base即可。

例如:系统时钟时间07:12:45.56由27MHz脉冲经300分频后的字段值的计算。

时间07:12:45.56转化为秒的计算:

(7×60+12)×60+45.56=3285.56;

由上述公式可知,将PCR值除以90000,即可将PCR值转化为时间值,所述时间值的单位是秒。

根据上述计算公式,将从当前音视频数据流中提取出的PCR值和基准PCR值分别除以90000后转化为相应的时间值。

步骤S302,将PCR值对应的时间值与基准PCR值对应的时间值作差值,得到时间差值。

将当前音视频数据流中提取的当前PCR值除以90000后的时间值,减去基准PCR值除以90000后的时间值,得到时间差值,所述时间差值是从当前音视频数据流中提取到的当前PCR值对应的TS包与基准PCR值对应TS包的时间差值。

例如,基准PCR值的PCR_Base=295700400,那么基准PCR值对应的时间值为3285.56s;

从当前音视频数据流中提取到的PCR值的PCR_Base=296410500,将PCR_Base除以90000后,得到提取到的PCR值对应的时间值为3293.45s。

将当前音视频数据流中提取出的PCR值对应的时间值减去基准PCR值对应的时间值,即:3293.45-3285.56=7.89s,所以从当前音视频数据流中提取出的PCR值对应的TS包与基准PCR值对应TS包的时间差值为7.89s。

如果当前音视频数据流中提取出的当前PCR值对应的时间值减去基准PCR值对应的时间值为负时,说明当前时移节目处于快退播放状态。

得到时间差值后,在步骤S400中,根据时间差值以及基准时移时间信息,确定当前时移时间信息。

计算出基准PCR值与当前音视频数据流中提取出的PCR值之间的时间差值后,将基准时移播放时间加上所述时间差值即为当前时移播放时间,因为基准PCR值与基准时移播放时间对应,所以根据时间差值计算出的当前时移播放时间与当前音视频数据流中提取到的PCR值对应。

同样的,基准左边界时间加上时间差值得到当前左边界时间,基准右边界时间加上所述时间差值得到当前右边界时间。原理与当前时移播放时间的计算相同,在此不再赘述。

具体实施方式,参见图4,为本发明实施例提供的步骤S400流程示意图。

步骤S401,分别将基准时移播放时间、基准左边界时间和基准右边界时间加上时间差值,得到待确定当前时移播放时间、待确定左边界时间和待确定右边界时间。

将基准时移播放时间、基准左边界时间和基准右边界时间加上时间差值,理论上可以得到当前时移播放时间、左边界时间和右边界时间,但是,如果时移节目处于快进或快退状态时,快进或快退的时间差值大于当前直播状态下的时间进度,因此会导致当前时移播放时间、当前左边界时间和当前右边界时间在更新时要考虑到当前直播时间。所以,先将基准时移播放时间、基准左边界时间和基准右边界时间加上所述时间差值后的值确定为待确定当前时移播放时间、待确定左边界时间和待确定右边界时间。

步骤S402,根据待确定当前时移播放时间、待确定左边界时间和待确定右边界时间,确定当前时移时间信息,其中,当前时移时间信息包括当前时移播放时间、当前左边界时间和当前右边界时间。

当确定待确定当前时移播放时间、待确定左边界时间和待确定右边界时间后,通过下述步骤确定当前时移播放时间、当前左边界时间和当前右边界时间,参见图5,为本发明实施例提供的步骤S402流程示意图,具体如下:

步骤S4021,接收向机顶盒系统请求获取的当前系统时间。

机顶盒在每次插电后,通过NTP(Newwork Time Protocol,网络时间协议)自动实现机顶盒中的时钟时间与本地网络时间的同步,本地网络时间即为系统时间。当机顶盒的时间与系统时间同步后,可以直接向机顶盒的时钟请求获取当前系统时间即可,由于当前直播时间即为当前系统时间,因此,无需向时移服务器请求获取当前直播时间。

步骤S4022,判断待确定右边界时间是否等于或大于当前系统时间。

由于时移播放状态下,当倍速快进时,当前时移播放时间每次快进的时间差值较大,因此,当前右边界时间也会随着时间所述时间差值进行快进,而快进的速率比当前直播时间速率大,如果当前右边界时间快进到与当前直播时间重合时,当前右边界时间此时不能再根据待确定右边界时间进行更新。

步骤S4023,当待确定右边界时间等于或大于当前系统直播时间时,确定当前右边界时间为当前系统直播时间。

当待确定右边界时间等于或大于当前直播时间时,根据所述待确定右边界时间更新视频窗口界面的当前右边界时间时,当前右边界时间已经超过时移服务器缓存的音视频数据的右边界时间,所以,当待确定右边界时间等于或大于当前直播时间时,确定右边界时间为当前直播时间。

步骤S4024,判断待确定当前时移播放时间是否等于或大于当前系统时间。

在右边界时间等于当前直播时间状态下,当倍速快进时,当前时移播放时间随着倍速快进会超过右边界时间,因此,需要判断待确定当前时移播放时间是否等于或大于右边界时间。

步骤S4025,当待确定当前时移播放时间等于或大于当前系统时间时,确定当前时移播放时间为当前系统时间。

如果待确定时移播放时间等于或大于当前右边界时间,说明如果当前节目已经由时移播放状态切换到直播状态,此时将待确定当前时移播放时间确定为当前直播时间即可。

步骤S4026,判断待确定左边界时间是否小于或等于时移服务器缓存音视频数据的左边界时间。

时移服务器端缓存的音视频数据时间的长短根据时移服务器的内存来决定,一般情况下缓存一下小时的音视频数据。本实施例提供的方法中,视频窗口界面显示的时移时间范围为一个小时,但是时移服务器缓存的音视频数据时间多于一个小时,例如,将时移服务器中缓存的音视频数据时间设置为两个小时,此时,在视频界面显示的左边界时间预设为当前直播时间前一个小时。

时移服务器缓存音视频数据的左边界时间由时移服务器缓存音视频数据的时间以及当前系统时间有关系,当时移服务器缓存的音视频数据时间为两个小时,同时当前系统时间为北京时间9::00,那么,时移服务器缓存音视频数据的左边界时间为当前系统时间向后退两个小时,即时移服务器缓存音视频数据的左边界时间为北京时间7:00。

在时移播放状态下,当倍速快退时,左边界时间会倍速快退,当左边界时间快退到时移服务器缓存音视频数据的左边界时间时,当前左边界时间无法更新到比最小左边界时间更小。

步骤S4027,当待确定左边界时间小于或等于时移服务器缓存音视频数据的左边界时间时,确定当前左边界时间为时移服务器缓存音视频数据的左边界时间。

当待确定左边界时间小于或等于时移服务器缓存音视频数据的左边界时间时,此时待确定左边界时间已超出时移服务器中缓存的音视频数据对应的时间范围,所以,将待确定左边界时间确定为时移服务器缓存音视频数据的左边界时间。

例如,时移服务器缓存音视频数据的左边界时间为北京时间7:00,当基准左边界时间加上时间偏差后的时间值为北京时间6:58:50时,说明更新后的当前左边界时间无法更新到北京时间6:58:50,所以,机顶盒可将视频窗口界面显示的当前左边界时间更新为北京时间7:00即可。

由上述可知,在时移播放状态下,时移服务器将缓存好的音视频数据发送至机顶盒中,时移服务器中缓存好的音视频数据的时间段一般为一个小时,也可以是两个或多个小时,缓存数据的时间段由时移服务器的内存决定。当时移服务器缓存的数据时间段为两个小时的时候,其中,时移服务器缓冲区的右边界时间为当前直播时间,随着直播的进行,时移服务器会在缓存的音视频数据的基础上接着缓存,类似于环形缓冲区,所以时移服务器缓冲区的音视频数据的左边界时间和右边界时间也是随着直播而变化的,但是在视频窗口界面上显示的的时移范围是一个小时,因此,在时移节目播放过程中,随着倍速快进或快退,需要实时通过与时移服务器中缓存的音视频数据的左边界时间和右边界时间进行对比,确定当前时移播放时间、当前左边界时间和当前右边界时间。

参见图6,为本发明实施例提供的另一种时移时间获取方法流程示意图。

如图中所示,在步骤S300之前还包括步骤S500,从当前音视频数据流中提取PCR值。在接收到当前音视频数据流后,从当前音视频数据流中提取PCR值,根据提取出的PCR值与基准音视频数据流中提取出的PCR值计算时间差值。当然,随着音视频数据流的不断发送,依次从音视频数据流中提取PCR值。

从当前音视频数据流中提取PCR值的具体流程,参见图7,为本发明实施例提供的步骤S500流程示意图,具体如下:

音视频数据在编码器端经过编码后封装在TS包中,PCR值是对系统时钟进行采样后插入到TS包自适配域的二进制字段。

TS包是由4个字节的包头和184个字节的自适配域和报数据构成,PCR值插入在自适配域中,在自适配域中包括PCR标记和PCR值,其中,PCR标记标识了TS包中是否包含PCR值,当PCR标记为1时,表示TS包中存在PCR值,当PCR标记为0时,表示TS包中不存在PCR值,此时便不需要从TS包中提取PCR值。PCR值是TS包中的可选字段,也就是说,不是每一个TS包中均包含PCR值。

PCR值是由42bits的二进制字段组成,其中,PCR_Base是由27MHz脉冲经300分频后的90kHz脉冲触发计数器,再对计数器状态进行取样得到的。PCR_Ext是由27MHz脉冲直接触发计数器,再对计数器状态进行取样得到的。

步骤S501,获取当前音视频数据流中的TCP包,TCP包包含多个TS包。

时移播放请求通过RTSP协议发送到时移服务中,而RTSP协议是应用层协议,所以TS包是基于应用层的TCP协议进行传输,所以,TS包在应用层传输时会被封装为TCP包,一个TCP包中包括多个TS包,本实施例提供的方法中一个TCP包包含有7个TS包。TCP包的发送频率和间隔由时移服务器控制,以保证音视频播放的流畅性。因此,提取PCR值之前需要先获取音视频数据流中的TCP包。

步骤S502,从TCP包的所有TS包中提取PCR值。

本发明实施例提供的方法中的TCP包中包含有7个TS包,当从音视频数据流中获取到TCP包后,从TCP包中解码出7个TS包,然后从7个TS包中提取PCR值。在提取PCR值时,可以提取出所有TS包中的PCR值,也可以只提取其中一个TS包中的PCR值。为了提高TS包中PCR值的解析效率,可以在一个TCP包内提取一个PCR值即可。由于PCR值是对系统时钟的采样,所以,一般每个一定的时间才会抽取一次PCR值插入到TS包中,当然,相邻两个PCR值之间的时间根据编码规则而定。因此,一个TCP包内可能所有的TS包中均有PCR值,也可能一个PCR值也没有。

从TCP包中提取PCR值的方法,具体参见图8,为本发明实施例提供的步骤S502流程示意图。

步骤S5021,依次获取TCP包中的TS包。

获取到当前音视频数据流中的TCP包后,根据TCP包中TS包的排列次序顺序或倒序依次获取TS包,并依次解析TS包。例如,根据TCP包中TS包的排列顺序从上到下依次提取TS包,当提取到第一个TS包时,解析第一个TS包。

步骤S5022,判断TS包中是否包含有PCR值。

上述文中已经提到,在TS包的自适配域中包含有PCR标记,用于表示TS包中是否包含有PCR值。所以,本步骤中判断TS包中是否包含有PCR值时,通过解析TS包中的PCR标记,判断PCR标记是否为1,当PCR标记为1时,所述TS包中包含有PCR值,此时,提取出所述TS包中的PCR值即可。

步骤S5023,当TS包中包含有PCR值时,确定从TCP包的任一TS包中提取出PCR值。

为了提高TS包的解析效率,同时提高当前时移信息的计算速度,本方法中从TCP包中提取到一个PCR值即可。优选地,在解析TCP包中的TS包时,当第一次提取到PCR值时,就确定在TCP包的任一TS包中提取到PCR值,并确定提取到的PCR值为当前PCR值。第一次提取到的PCR值是在依次解析TS包中,第一次在TS包中出现的PCR值。

步骤S5024,当TS包中不包含有PCR值时,判断TS包是否为TCP包中的最后一个TS包。

如果当前的TS包中不包含有PCR值,判断当前TS包是否为TCP包中的最后一个TS包。在依次获取TCP包中的TS包时,每获取一个TS包就要判断提取到的TS包中是否包有PCR值,如果有PCR值,那么后续TS包中的PCR值不参与时间差值的计算,如果提取到的TS包中不包含有PCR值,那么判断提取到的TS包是否为TCP包中的最后一个包。

步骤S5025,当TS包不为TCP包中的最后一个TS包时,获取TS包的下一个TS包,并从TS包的下一个TS包中提取PCR值,直至提取出PCR值。

当提取到的TS包不是TCP包中的最后一个包时,那么,根据TCP包中TS包的排列顺序获取下一个TS包,并执行上述步骤,从提取到的TS包中判断是否包含有PCR值,如果包含有PCR值,提取出PCR值,并在此TS包之后提取到的TS包中无需再判断是否有PCR值。按上述步骤依次获取TS包,直至提取到PCR值。

步骤S5026,当TS包为TCP包中的最后一个TS包时,确定从TCP包的所有TS包中均未提取出PCR值。

如果提取到的TS包时TCP包的最后一个TS包时,确定从TCP包的所有TS包中均未提取到PCR值。也就是说,当依次解析TCP包中的7个TS包时,从7个TS包中均未提取到PCR值。

由上述可知,图8提供的步骤是在TCP包中循环获取TS包并提取PCR值的过程,在提取PCR值的过程中,可能每个TS包中均有PCR值,也可能只有第二个和第五个TS包中有PCR值,但是本方法中计算当前时移时间信息时,只从TCP包中提取一个PCR值进行计算,如果其他TS包中还有PCR值,那么其他TS包中的PCR值不参与时间差值的计算。

本发明实施例中提供的提取PCR值的方式是从TCP包中第一次提取到的PCR值进行计算,但是本方式并不作为本发明保护范围的限定,从TCP包中提取PCR值的方式,可以是将最后一次从TCP包中提取到的值进行计算等方式。

步骤S503,当从TCP包的任一TS包中提取到PCR值时,确定从TCP包的所有TS包中提取出PCR值。

图8所示的步骤中,对于从TCP包中提取PCR值进行了详细说明,步骤S3023中,当所述TS包中包含有PCR值时,确定从所述TCP包的任一TS包中提取到PCR值,当确定从TCP包的任一TS包中提取到PCR值时,确定从所述TCP包的所有TS包中提取到PCR值。

也就是说,当从TCP包中提取PCR值时,依次提取TCP包中的TS包并从TS包中提取PCR值,当从任意一个TS包中提取到PCR值时,并确定从TCP包中提取到PCR值,此时,在TCP包中后续提取到的PCR值不再参与时间差值的计算。

步骤S504,当从TCP包的所有TS包中均未提取到PCR值时,接收当前音视频数据流的下一个音视频数据流,并从当前音视频数据流的下一个音视频数据流中提取PCR值,直至提取到PCR值。

在上述步骤S5026中,当TS包为所述TCP包中的最后一个TS包时,确定从TCP包的所有TS包中均未提取到PCR值。依次提取TCP包中的TS包,并分析TS包中是否由PCR值,当TCP包中所有的TS包中均不存在PCR值时,确定从TCP包中均为提取到PCR值,那么获取下一个音视频数据流中的TCP包,继续依次提取TS包,并从TS包中提取PCR值。

由上述对图7和图8的描述可知,图7和图8具体描述了从音视频数据流中提取PCR值的过程,从音视频数据流中提取PCR值的过程如下:

当接收到当前音视频数据流时,从音视频数据流中获取TCP包,由于TCP包中包含有多个TS包,而PCR值存在于TS包中,所以需要从TS包中提取PCR值,本发明实施例提供的方法中,TCP包中包含有7个TS包。依次获取TCP包中的TS包,并通过判断TS包中的PCR标记,判断TS包中是否包含有PCR值,当PCR标记为1时,说明当前TS包中包含有PCR值,提取出当前TS包中的PCR值,并参与时移差值的计算,当前TS包之后的TS包在播放音视频时依然需要继续解析出其中的音视频数据,只是当前TS包后的TS包中的PCR值不再参与时移差值的计算。

如果当前TS包中的PCR标记为0,说明当前TS包中不包含有PCR值,那么,获取下一下TS包,并继续解析下一个TS包中是否包含有PCR值,依此类推,直至提取到参与计算的PCR值。每分析完一个TCP包后,就获取下一个音视频数据流,并从下一个音视频数据流中提取PCR值。

由上述描述可知,当从TCP包中提取PCR值参与时间差值的计算时,只需从TCP包中提取一个PCR值即可,这样的话无需每次解析TS包时,均从TS包中提取PCR值,减少了提取的次数,同样也较少了计算的次数。并且,由于每相邻的两个TS包之间相隔时间在毫秒甚至微秒级,所以,当从TCP包中只提取一个PCR值计算时间差值,而不提取其他包中的PCR值参与计算,对当前时移时间信息的更新造成的时间偏差也是毫秒甚至微秒极,因此,造成的时间误差可忽略不计。

在时移播放状态下进行倍速快进或快退时,由于服务器端PCR值的处理精度,在正常播放时,PCR编码本身存在不一致性,如果此时仍然以从基准音视频数据流中提取的基准PCR值为基准进行时间差值的计算,假如,每一次计算时间差值存在0.1ms的误差,那么随着多次时间差值的计算,并根据所述时间差值进行更新时,便会造成更大的时间偏差。为了解决上述问题,本发明实施例还引入了校准机制,具体步骤如下:

参见图9,为本发明实施例提供的又一种时移时间获取方法流程示意图。

步骤S601,判断是否接收到时移服务器根据机顶盒的倍速快进或快退播放请求发送的音视频数流,音视频数据流的传输速率与所述倍速快进或快退播放请求对应。

在倍速快进或快退时PCR值容易出现不一致,因此,在接收到倍速快进或快速操作时,启动校正机制,本发明实施例提供的校正机制是与时移服务器进行一次同步校准。当接收到时移服务器根据倍速快进或快退播放请求发送的音视频数据流时,时移服务器根据倍速快进或快退请求向机顶盒发送音视频数据流,例如,倍速快退或快退播放请求为两倍快进播放请求,此时,时移服务器以两倍传输速率向机顶盒发送音视频数据流。

步骤S602,当接收到时移服务器根据机顶盒的倍速快进或快退播放请求发送的音视频数流时,实时判断音视频数据流传输速率是否恢复至预设正常传输速率。

在倍速传输音视频数据流过程中,实时判断音视频传输速率是否恢复至正常传输速率。通过RTSP协议获取当前音视频数据流的传输速率,并将获取的传输速率与预设正常传输速率进行对比。上述方式适用于时移服务器接每接收到一次倍速快退或快进请求,变进行一个倍速快进或快退操作,对应于用户在使用遥控器进行倍速快进或快速操作时,每按一次倍速快进或快退按键,便进行一次倍速快进或快退动作;另一种情况是,当用户按下倍速快进或快退按键时,按下播放键时,时移节目才会正常播放。针对上述第二种情况,判断是否接收到正常播放请求,当接收到正常播放请求时,再进行校准。

步骤S603,当音视频数据流传输速率恢复至预设正常传输速率时,重新向所述时移服务器发送时移播放请求。

针对倍速快进或快退的第一种情况,当音视频数据流传输速率恢复至预设正常传输速率时,重新向时移服务器发送时移播放请求,从而重新接受基准音视频数据流和基准时移时间信息,以重新提取的基准PCR值为基准进行时间偏差的计算。

对于倍速快进或快退的第二种情况,当接收到正常播放请求时,重新向时移服务器发送时移播放请求即可,接下来的过程如上所述。

另一种校准机制是在正常播放情况下,例如,在时移节目以正常速率播放的时间较长时,也可能存在时间偏差问题,此时也可以与服务器进行同步校准。

具体流程参见图10,为本发明实施例提供的再一种时移时间获取方法。

步骤S604,判断时间差值是否等于预设时间差。

上文中提到时间差值的计算方法,时移节目的播放过程中根据时间差值更新当前时移时间信息,时间差值是指当前音视频数据流与基准音视频数据流之间的时间差值,也就是说当前时移播放时间与基准当前时移播放时间之间的差值。随着时间差值的增大,时移节目的当前时移时间也不断更新。

在机顶盒系统中设置预设时间差,预设时间差可以是15分钟、20分钟或30分钟等,预设时间差的时间值不作为本发明保护范围的限制。

步骤S605,当时间差值等于预设时间差时,重新向时移服务器发送时移播放请求。

例如,预设时间差值是20分钟,当时间差值等于20分钟时,向时移服务器重新发送时移播放请求,重新提取基准PCR值,并重新获取基准时移播放时间。

当然,在实际应用中存在时间差值不会达到20分钟整数值,因此,可以设置预设时间差范围,如果时间差值位于预设时间差范围内,重新向时移服务器发送时移播放请求。

由上述可知,本发明实施例提供的时移时间获取方法,在更新当前时移时间信息时,无需频繁向时移服务器获取当前时移时间信息,只需向时移服务器发送时移播放请求即可,时移播放请求发送或,同时接收基准音视频数据流以及与基准音视频数据流对应的基准时移时间信息。通过从基准音视频数据流中提取的基准PCR值,以及从后续接收到的音视频数据流中提取的PCR值进行差值计算,得到当前音视频数据流与基准音视频数据流的时间差值,从而基准当前时移播放时间加上所述时间差值即为当前时移播放时间。同样的,当前左边界时间和当前右边界时间也可根据时间差值进行更新。通过音视频数据流中的PCR值与基准PCR值之间的时间差值确定当前时移时间信息,无需频繁通过RTSP协议指令向时移服务器请求更新时移时间范围和当前时移播放时间,从而减轻时移服务器的负载,时移服务器的负载减轻,便减少了时移服务器信息返回延迟的现象,进而加强视频窗口界面时间刷新的实时性。

本发明实施例还公开了一种机顶盒,所属机顶盒包括处理器和用于存储处理器可执行指令的存储器。

处理器用于控制接收时移服务器发送的基准音视频数据流、基准时移时间信息以及当前音视频数据流,当接收到基准音视频数据流后,控制提取基准音视频数据流中的PCR值,并作为基准PCR值存入存储器中,同时将接收到的基准时移时间信息存储在存储器中作为基准。

处理器继续控制从当前音视频数据流中提取PCR值,并将提取到的PCR值与基准PCR值进行差值计算,计算出时间差值,在计算过程中,处理器先将提取到的PCR值与基准PCR值转化为时间值,然后做差值计算。将基准时移时间信息中的基准当前时移播放时间加上所述时间差值得到当前时移播放时间。同时,基准左边界时间和基准右边界时间加上所述时间差值得到左边界时间和右边界时间。

关于机顶盒执行操作的具体方式已经在有关方法的实施例中进行了详细描述,在此将不做详细阐述说明。

图11是根据已示例性实施例示出的一种机顶盒的框图。

本发明实施例提供的机顶盒控制的终端为智能电视,当机顶盒根据本发明公开的方法计算出当前时移时间信息时,机顶盒将当前时移时间信息发送至时间显示流程中,并将智能电视的视频显示界面更新为当前时移时间信息。

处理器401控制终端的视频实现、视频快退或快进、节目切换以及时移状态切换等操作,在处理其中包括完成上述操作的不同模块,以方便机顶盒与智能电视之间的互动。

存储器402被配置为存储各种类型的数据以支持在终端的操作。这些数据的示例包括用于在智能电视上操作的任何应用程序或方法的指令、计算方法等。存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件403为机顶盒的各种组件提供电力,电源组件403可以包括电源管理系统,一个或多个电源,及其他与为机顶盒生成、管理和分配电力相关联的组件。

多媒体组件404包括在机顶盒和用户之间提供的输出接口屏幕。在一些实施例中,屏幕可以包括显示屏或触摸面板。如果屏幕包括触摸面板,屏幕可以实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。机顶盒也可以设置有按键,用户可以通过按键进行节目切换、倍速快进或快退、音量加大或减小等功能。

输入/输出接口405为处理组件和外围接口模块之间提供接口,通信组件406被配置为便于机顶盒和时移服务器之间有线或无线方式的通信。机顶盒可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件406经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件406还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,机顶盒可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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