CN104216959B - 一种ts文件的定位方法及装置 - Google Patents
一种ts文件的定位方法及装置 Download PDFInfo
- Publication number
- CN104216959B CN104216959B CN201410415418.9A CN201410415418A CN104216959B CN 104216959 B CN104216959 B CN 104216959B CN 201410415418 A CN201410415418 A CN 201410415418A CN 104216959 B CN104216959 B CN 104216959B
- Authority
- CN
- China
- Prior art keywords
- files
- preset value
- pts
- desired display
- time point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供一种TS文件的定位方法及装置,方法包括:获取TS文件的第三位置,第三位置为TS文件的第一位置和第二位置之间的位置;跳转到第三位置并开始,沿正方向查找获得首个I帧显示时间戳PTS,并将PTS处理得到期望显示时间戳pts;若pts对应的时间点,与目标时间点的差值小于第一预设值且大于第二预设值时,其中,第一预设值大于第二预设值,则沿正方向搜寻期望显示时间戳pts后的第一个节目关联表PAT,第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为目标时间点所对应的位置。通过本发明,在能够使得TS文件在不影响打开速度的情况下精确的跳转到需要定位的目标时间点所对应的位置,解决了TS文件跳转速度问题。
Description
技术领域
本发明涉及视频编码解码技术领域,特别涉及一种TS文件的定位方法及装置。
背景技术
随着流媒体相关行业的飞速发展,TS(Transport Stream,传输流)文件的应用也越来越广泛。在播放TS文件时,有些情况下需要进行跳转,该跳转指的是从指定位置进行播放,例如,在播放器上播放时有时需要跳转到某个时间点所对应的位置,并从该时间点所对应的位置进行播放,或者,有时需要对TS文件进行截取其中的一部分文件,此时需要跳转到截取时间点所对应的位置。因此,在上述的TS文件跳转时,就涉及到TS文件的定位问题,需要定位到跳转指定时间点所对应的位置。
但是TS格式文件和其它专门用于保存成文件的格式文件(如AVI)相比,没有索引。有索引的流媒体文件在定位或者跳转的时候会通过时间戳转换为对应的帧数目,然后通过查询索引得到帧的位置,而TS文件没有索引,只能采用其它方法。
现有技术中,对TS文件进行定位时,一种方法是根据位置进行定位,例如将TS文件的总长度按照进度比例进行定位到指定位置,但是这种方式的缺点是无法确定位置对应的时间,即不能保证定位时间点的准确性;另一种方式是按照时间比例进行跳转定位,但是时间与位置的比例关系可能会由于码率不均匀等不成线性关系,因此,所得到的定位位置也可能不准确;还有一种定位方法是建立索引,打开视频文件后,通读一遍该视频文件,然后新建一个索引文件,把视频文件的PAT(Program Association Table节目关联表)表的位置,I帧的位置以及相对应的时间记录在索引文件中,当进行文件定位时,根据索引文件得到定位位置,这种方法中,当视频文件很大时,建立索引所花费的时间就很长。因此,当前的TS文件的定位方式,花费时间长或者准确率较低。
发明内容
有鉴于此,本发明提供一种TS文件的定位方法及装置,在保证文件打开速度的前提下,提高TS文件的准确率。
本发明实施例提供了一种TS文件的定位方法,包括:
获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;
跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳pts;
若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置;
若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。
优选地,将所述PTS处理得到期望显示时间戳pts,具体包括:利用下式得到的a值进行取模To得到期望显示时间戳pts:
其中:To为溢出时间;Ta为TS文件的首个I帧的PTS除以90的商,其中Ta的单位为毫秒。
优选地,所述当所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第一预设值且大于第二预设值,具体包括:
在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1;
在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1。
优选地,所述需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得所述期望显示时间戳pts,所述方法还包括:
在满足定位终止条件时,根据所述期望显示时间戳pts得到所述首帧显示时间戳pts0所在的位置,所述位置为所述目标时间点所对应的位置。
优选地,所述满足定位终止条件,包括:
当跳转次数大于设定的跳转次数时,或当第一位置和第二位置之间的字节数小于设定字节数时,则退出跳转。
本发明实施例还提供了一种TS文件的定位装置,包括:
获取单元,用于获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;
pts获得单元,用于跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳pts;
目标位置获得单元,用于若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置;
重新定位单元,用于若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。
优选地,所述pts获得单元,具体用于利用下式得到的a值进行取模TO得到期望显示时间戳pts:
其中:To为溢出时间;Ta为TS文件的首个I帧的PTS除以90的商,其中Ta的单位为毫秒。
优选地,所述重新定位单元,具体用于在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置;在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1。
优选地,还包括:
在满足定位终止条件时,根据所述期望显示时间戳pts得到所述首帧显示时间戳pts0所在的位置,所述位置为所述目标时间点所对应的位置。
本发明通过提供一种TS文件的定位方法及装置,在能够使得TS文件在不影响打开速度的情况下精确的跳转到需要定位的目标时间点所对应的位置,解决了TS文件跳转速度和精度问题。
附图说明
图1是本发明实施例提供的方法流程图;
图2是本发明实施例提供的TS文件的长度示意图;
图3是本发明又一实施例提供的方法流程图;
图4是本发明实施例提供的TS文件的结构示意图;
图5是本发明实施例提供的视频截取示意图;
图6是本发明实施例提供的装置运行的硬件环境架构图;
图7是本发明实施例提供的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
针对上述问题,本发明实施例提供了一种TS文件的定位方法,如图1所示,该方法可以包括以下步骤:
步骤101:获取该TS文件的第三位置,其中,第三位置为该TS文件的第一位置和第二位置之间的位置,其中第一位置为该TS文件的起始位置,第二位置为该TS文件的结束位置。
TS文件为一种视频的封装格式,用于音效、图像与数据的通信协定。如图2所示,为TS文件长度示意图,该TS文件的总字节数为位置A至位置C间的所有字节数,其中,位置A为第一位置,位置B为第二位置。该第三位置为位置C,该位置C为位置A和位置B之间的位置。
步骤102:跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳pts。
在本发明实施例中,在获取到TS文件后,即获知该TS文件的起始位置和结束位置。利用该起始位置和结束位置,确定第三位置。其中,该第三位置位于起始位置与结束位置之间,如图2所示的位置C。跳转到第三位置,沿该TS文件播放的正向查找,其中,该TS文件播放的正方向,例如为位置C到位置B的方向,该位置B为结束位置。
在本发明实施例中,根据TS文件的特性,在第三位置向正方向进行查找,每隔188个字节就会出现一次0x47的固定值,该0x47的所对应的位置为TS包,其中,当该TS包内的包识别符PID为视频帧PID,且该TS内的有效载荷单元起始指示符的值为1,那么该TS包为在第三位置向正方向进行查找的首个期望TS包。
在本发明实施例中,对PTS(Presentation Time Stamp,显示时间戳)进行处理指的是,对PTS进行单位换算,以保证单位换算后的pts与目标时间点在进行比较时单位相同。并且,本实施例中,将进行单位换算后的PTS可以称为“期望显示时间戳pts”。
步骤103:若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置。
步骤104:若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。
PAT(Program Association Table,节目关联表)定义了TS文件中的所有业务,为包含有TS文件中所有业务的一个完整列表。其中,PAT的表的PID(Packet Identifier,包标识符)是固定的0x0000。
每个业务在PAT中都有一个具有业务号码和对应PID值的条目,可以根据业务的PID找到对应的PMT(Program Map Table,节目映射表)。
例如,需要定位的目标时间t0为00:40:00:00,该目标时间的单位为h:min:s:ms,即TS文件的第40分钟上,第一预设值为1ms,第二预设值为-1ms,其中[-1ms,1ms]为允许定位的误差范围,此处1ms可以根据实际情况确定,本发明不进行限制,获取的期望显示时间戳pts对应的时间点为00:40:00:08,则该pts对应的时间点大于目标时间点t0+1ms,因此需要重新定位第三位置,且需要重新定位的第三位置在上一次第三位置之前。如果,确定的pts对应的时间点为00:39:59:58,则该pts对应的时间点小于目标时间点t0-1ms,因此需要重新定位第三位置,且需要重新定位的第三位置在上一次第三位置之后。
上述需要定位时间t0为相对于TS文件开始时间的相对时间,则期望显示时间戳pts的时间点转换成了相对于TS文件开始时间的相对时间,本发明不限定查找时间t0或者期望显示时间戳pts时间为相对时间,也可以是绝对时间,例如,视频文件的录制时的系统时间例如2014年1月1日12点59分59秒39毫秒等其他时间形式。
实施例二
如图3所示,本发明又一实施例提供了一种TS文件的定位方法,应用于TS文件的定位,该实施例较实施例一更加详细,该方法可以包括以下步骤:
步骤301:获取TS文件的总字节数,并获取该TS文件的第一位置和第二位置,其中第一位置为该TS文件的起始位置,第二位置为该TS文件的结束位置。
如图2中的TS文件的总字节数为位置A到位置B之间的所有字节数,例如,该TS文件的总字节数为300MB,位置A即为第一位置,位置B即为第二位置。
如图4所示,为TS文件的结构示意图,TS文件通过分包进行传输,每一个TS包包括包头和负载,其中负载包括自适应字段和包数据。每个TS包的长度可以为188字节、192字节、204字节、208字节。以TS包的长度为188字节为例,包头占TS包的4个字节,负载占TS包的184个字节。
其中,TS包的首字节为固定值0x47,因此,在TS文件中,每隔188个字节,找到一个固定值为0x47的首字节,即查找到该首字节所对应的TS包。
步骤302:获取需要定位的TS文件的目标时间点。
例如,以TS文件是一段视频为例,当我们在观看一段视频时,可能需要跳转到该视频的某个时间点播放,那么这个需要跳转的时间点即为需要定位的TS文件的目标时间点。
步骤303:获取TS文件的第三位置,其中,第三位置为该TS文件的第一位置和第二位置之间的位置。
根据TS文件的起始位置和结束位置确定第三位置,该第三位置如图2中的位置C。
可选的,第三位置为第一位置和第二位置的中间位置,即第一位置到第二位置之间的字节数与第三位置到第二位置之间的字节数相等。
步骤304:跳转到第三位置,沿该TS文件播放的正方向查找第三位置之后的首个期望TS包,该期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,该期望TS包内包括基本码流包PES的包头,获取该PES包头中的显示时间戳PTS。
其中,TS文件播放的正方向为图2中的位置A到位置B的方向。从第三位置开始进行查找,则图2中位置C到位置B的方向为正方向。
在本发明实施例中,根据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中的标识,确定视频帧PID,如为1447,音频帧PID,如为3119。
步骤305:将该PTS处理得到期望显示时间戳pts;
为了保证与目标时间点进行比较时的单位一致,因此利用公式(1)中得到的中间值a值进行取模TO,得到期望显示时间戳pts。
其中:To为溢出时间;Ta为TS文件的首个I帧的PTS除以90的商,其中Ta的单位为毫秒。换算后的得到的pts的单位为ms。其中,a值进行取模TO为:a除以TO的余数。
步骤306:判断该期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值是否为小于等于第一预设值且大于等于第二预设值,其中,第一预设值大于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围;若判断结果为是,则执行步骤307;若判断结果为pts对应的时间点与目标时间点的差值大于第一预设值,则执行步骤308;若判断结果为pts对应的时间点与目标时间点的差值小于第二预设值,则执行步骤309。
在本发明实施例中,若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得首个期望TS包,并根据期望TS包确定期望显示时间戳pts,直到该期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。例如,该第一预设值可以为1,第二预设值可以为-1。
步骤307:沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置。
在确定期望时间戳pts后,继续向播放正方向进行搜寻,由于节目关联表PAT的PID为固定值0x0000,因此当搜寻到该固定值时,确定其为PAT表。根据TS文件的结构关系,在搜寻到的期望显示时间戳pts后的第一个节目关联表PAT,之后的首帧显示时间戳pts0所在位置为目标时间点所对应的位置。其中,该第一个节目关联表之后的首帧为I帧。
步骤308:需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第二位置,该第n次跳转的第三位置为第一位置与第二位置之间的位置,当满足定位终止条件时,根据该期望显示时间戳pts得到该首帧显示时间戳pts0所在的位置为该目标时间点所对应的位置,所述n大于1。
步骤309:需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,当满足定位终止条件时,根据该期望显示时间戳pts得到该首帧显示时间戳pts0所在的位置为该目标时间点所对应的位置,所述n大于1。
例如,如图2所示,第一次跳转的第三位置为位置C,当pts对应的时间点与目标时间点的差值大于第一预设值时,则令位置C为第二位置,第二次跳转的第三位置为位置E;当pts对应的时间点与目标时间点的差值小于第二预设值时,则令位置C为第一位置,则第二次跳转的第三位置为位置D。依次类推。直到期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第一预设值且大于第二预设值。
有的时候,可能跳转的次数比较少就找到了定位的时间点,比如跳转三次以后找到定位点。但是有时可能跳转了很多次也未能找到定位点,此时,可以按照如下的定位终止条件来结束寻找过程。该条件例如包括:
(1)当跳转次数大于设定的跳转次数时,退出跳转。
例如,设定的跳转次数为100次,如果获取了100次的第三位置,并跳转到第100次定位的第三位置,得到的pts依然不在预设范围内,则确定第101次重新定位的第三位置为期望显示时间戳pts所对应的位置。
(2)当第n-1次跳转结束后,需要进行第n次跳转时,第一位置与第二位置之间的字节数小于设定字节数时,则退出跳转。
例如,设定字节数为1MB,如果进行了n-1次跳转后,得到的pts依然不在预设范围内,还需要进行第n次跳转,此时,第一位置和第二位置之间的字节数小于设定字节数(例如,两个位置之间的字节数少于2个字节),则确定第n次重新定位的第三位置为期望显示时间戳pts所对应的位置。
其中,若首先满足了第一个终止条件,则按照第一个条件来执行结束寻找过程。若尚未满足第一个终止条件,就已经满足了第二个终止条件中的第一位置和第二位置之间的字节数小于设定字节数,则按照第二个终止条件来执行结束寻找过程。
需要说明的是,若需要定位的目标时间点为TS文件的起始位置,则直接跳转到TS文件的起始位置;若需要定位的目标时间点为TS文件的结束位置,则直接跳转到TS文件的结束位置。
本发明实施例提供的TS文件的定位方法,不仅可以应用于对TS文件的定位,还可以使用对TS文件的定位从而实现视频片段的截取应用。如图5所示,一TS文件的起始位置A和结束位置B,现获取视频片段的截取指令,该截屏指令用于截取TS文件中时间点t1所对应的位置到时间点t2所对应的位置之间的片段。
根据步骤301、步骤302,获取TS文件对端总字节数,300MB,需要定位的第一目标时间点为t1,需要定位的第二时间点为t2。
根据第一目标时间点t1,根据步骤303到步骤309,获得在第一目标时间点t1预设范围内的期望显示时间戳pts,并获得首帧显示时间戳pts0所在位置A1,该位置A1即为第一目标时间点t1对应的位置。
根据第二目标时间点t2,根据步骤303到步骤309,获得在第二目标时间点t2预设范围内的期望显示时间戳pts,并获得首帧显示时间戳pts0所在位置A2,该位置A2即为第二目标时间点t2对应的位置。
根据位置A1和位置A2,获取位置A1和位置A2间的视频片段。
在上述方案在视频片段的截屏应用时,也包括定位终止条件,该定位终止条件包括:当步骤303到步骤309之间的步骤中,获取第n次重新定位的第三位置,并跳转到该第三位置,此时为第n次跳转,当跳转次数大于设定的跳转次数时,则退出跳转。该设定的跳转次数可以为10000次。
此时退出跳转时,将第10001次重新定位的第三位置作为期望显示时间戳pts所对应的位置。
根据上述方案,在能够使得TS文件在不影响打开速度的情况下精确的跳转到需要定位的目标时间点所对应的位置,解决了TS文件跳转速度和精度问题。
实施例三
如图6、图7所示,本发明实施例还提供了一种TS文件的定位装置,装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图6所示,为本发明实施例TS文件的定位装置所在设备的一种硬件结构图,除了图6所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图7所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的TS文件的定位装置70包括:
获取单元701,用于获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;
pts获得单元702,用于跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳pts;
目标位置获得单元703,用于若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置;
重新定位单元704,用于若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。
进一步的,所述pts获得单元,具体用于利用下式得到的a值进行取模TO得到期望显示时间戳pts:
其中:To为溢出时间;Ta为TS文件的首个I帧的PTS除以90的商,其中Ta的单位为毫秒。
进一步的,所述重新定位单元,具体用于在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置;在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1。
进一步的,还包括:
在满足定位终止条件时,根据所述期望显示时间戳pts得到所述首帧显示时间戳pts0所在的位置,所述位置为所述目标时间点所对应的位置。
以上该仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种TS文件的定位方法,其特征在于,包括:
获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;
跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳pts;
若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置;
若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。
2.根据权利要求1所述的方法,其特征在于,将所述PTS处理得到期望显示时间戳pts,具体包括:利用下式得到的a值进行取模To得到期望显示时间戳pts:
其中:To为溢出时间;Ta为TS文件的首个I帧的PTS除以90的商,其中Ta的单位为毫秒。
3.根据权利要求1所述的方法,其特征在于,所述当所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第一预设值且大于第二预设值,具体包括:
在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1;
在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1。
4.根据权利要求1所述的方法,其特征在于,所述需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得所述期望显示时间戳pts,所述方法还包括:
在满足定位终止条件时,根据所述期望显示时间戳pts得到所述首帧显示时间戳pts0所在的位置,所述位置为所述目标时间点所对应的位置。
5.根据权利要求4所述的方法,其特征在于,所述满足定位终止条件,包括:
当跳转次数大于设定的跳转次数时,或当第一位置和第二位置之间的字节数小于设定字节数时,则退出跳转。
6.一种TS文件的定位装置,其特征在于,包括:
获取单元,用于获取所述TS文件的第三位置,其中,第三位置为所述TS文件的第一位置和第二位置之间的位置,其中第一位置为所述TS文件的起始位置,第二位置为所述TS文件的结束位置;
pts获得单元,用于跳转到第三位置,沿所述TS文件播放的正方向查找所述第三位置之后的首个期望TS包,所述期望TS包的包识别符PID是视频帧PID,且有效载荷单元起始指示符的值为1,所述期望TS包内包括基本码流包PES的包头,获取所述PES包头中的显示时间戳PTS,并将所述PTS处理得到期望显示时间戳pts;
目标位置获得单元,用于若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值时,其中,第一预设值大于等于第二预设值,第一预设值与第二预设值之间的差值范围是定位允许的误差范围,则沿所述正方向搜寻所述期望显示时间戳pts后的第一个节目关联表PAT,所述第一个节目关联表PAT之后的首帧显示时间戳pts0所在的位置为所述目标时间点所对应的位置;
重新定位单元,用于若所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时或小于第二预设值时,需要重新定位第三位置,并跳转到该重新定位的第三位置,从该重新定位的第三位置开始,获得期望显示时间戳pts,直到所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于等于第一预设值且大于等于第二预设值。
7.根据权利要求6所述的装置,其特征在于,所述pts获得单元,具体用于利用下式得到的a值进行取模TO得到期望显示时间戳pts:
其中:To为溢出时间;Ta为TS文件的首个I帧的PTS除以90的商,其中Ta的单位为毫秒。
8.根据权利要求6所述的装置,其特征在于,所述重新定位单元,具体用于在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值大于第一预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第二位置,该第三位置为第一位置与第二位置之间的位置;在所述期望显示时间戳pts对应的时间点,与需要定位TS文件的目标时间点的差值小于第二预设值时,需要第n次跳转到第三位置,则令第n-1次跳转的第三位置作为第一位置,该第三位置为第一位置与第二位置之间的位置,所述n大于1。
9.根据权利要求6所述的装置,其特征在于,还包括:
在满足定位终止条件时,根据所述期望显示时间戳pts得到所述首帧显示时间戳pts0所在的位置,所述位置为所述目标时间点所对应的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410415418.9A CN104216959B (zh) | 2014-08-21 | 2014-08-21 | 一种ts文件的定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410415418.9A CN104216959B (zh) | 2014-08-21 | 2014-08-21 | 一种ts文件的定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216959A CN104216959A (zh) | 2014-12-17 |
CN104216959B true CN104216959B (zh) | 2017-08-15 |
Family
ID=52098449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410415418.9A Active CN104216959B (zh) | 2014-08-21 | 2014-08-21 | 一种ts文件的定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216959B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702978B (zh) * | 2015-03-18 | 2018-11-02 | 青岛海信宽带多媒体技术有限公司 | 一种视频数据定位的方法及网络播放设备 |
CN106131660B (zh) * | 2016-07-15 | 2019-08-09 | 青岛海信宽带多媒体技术有限公司 | 视频定位播放方法及装置 |
CN109982151B (zh) * | 2017-12-28 | 2021-06-25 | 中国移动通信集团福建有限公司 | 视频点播方法、装置、设备及介质 |
CN110460790A (zh) * | 2018-05-02 | 2019-11-15 | 北京视联动力国际信息技术有限公司 | 一种视频帧的抽取方法和装置 |
CN108737874A (zh) * | 2018-06-05 | 2018-11-02 | 武汉斗鱼网络科技有限公司 | 一种视频播放方法及电子设备 |
CN109068156A (zh) * | 2018-08-16 | 2018-12-21 | 青岛海信传媒网络技术有限公司 | 一种节目录制、播放方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447949A (zh) * | 2011-08-24 | 2012-05-09 | 上海文广科技(集团)有限公司 | 一种高效的精确到帧的ts流拼接方法 |
CN102487458A (zh) * | 2010-12-02 | 2012-06-06 | 中兴通讯股份有限公司 | Ts文件的播放处理方法及装置 |
CN103686246A (zh) * | 2013-11-26 | 2014-03-26 | 小米科技有限责任公司 | 传输流视频选时播放方法、装置、设备及系统 |
CN103873891A (zh) * | 2014-03-20 | 2014-06-18 | 深圳创维-Rgb电子有限公司 | 一种ts流媒体文件快速定位方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI357263B (en) * | 2008-02-22 | 2012-01-21 | Novatek Microelectronics Corp | Method and related device for converting transport |
-
2014
- 2014-08-21 CN CN201410415418.9A patent/CN104216959B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487458A (zh) * | 2010-12-02 | 2012-06-06 | 中兴通讯股份有限公司 | Ts文件的播放处理方法及装置 |
CN102447949A (zh) * | 2011-08-24 | 2012-05-09 | 上海文广科技(集团)有限公司 | 一种高效的精确到帧的ts流拼接方法 |
CN103686246A (zh) * | 2013-11-26 | 2014-03-26 | 小米科技有限责任公司 | 传输流视频选时播放方法、装置、设备及系统 |
CN103873891A (zh) * | 2014-03-20 | 2014-06-18 | 深圳创维-Rgb电子有限公司 | 一种ts流媒体文件快速定位方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104216959A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216959B (zh) | 一种ts文件的定位方法及装置 | |
US20240070186A1 (en) | Chunk Header Incorporating Binary Flags and Correlated Variable-Length Fields | |
US8559793B2 (en) | Synchronous data tracks in a media editing system | |
US20160066007A1 (en) | Video playback method, media device, playback device, and multimedia system | |
US8510375B2 (en) | Apparatus and methods for time mapping media segments in streaming media files | |
CN106131660B (zh) | 视频定位播放方法及装置 | |
EP3570538A1 (en) | Storage method, regeneration method, storage device, and regeneration device | |
US20050278637A1 (en) | Method, medium, and apparatus for processing slide show data | |
EP3404922A1 (en) | Fast dvb channel switching method, apparatus, and system | |
JP2022095945A (ja) | オーディオを含むコンテンツに対する補助データの同期化 | |
CN107426603A (zh) | 一种视频播放方法及装置 | |
CN104918108A (zh) | 一种基于hls协议的视频精确定位装置及方法 | |
CN105981397A (zh) | 将编码音频嵌入到传输流中以供用于完美拼接 | |
CN108717458A (zh) | 一种用于监控行业的历史视频文件格式存储方法及系统 | |
CN110383847A (zh) | 视频数据中的实时帧对准 | |
CN108683555A (zh) | 一种rtp丢包检测方法 | |
CN106331840A (zh) | 一种基于hls协议的音视频的跳转播放方法及装置 | |
US7817721B2 (en) | Posting status data in digital transport stream processing | |
CN103491430A (zh) | 流媒体数据处理方法和电子设备 | |
JP2018026778A (ja) | 送信装置、送信方法、受信装置および受信方法 | |
CN103152607B (zh) | 视频超快速粗编方法 | |
JP6957186B2 (ja) | 情報処理装置、情報処理方法、プログラム、および記録媒体製造方法 | |
CN105916011A (zh) | 视频实时播放方法及装置 | |
US7373439B2 (en) | System method using material exchange format (MXF) converting program for audio and video data files having routines that generates attribute data from audio and video data file | |
CN107517237A (zh) | 一种视频识别方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |