《一种TS文件的定位方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种TS文件的定位方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104216959A43申请公布日20141217CN104216959A21申请号201410415418922申请日20140821G06F17/3020060171申请人浙江宇视科技有限公司地址310051浙江省杭州市滨江区西兴街道江陵路88号10幢南座111层72发明人蔡焱钢74专利代理机构北京博思佳知识产权代理有限公司11415代理人林祥54发明名称一种TS文件的定位方法及装置57摘要本发明提供一种TS文件的定位方法及装置,方法包括获取TS文件的第三位置,第三位置为TS文件的第一位置和第二位置之间的位置;跳转到第三位置并开始,沿正方向查找获得首个I帧显示时间戳PTS。
2、,并将PTS处理得到期望显示时间戳PTS;若PTS对应的时间点,与目标时间点的差值小于第一预设值且大于第二预设值时,其中,第一预设值大于第二预设值,则沿正方向搜寻期望显示时间戳PTS后的第一个节目关联表PAT,第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为目标时间点所对应的位置。通过本发明,在能够使得TS文件在不影响打开速度的情况下精确的跳转到需要定位的目标时间点所对应的位置,解决了TS文件跳转速度问题。51INTCL权利要求书2页说明书9页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图4页10申请公布号CN104216959ACN1042。
3、16959A1/2页21一种TS文件的定位方法,其特征在于,包括获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳PTS;若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一。
4、预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳PTS后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置;若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设。
5、值且大于等于第二预设值。2根据权利要求1所述的方法,其特征在于,将所述PTS处理得到期望显示时间戳PTS,具体包括利用下式得到的A值进行取模T0得到期望显示时间戳PTS其中TO为溢出时间;TA为TS文件的首个I帧的PTS除以90的商,其中TA的单位为毫秒。3根据权利要求1所述的方法,其特征在于,所述当所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于。
6、第一预设值且大于第二预设值,具体包括在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1;在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1。4根据权利要求1所述的方法,其特征在于,所述需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得所述。
7、期望显示时间戳PTS,所述方法还包括在满足定位终止条件时,根据所述期望显示时间戳PTS得到所述首帧显示时间戳PTS0权利要求书CN104216959A2/2页3所在的位置,所述位置为所述目标时间点所对应的位置。5根据权利要求4所述的方法,其特征在于,所述满足定位终止条件,包括当跳转次数大于设定的跳转次数时,或当第一位置和第二位置之间的字节数小于设定字节数时,则退出跳转。6一种TS文件的定位装置,其特征在于,包括获取单元,用于获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;PTS获得单。
8、元,用于跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳PTS;目标位置获得单元,用于若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳PTS后的第一个节目关联表PAT,。
9、所述第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置;重新定位单元,用于若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。7根据权利要求6所述的装置,其特征在于,所述PTS获得单元,具体用于利用下式得到的A值进行取模T0得到期望显示时间戳PTS其中TO为溢出时间;TA为TS。
10、文件的首个I帧的PTS除以90的商,其中TA的单位为毫秒。8根据权利要求6所述的装置,其特征在于,所述重新定位单元,具体用于在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置;在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1。9根据权利要求6所述的装置,其特征在于,还包括在满足定位终。
11、止条件时,根据所述期望显示时间戳PTS得到所述首帧显示时间戳PTS0所在的位置,所述位置为所述目标时间点所对应的位置。权利要求书CN104216959A1/9页4一种TS文件的定位方法及装置技术领域0001本发明涉及视频编码解码技术领域,特别涉及一种TS文件的定位方法及装置。背景技术0002随着流媒体相关行业的飞速发展,TSTRANSPORTSTREAM,传输流文件的应用也越来越广泛。在播放TS文件时,有些情况下需要进行跳转,该跳转指的是从指定位置进行播放,例如,在播放器上播放时有时需要跳转到某个时间点所对应的位置,并从该时间点所对应的位置进行播放,或者,有时需要对TS文件进行截取其中的一部分。
12、文件,此时需要跳转到截取时间点所对应的位置。因此,在上述的TS文件跳转时,就涉及到TS文件的定位问题,需要定位到跳转指定时间点所对应的位置。0003但是TS格式文件和其它专门用于保存成文件的格式文件如AVI相比,没有索引。有索引的流媒体文件在定位或者跳转的时候会通过时间戳转换为对应的帧数目,然后通过查询索引得到帧的位置,而TS文件没有索引,只能采用其它方法。0004现有技术中,对TS文件进行定位时,一种方法是根据位置进行定位,例如将TS文件的总长度按照进度比例进行定位到指定位置,但是这种方式的缺点是无法确定位置对应的时间,即不能保证定位时间点的准确性;另一种方式是按照时间比例进行跳转定位,但是。
13、时间与位置的比例关系可能会由于码率不均匀等不成线性关系,因此,所得到的定位位置也可能不准确;还有一种定位方法是建立索引,打开视频文件后,通读一遍该视频文件,然后新建一个索引文件,把视频文件的PATPROGRAMASSOCIATIONTABLE节目关联表表的位置,I帧的位置以及相对应的时间记录在索引文件中,当进行文件定位时,根据索引文件得到定位位置,这种方法中,当视频文件很大时,建立索引所花费的时间就很长。因此,当前的TS文件的定位方式,花费时间长或者准确率较低。发明内容0005有鉴于此,本发明提供一种TS文件的定位方法及装置,在保证文件打开速度的前提下,提高TS文件的准确率。0006本发明实施。
14、例提供了一种TS文件的定位方法,包括0007获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;0008跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳PTS;0009若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设。
15、值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,说明书CN104216959A2/9页5第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳PTS后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置;0010若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所述期望显示时间戳PTS对应的时间点,与需要定。
16、位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。0011优选地,将所述PTS处理得到期望显示时间戳PTS,具体包括利用下式得到的A值进行取模T0得到期望显示时间戳PTS00120013其中TO为溢出时间;TA为TS文件的首个I帧的PTS除以90的商,其中TA的单位为毫秒。0014优选地,所述当所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间。
17、点的差值小于第一预设值且大于第二预设值,具体包括0015在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1;0016在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1。0017优选地,所述需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得。
18、所述期望显示时间戳PTS,所述方法还包括0018在满足定位终止条件时,根据所述期望显示时间戳PTS得到所述首帧显示时间戳PTS0所在的位置,所述位置为所述目标时间点所对应的位置。0019优选地,所述满足定位终止条件,包括0020当跳转次数大于设定的跳转次数时,或当第一位置和第二位置之间的字节数小于设定字节数时,则退出跳转。0021本发明实施例还提供了一种TS文件的定位装置,包括0022获取单元,用于获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;0023PTS获得单元,用于跳转到第三。
19、位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的说明书CN104216959A3/9页6显示时间戳PTS,并将所述PTS处理得到期望显示时间戳PTS;0024目标位置获得单元,用于若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳PT。
20、S后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置;0025重新定位单元,用于若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。0026优选地,所述PTS获得单元,具体用于利用下式得到的A值进行取模T0得到期望显示时间戳PTS00270028。
21、其中TO为溢出时间;TA为TS文件的首个I帧的PTS除以90的商,其中TA的单位为毫秒。0029优选地,所述重新定位单元,具体用于在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置;在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1。0030优选地,还包括0031在满足定位终止条件时,。
22、根据所述期望显示时间戳PTS得到所述首帧显示时间戳PTS0所在的位置,所述位置为所述目标时间点所对应的位置。0032本发明通过提供一种TS文件的定位方法及装置,在能够使得TS文件在不影响打开速度的情况下精确的跳转到需要定位的目标时间点所对应的位置,解决了TS文件跳转速度和精度问题。附图说明0033图1是本发明实施例提供的方法流程图;0034图2是本发明实施例提供的TS文件的长度示意图;0035图3是本发明又一实施例提供的方法流程图;0036图4是本发明实施例提供的TS文件的结构示意图;0037图5是本发明实施例提供的视频截取示意图;0038图6是本发明实施例提供的装置运行的硬件环境架构图;00。
23、39图7是本发明实施例提供的装置结构示意图。说明书CN104216959A4/9页7具体实施方式0040下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0041实施例一0042针对上述问题,本发明实施例提供了一种TS文件的定位方法,如图1所示,该方法可以包括以下步骤0043步骤101获取该TS文件的第三位置,其中,第三位置为该TS文件的第一位置和第二位置之间的位置,其中第一位置为该TS文。
24、件的起始位置,第二位置为该TS文件的结束位置。0044TS文件为一种视频的封装格式,用于音效、图像与数据的通信协定。如图2所示,为TS文件长度示意图,该TS文件的总字节数为位置A至位置C间的所有字节数,其中,位置A为第一位置,位置B为第二位置。该第三位置为位置C,该位置C为位置A和位置B之间的位置。0045步骤102跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳PT。
25、S。0046在本发明实施例中,在获取到TS文件后,即获知该TS文件的起始位置和结束位置。利用该起始位置和结束位置,确定第三位置。其中,该第三位置位于起始位置与结束位置之间,如图2所示的位置C。跳转到第三位置,沿该TS文件播放的正向查找,其中,该TS文件播放的正方向,例如为位置C到位置B的方向,该位置B为结束位置。0047在本发明实施例中,根据TS文件的特性,在第三位置向正方向进行查找,每隔188个字节就会出现一次0X47的固定值,该0X47的所对应的位置为TS包,其中,当该TS包内的包识别符PID为视频帧PID,且该TS内的有效载荷单元起始指示符的值为1,那么该TS包为在第三位置向正方向进行查。
26、找的首个期望TS包。0048在本发明实施例中,对PTSPRESENTATIONTIMESTAMP,显示时间戳进行处理指的是,对PTS进行单位换算,以保证单位换算后的PTS与目标时间点在进行比较时单位相同。并且,本实施例中,将进行单位换算后的PTS可以称为“期望显示时间戳PTS”。0049步骤103若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳PTS后的第一个节目关联表PAT,所述第一个节目关联表。
27、PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置。0050步骤104若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳PTS,直到所说明书CN104216959A5/9页8述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。0051PATPROGRAMASSOCIATIONTABLE,节目关联表定义了TS文件中的所有业务,为包含有TS文件中所有业务的一个。
28、完整列表。其中,PAT的表的PIDPACKETIDENTIER,包标识符是固定的0X0000。0052每个业务在PAT中都有一个具有业务号码和对应PID值的条目,可以根据业务的PID找到对应的PMTPROGRAMMAPTABLE,节目映射表。0053例如,需要定位的目标时间T0为00400000,该目标时间的单位为HMINSMS,即TS文件的第40分钟上,第一预设值为1MS,第二预设值为1MS,其中1MS,1MS为允许定位的误差范围,此处1MS可以根据实际情况确定,本发明不进行限制,获取的期望显示时间戳PTS对应的时间点为00400008,则该PTS对应的时间点大于目标时间点T01MS,因此需。
29、要重新定位第三位置,且需要重新定位的第三位置在上一次第三位置之前。如果,确定的PTS对应的时间点为00395958,则该PTS对应的时间点小于目标时间点T01MS,因此需要重新定位第三位置,且需要重新定位的第三位置在上一次第三位置之后。0054上述需要定位时间T0为相对于TS文件开始时间的相对时间,则期望显示时间戳PTS的时间点转换成了相对于TS文件开始时间的相对时间,本发明不限定查找时间T0或者期望显示时间戳PTS时间为相对时间,也可以是绝对时间,例如,视频文件的录制时的系统时间例如2014年1月1日12点59分59秒39毫秒等其他时间形式。0055实施例二0056如图3所示,本发明又一实施。
30、例提供了一种TS文件的定位方法,应用于TS文件的定位,该实施例较实施例一更加详细,该方法可以包括以下步骤0057步骤301获取TS文件的总字节数,并获取该TS文件的第一位置和第二位置,其中第一位置为该TS文件的起始位置,第二位置为该TS文件的结束位置。0058如图2中的TS文件的总字节数为位置A到位置B之间的所有字节数,例如,该TS文件的总字节数为300MB,位置A即为第一位置,位置B即为第二位置。0059如图4所示,为TS文件的结构示意图,TS文件通过分包进行传输,每一个TS包包括包头和负载,其中负载包括自适应字段和包数据。每个TS包的长度可以为188字节、192字节、204字节、208字节。
31、。以TS包的长度为188字节为例,包头占TS包的4个字节,负载占TS包的184个字节。0060其中,TS包的首字节为固定值0X47,因此,在TS文件中,每隔188个字节,找到一个固定值为0X47的首字节,即查找到该首字节所对应的TS包。0061步骤302获取需要定位的TS文件的目标时间点。0062例如,以TS文件是一段视频为例,当我们在观看一段视频时,可能需要跳转到该视频的某个时间点播放,那么这个需要跳转的时间点即为需要定位的TS文件的目标时间点。0063步骤303获取TS文件的第三位置,其中,第三位置为该TS文件的第一位置和第二位置之间的位置。0064根据TS文件的起始位置和结束位置确定第三。
32、位置,该第三位置如图2中的位置C。0065可选的,第三位置为第一位置和第二位置的中间位置,即第一位置到第二位置之说明书CN104216959A6/9页9间的字节数与第三位置到第二位置之间的字节数相等。0066步骤304跳转到第三位置,沿该TS文件播放的正方向查找第三位置之后的首个期望TS包,该期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,该期望TS包内包括基本码流包PES的包头,获取该PES包头中的显示时间戳PTS。0067其中,TS文件播放的正方向为图2中的位置A到位置B的方向。从第三位置开始进行查找,则图2中位置C到位置B的方向为正方向。0068在本发明实施例。
33、中,根据TS文件每隔188个字节查找到一个0X47的首字节的特性,当查找到一个TS包时,对查找到的TS包进行解析,并判断该TS包的PID值是否为视频帧PID,若该PID是视频帧PID,则根据该TS包内的有效载荷单元起始指示符PAYLOAD_UNIT_START_INDICATOR的值,确定该TS包内是否包括基本码流包的包头;若确定该TS包内包括基本码流包PES的包头,获取该包头内的显示时间戳PTS。其中,若该TS包内的有效载荷单元起始指示符的值为1,则确定该TS包内包括基本码流包的包头。其中,视频帧PID的获得为获取到PID为0的PAT,并根据该PAT得到PMT,根据PMT中的标识,确定视频帧。
34、PID,如为1447,音频帧PID,如为3119。0069步骤305将该PTS处理得到期望显示时间戳PTS;0070为了保证与目标时间点进行比较时的单位一致,因此利用公式1中得到的中间值A值进行取模T0,得到期望显示时间戳PTS。00710072其中TO为溢出时间;TA为TS文件的首个I帧的PTS除以90的商,其中TA的单位为毫秒。换算后的得到的PTS的单位为MS。其中,A值进行取模T0为A除以T0的余数。0073步骤306判断该期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值是否为小于等于第一预设值且大于等于第二预设值,其中,第一预设值大于第二预设值,第一预设值与第二预。
35、设值之间的差值范围是定位允许的误差范围;若判断结果为是,则执行步骤307;若判断结果为PTS对应的时间点与目标时间点的差值大于第一预设值,则执行步骤308;若判断结果为PTS对应的时间点与目标时间点的差值小于第二预设值,则执行步骤309。0074在本发明实施例中,若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得首个期望TS包,并根据期望TS包确定期望显示时间戳PTS,直到该期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于。
36、第一预设值且大于等于第二预设值。例如,该第一预设值可以为1,第二预设值可以为1。0075步骤307沿所述正方向搜寻所述期望显示时间戳PTS后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置。0076在确定期望时间戳PTS后,继续向播放正方向进行搜寻,由于节目关联表PAT的PID为固定值0X0000,因此当搜寻到该固定值时,确定其为PAT表。根据TS文件的结构关说明书CN104216959A7/9页10系,在搜寻到的期望显示时间戳PTS后的第一个节目关联表PAT,之后的首帧显示时间戳PTS0所在位置为目标时间点所对应的位置。其。
37、中,该第一个节目关联表之后的首帧为I帧。0077步骤308需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第二位置,该第N次跳转的第三位置为第一位置与第二位置之间的位置,当满足定位终止条件时,根据该期望显示时间戳PTS得到该首帧显示时间戳PTS0所在的位置为该目标时间点所对应的位置,所述N大于1。0078步骤309需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,当满足定位终止条件时,根据该期望显示时间戳PTS得到该首帧显示时间戳PTS0所在的位置为该目标时间点所对应的位置,所述N大于1。0079例如,如图2所示,第一次跳转的第。
38、三位置为位置C,当PTS对应的时间点与目标时间点的差值大于第一预设值时,则令位置C为第二位置,第二次跳转的第三位置为位置E;当PTS对应的时间点与目标时间点的差值小于第二预设值时,则令位置C为第一位置,则第二次跳转的第三位置为位置D。依次类推。直到期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于第一预设值且大于第二预设值。0080有的时候,可能跳转的次数比较少就找到了定位的时间点,比如跳转三次以后找到定位点。但是有时可能跳转了很多次也未能找到定位点,此时,可以按照如下的定位终止条件来结束寻找过程。该条件例如包括00811当跳转次数大于设定的跳转次数时,退出跳转。008。
39、2例如,设定的跳转次数为100次,如果获取了100次的第三位置,并跳转到第100次定位的第三位置,得到的PTS依然不在预设范围内,则确定第101次重新定位的第三位置为期望显示时间戳PTS所对应的位置。00832当第N1次跳转结束后,需要进行第N次跳转时,第一位置与第二位置之间的字节数小于设定字节数时,则退出跳转。0084例如,设定字节数为1MB,如果进行了N1次跳转后,得到的PTS依然不在预设范围内,还需要进行第N次跳转,此时,第一位置和第二位置之间的字节数小于设定字节数例如,两个位置之间的字节数少于2个字节,则确定第N次重新定位的第三位置为期望显示时间戳PTS所对应的位置。0085其中,若首。
40、先满足了第一个终止条件,则按照第一个条件来执行结束寻找过程。若尚未满足第一个终止条件,就已经满足了第二个终止条件中的第一位置和第二位置之间的字节数小于设定字节数,则按照第二个终止条件来执行结束寻找过程。0086需要说明的是,若需要定位的目标时间点为TS文件的起始位置,则直接跳转到TS文件的起始位置;若需要定位的目标时间点为TS文件的结束位置,则直接跳转到TS文件的结束位置。0087本发明实施例提供的TS文件的定位方法,不仅可以应用于对TS文件的定位,还可以使用对TS文件的定位从而实现视频片段的截取应用。如图5所示,一TS文件的起始位置A和结束位置B,现获取视频片段的截取指令,该截屏指令用于截取。
41、TS文件中时间点T1所对应的位置到时间点T2所对应的位置之间的片段。0088根据步骤301、步骤302,获取TS文件对端总字节数,300MB,需要定位的第一目标说明书CN104216959A108/9页11时间点为T1,需要定位的第二时间点为T2。0089根据第一目标时间点T1,根据步骤303到步骤309,获得在第一目标时间点T1预设范围内的期望显示时间戳PTS,并获得首帧显示时间戳PTS0所在位置A1,该位置A1即为第一目标时间点T1对应的位置。0090根据第二目标时间点T2,根据步骤303到步骤309,获得在第二目标时间点T2预设范围内的期望显示时间戳PTS,并获得首帧显示时间戳PTS0所。
42、在位置A2,该位置A2即为第二目标时间点T2对应的位置。0091根据位置A1和位置A2,获取位置A1和位置A2间的视频片段。0092在上述方案在视频片段的截屏应用时,也包括定位终止条件,该定位终止条件包括当步骤303到步骤309之间的步骤中,获取第N次重新定位的第三位置,并跳转到该第三位置,此时为第N次跳转,当跳转次数大于设定的跳转次数时,则退出跳转。该设定的跳转次数可以为10000次。0093此时退出跳转时,将第10001次重新定位的第三位置作为期望显示时间戳PTS所对应的位置。0094根据上述方案,在能够使得TS文件在不影响打开速度的情况下精确的跳转到需要定位的目标时间点所对应的位置,解决。
43、了TS文件跳转速度和精度问题。0095实施例三0096如图6、图7所示,本发明实施例还提供了一种TS文件的定位装置,装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图6所示,为本发明实施例TS文件的定位装置所在设备的一种硬件结构图,除了图6所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图7所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的TS文件的定位装置70包括0097获取。
44、单元701,用于获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;0098PTS获得单元702,用于跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳PTS;0099目标位置获得单元703,用于若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时。
45、间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳PTS后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳PTS0所在的位置为所述目标时间点所对应的位置;0100重新定位单元704,用于若所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位说明书CN104216959A119/9页12置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳P。
46、TS,直到所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。0101进一步的,所述PTS获得单元,具体用于利用下式得到的A值进行取模T0得到期望显示时间戳PTS01020103其中TO为溢出时间;TA为TS文件的首个I帧的PTS除以90的商,其中TA的单位为毫秒。0104进一步的,所述重新定位单元,具体用于在所述期望显示时间戳PTS对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置;在所述期望显示时间戳PTS。
47、对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第N次跳转到第三位置,则令第N1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述N大于1。0105进一步的,还包括0106在满足定位终止条件时,根据所述期望显示时间戳PTS得到所述首帧显示时间戳PTS0所在的位置,所述位置为所述目标时间点所对应的位置。0107以上该仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说明书CN104216959A121/4页13图1图2说明书附图CN104216959A132/4页14图3说明书附图CN104216959A143/4页15图4图5说明书附图CN104216959A154/4页16图6图7说明书附图CN104216959A16。