发明内容
本发明的目的是提出一种用于实现实时数字电视节目的回溯播放方法,以解决在没有预先录制电视节目的情况下,无法回溯已播出过的数字电视节目的技术问题。
为解决本发明的技术问题,本发明公开一种实时数字电视节目的回溯播放方法,包括:在播放数字电视节目的同时,控制将该数字电视节目对应的音视频数据以循环存储的方式保存至存储器的一个文件夹中;于接收用户发出的节目回溯指令之后,继续将该数字电视节目对应的音视频数据保存至所述存储器的文件夹中,并在存储器中定位该节目回溯指令所对应时间点的音视频数据,从该时间点开始读取音视频数据并播放;若节目回溯指令对应在文件中的回溯回放位置与文件头相碰时,控制将回溯回放速度改为正常速度播放;若节目回溯指令对应在文件中的回溯回放位置与文件尾相碰时,则控制暂停回溯回放并记录暂停位置,暂停的时候,节目的录制仍然在进行中,且每隔一预定时间,对比文件尾的位置与暂停的位置,当两者对应的时间相差超过某个时间阀值时,以正常速度向前回溯回放。
较优的,若暂停播放数字电视节目,则控制继续将该数字电视节目后续部分对应的音视频数据保存至文件中,且记录该暂时时文件尾的位置,待重新播放数字电视节目时,从暂时时文件尾的位置开始读取数据并播放。
与现有技术相比,本发明具有如下有益效果:
由于本发明是通过在播放数字电视节目的同时,无需人为干预即可自动录制数字电视节目,而当用户需要回溯播放时,即可读取录制的电视节目并播放,以此实现对正在播放的实时数字电视节目回溯播放。因此,利用本发明,用户不仅可以方便的回溯观看已经播放过的精彩实时电视节目,甚至用户也可以录制已经播放过的精彩实时节目。
具体实施方式
本发明是通过在播放数字电视节目的同时,将数字电视节目对应的音视频数据以循环存储的方式,存储在所述存储器的一个文件中;当数字电视接收机接收到用户发出的节目回溯指令时,一方面,继续将该数字电视节目对应的音视频数据保存至存储器,另一方面,在存储器的文件中定位该节目回溯指令所对应时间点的音视频数据,从该时间点开始读取音视频数据并播放,以此实现对正在播放的实时数字电视节目回溯播放。
请同时参考图1和图2所示,应用本发明的数字电视接收机包括:用于接收外部的音视频数据流的音视频输入单元110;用于实现实时数字电视节目的回溯播放的回溯播放控制单元120;CPU主处理器130;用于接收用户利用遥控器等输入设备对数字电视接收机产生遥控指令的用户输入接口140;用于存储数字电视节目对应音视频数据的存储器150;用于对音视频数据流作解复用处理的解复用器(Demux)160;连接在解复用器160输出端的音频解码器171和视频解码器172。
而所述回溯播放控制单元120连接所述存储器150和所述解复用器160,包括:用于控制将数字电视节目对应的音视频数据保存至所述存储器150的节目录制控制模块121;用于在接收用户发出的节目回溯指令之后,从所述存储器150中定位该节目回溯指令所对应时间点的音视频数据,并控制从该时间点开始读取音视频数据并播放的回溯播放控制模块122。
用户可以通过遥控器,对接收装置发出操作指令,如开始节目录制、换台等,所述用户输入接口140接收操作指令后,通过系统总线将该操作指令传送至所述CPU主处理器130。当用户输入播放数字电视节目的指令后,数字电视接收机根据用户所要播放的数字电视节目,取得所要播放的节目的视频包识别码(Video PID)、音频包识别码(Audio PID)、节目时钟参考(Program ClockPreference,PCR)包识别码(PCR PID),并取得节目所对应的锁频所需要的数据(比如:卫星数字电视接收机至少需要频率、符号率、极性;有线数字电视接收机至少需要频率、符号率、调制方式;地面数字电视接收机至少需要频率、波段);数字电视接收机使用锁频数据进行锁频,而所述音视频输入单元110获得的音视频数据流通过系统总线传输到所述解复用器160,并向所述解复用器160设置Video PID、Audio PID和PCR PID;所述解复用器160从PID音视频流中将为Video PID的数据传输至所述视频解码器172,将PID为Audio PID的数据传输至所述音频解码器171,且所述解复用器160从被录制数字电视节目的音视频流中提取Video PID以及Audio PID对应的数据,并存到至所述解复用器160中的缓存器。
数字电视接收机在播放数字电视节目的同时,所述节目录制控制模块121控制启动对当前播放的数字电视节目的录制,所述解复用器160从音视频数据流中提取当前解码数据包的视频包识别码与音频包识别码对应的音视频数据,并将音视频数据暂存至所述解复用器160中的缓存器,而所述节目录制控制模块121通过不断的检测该缓存器,如果缓存器中有数据,则控制将数据取出并存放至所述存储器150,以在无需用户干预的情况下,自动将该数字电视节目录制下来。并且,即使在数字电视节目的播放过程中,当用户控制暂停播放数字电视节目时,甚至是在回溯播放数字电视节目的过程中,当用户控制暂停回溯数字电视节目时,所述节目录制控制模块121仍控制将数字电视接收机在接收到暂停指令后该数字电视节目后续部分对应的音视频数据保存至所述存储器150。
而所述回溯播放控制模块122根据节目回溯指令定位存储在所述存储器150中的音视频数据,是指所述节目回溯播放控制模块控制将数字电视节目回溯到某一个时间点,在该时间点上所述数字电视节目对应存储在所述存储器150中的音视频数据。所述节目回溯指令指控制数字电视节目回溯播放的指令,包括快退、快进等。
所述音视频数据是以循环存储的方式,存储在所述存储器150的一个文件中。当文件尾指针抵达文件末尾的时候,将从头开始将音视频数据写入文件,同时文件的头指针向后移动,此时,文件尾指针在文件头指针之前。
当用户发出快退的节目回溯指令时,所述回溯播放控制模块122控制所述存储器150中文件的回溯回放指针定位至用户所需要的时间点,即数字电视节目对应的音视频数据在所述存储器150的文件中存储位置。然后,从回溯回放位置指针定位的文件位置开始,读取音视频数据并播放;此时,所述节目录制控制模块121仍然在录制实时数字电视节目,即存储文件的尾指针仍在向后移。
当节目快退或者暂停都是控制回溯回放指针的位置,比如看实时节目暂停时,将回溯回放指针的位置记下来,尾指针仍然跟着实时节目在走;当暂停取消时,从回溯回放指针的位置朝尾指针的方向走,读取文件数据来播放节目。
也就是说,当用户暂停播放数字电视节目时,所述节目录制控制模块121仍控制将数字电视节目后续部分对应的音视频数据保存至所述存储器150;并且,所述回溯播放控制模块122则记载暂停时文件的尾指针的位置,且所述节目录制控制模块121仍控制文件尾指针向前继续录制数字电视节目;在暂停一段时间后,用户重新开始播放电视节目时,所述回溯播放控制模块122控制回溯回放指针指向暂停时文件的尾指针的位置,从该位置所指向数据开始读取数据并以正常播放速度(1倍速)开始文件回放,或进行其它如快进、快退等操作,以衔接到户暂停时的电视节目片段,实现对实时节目的回溯播放。因此,当用户暂停播放数字电视节目时,数字电视接收机具有实时数字电视节目的回溯播放功能,还能使用户从暂停位置继续观看节目,不至于错过精彩的电视节目。
如果用户在观看实时电视节目的时候,直接发出为快退的节目回溯指令,数字电视接收机在接收到该指令后,所述回溯播放控制模块122控制回溯回放指针从所述存储器150中文件尾开始,以快退(即以几倍于正常播放速度)的方式回放;当以快退方式回溯至所述节目回溯指令所对应时间点的音视频数据,且以正常播放速度播放从该时间点开始的音视频数据。
由于文件是循环存储的,因此在文件的回溯或回放过程中,节目回溯的回放位置(所述节目回溯指令所对应时间点的音视频数据在文件中的存储位置)与文件头和文件尾有可能相碰。与文件头位置相碰存在下面几种情况:快退回溯到文件头; 暂停、慢进、慢退、或者快退,并且此时文件尾已经绕到起始位置开始循环写文件,此时由于文件头向后移动,产生碰撞。回溯回放位置与文件头位置相碰的时候,由所述回溯播放控制模块122控制将回放速度设置为正常速度播放即可。快进的时候,则可能追上文件尾,与文件尾相碰,这种情况下由所述回溯播放控制模块122控制执行下面的动作:暂停回溯回放并记录暂停位置,暂停的时候,节目的录制仍然在进行中;每隔一定时间(比如1秒钟),对比文件尾的位置与暂停的位置,当两者相差超过某个时间阀值(比如5秒钟),则恢复正常速度前进回溯回放。
在进行回溯播放时,从所述存储器150的文件中读取音视频数据,音视频数据经过所述解复用器160作解复用处理后,将音频数据和视频数据分别输出至所述音频解码器171和和所述视频解码器172。
当然,如果用户需要对回溯播放的电视节目内容进行录制,则可通过发出录制节目指令,在所述存储器150中另行建立一个用于存放回溯播放的电视节目内容的文件。
另外,请参考图3所示,是本发明实时数字电视节目回溯播放方法的一个较佳实施例的流程示意图,包括如下步骤:
步骤S310:在播放数字电视节目的同时,控制将该数字电视节目对应的音视频数据循环存储至存储器。
步骤S320:接收用户发出的节目回溯指令。
步骤S330:继续将该数字电视节目对应的音视频数据保存至存储器。
步骤S340:在存储器中定位该节目回溯指令所对应时间点的音视频数据。
步骤S350:从该时间点开始读取音视频数据并播放。
其中,所述音视频数据是以循环存储的方式,存储在存储器的一个文件中。而根据节目回溯指令定位存储在所述存储器中的音视频数据,是指所述节目回溯指令控制将数字电视节目回溯到某一个时间点,在该时间点上所述数字电视节目对应存储在所述存储器中的音视频数据。所述节目回溯指令指控制数字电视节目回溯播放的指令,包括快退、快进等。