CN103096132B - Ts文件快进快退的方法及装置 - Google Patents
Ts文件快进快退的方法及装置 Download PDFInfo
- Publication number
- CN103096132B CN103096132B CN201310046284.3A CN201310046284A CN103096132B CN 103096132 B CN103096132 B CN 103096132B CN 201310046284 A CN201310046284 A CN 201310046284A CN 103096132 B CN103096132 B CN 103096132B
- Authority
- CN
- China
- Prior art keywords
- time
- file
- fast
- bag
- secondary file
- 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
Landscapes
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种TS文件快进快退的方法,通过获取当前播放TS文件的第一时间,依据第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间,并在预设的辅助文件中,获取与第二时间距离最近的第三时间,依据所述第三时间获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。本发明进行快进快退时,通过在第一时间的基础上跳转固定时间方法来实现,避免采用跳转固定字节的方式,因此针对不同格式的TS文件,只要TS文件的时长相同,通过跳转固定时间的方式进行快进或快退时,跳转次数是一致的,因此在TS文件中进行快进或快退的时间是一致的。
Description
技术领域
本发明涉及计算机领域,具体涉及一种TS文件快进快退的方法及装置。
背景技术
媒体文件一般由各帧图像组成,各帧图像又称为关键帧(简称I帧),通过快速播放关键帧,将各帧图像变成连续的画面。
在播放媒体文件的时候,为了满足用户以快进、快退的方式观看媒体文件的需求,通常需要播放器提供快进、快退的功能来满足不同用户的需求。有些媒体文件中含有索引信息,如AVI格式的媒体文件,可以通过索引信息直接在文件中定位到快进、快退时所需播放的帧的位置,从而快速取出I帧的数据进行播放,实现快进、快退功能。而TS媒体文件中没有类似的索引信息,只能在媒体文件播放的过程中,一边通过CPU遍历I帧,一边跳转固定字节的步长播放I帧数据,实现不同倍速的快进快退。如:在2倍速快进、快退的时候跳转2M播放一个I帧数据,4倍速播放的时候跳转4M播放播放一个I帧数据。
TS媒体文件可能为标清格式或者高清格式,标清格式与高清格式在单位时间内的数据大小肯定不同。假如:时长为10S的标清格式的TS文件其数据量为100M,高清格式的TS文件的数据量约为400M,将两者同时按照跳转固定步长(如10M)的方式进行快进或快退时,标清格式的媒体文件大概需要跳转10次左右即可完成快进或快退,假如所需时间为1s,而高清格式的媒体文件大概需要跳转40次,才能完成快进、快退,所需时间为4s,因此在TS文件时间相同的情况下,不同格式的TS文件快进、快退的所需的时间是不一样的。
使用跳转固定字节步长的方法在TS文件中进行快进快退时,若TS文件时间长一致、格式不同时,在进行快进快退时,会出现所需的时长不一致的问题。
发明内容
本发明提供一种TS文件快进快退的方法及装置,可以解决在TS文件时间长一致、格式不同,进行快进快退时所需的时间不一致的问题。
为了解决上述问题,本发明采用以下的方法实现:
一种TS文件快进快退的方法,包括:
获取当前播放TS文件的第一时间;
依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间;
在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。
优选的,所述预设的辅助文件的创建过程包括:
步骤A:建立与TS文件名称一致的辅助文件;
步骤B:读取所述TS文件中的TS包;
步骤C:若所述TS包为视频数据且所述TS包中包含I帧头部,则获取所述I帧头部的时间与地址;
步骤D:将所述I帧头部的时间与地址存储至所述辅助文件;
步骤E:判断所述辅助文件是否完整,若所述辅助文件不完整,进入步骤F,若所述辅助文件完整,则进入步骤G;
步骤F:跳转至下一个TS包,进入步骤B;
步骤G:将所述辅助文件作为预设的辅助文件。
优选的,所述判断所述预设的辅助文件是否完整包括:
判断预设的辅助文件中的标志位是否有效;
若所述标志位无效,则判定所述辅助文件不完整,若所述标志位有效,则判定所述辅助文件完整。
优选的,在步骤D之后还包括:
依据所述辅助文件中除第一校验位之外的数据,计算所述辅助文件的第二校验位;
判断所述第二校验位与所述第一校验位是否一致,若一致进入步骤E,若不一致,则进入步骤A。
优选的,所述依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间包括:
依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间;
依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间。
优选的,所述获取与所述第三时间所对应的I帧数据,并播放所述I帧包括:
获取与所述第三时间所对应的I帧头部的地址;
依据所述I帧头部的地址获取所述I帧数据;
将所述I帧数据发送至解码器进行解码,并播放所述I帧。
优选的,所述TS包为视频数据且所述TS包中包含I帧头部的确定过程包括:
若所述TS包中的包识别码PID等于0X20且TS包中含有标识0X000001B,则判定所述TS包为视频数据且所述TS包中包含I帧头部。
一种TS文件快进快退的装置,包括:
第一获取单元,用于获取当前播放TS文件的第一时间;
第二获取单元,用于依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间;
第三获取单元,用于在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
第四获取单元,用于获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。
优选的,所述装置还包括:
创建单元,用于创建预设的辅助文件,具体的步骤包括:
步骤A:建立与TS文件名称一致的预设的辅助文件;
步骤B:读取所述TS文件中的TS包;
步骤C:若所述TS包为视频数据且所述TS包中包含I帧头部,则获取所述I帧头部的时间与地址;
步骤D:将所述I帧头部的时间与地址存储至所述预设的辅助文件;
步骤E:判断所述预设的辅助文件是否完整,若所述辅助文件不完整,进入步骤B,若所述辅助文件完整,则所述预设的辅助文件创建完成。
优选的,所述第二获取单元包括:
第一计算单元,用于依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间;
第二计算单元,用于依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间。
本发明提供了一种TS文件快进快退的方法,通过获取当前播放TS文件的第一时间,依据第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间,并在预设的辅助文件中,获取与第二时间距离最近的第三时间,依据所述第三时间获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。本发明进行快进快退时,通过在第一时间的基础上跳转固定时间方法来实现,避免采用跳转固定的字节,因此针对不同格式的TS文件,只要TS文件的时长相同,通过跳转固定时间的方式进行快进或快退时,跳转次数是一致的,因此在TS文件中进行快进或快退的时间是一致的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的TS文件快进快退方法第一实施例的流程示意图;
图2为本发明公开的TS文件快进快退方法中部分播放I帧的流程示意图;
图3为本发明公开的TS文件快进快退方法中预设的辅助文件的创建过程的流程示意图;
图4为本发明公开的TS文件快进快退方法第二实施例的流程示意图;
图5为本发明实施例公开的TS文件快进快退装置的结构示意图;
图6为本发明实施例公开的又一TS文件快进快退装置结构示意图;
图7为本发明实施例公开的TS文件快进快退装置的中第二获取单元结构示意图;
图8为本发明实施例公开的TS文件快进快退装置的中第四获取单元结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种TS文件快进快退的方法,如图1所示,为本发明的第一实施例,该方法包括:
步骤S101:获取当前播放TS文件的第一时间;
在播放TS文件时,分为前台线程和后台线程,在后台线程中遍历I帧创建辅助文件,在前台线程中,根据I帧数据播放I帧。
I帧为帧内图(Intra Picture),是一种内部编码图,仅使用自身的信息进行编码,可以用来帮助对图像序列的随即访问,如快进播放或快退播放等。
在前台线程中,根据当前播放TS文件时所播放的I帧,在预设的辅助文件中,提取当前播放I帧的时间,并将当前I帧的时间作为第一时间。
步骤S102:获取当前倍速下的第二时间,即依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间;
在快进或快退时,不同的播放器在不同倍速中时间差值不同,因此需要根据快进或快退的倍速,得到当前倍速下快进或快退的时间差值,依据时间差值和第一时间,计算当前倍速下的第二时间,具体计算第二时间的步骤包括两种情况:
第一种情况,在进行快进时:
依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间;即具体的在执行快进时,将第一时间和第一时间差值的和值作为第二时间。
第二种情况,在进行快退时:
依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间,即具体的在执行快退时,将第一时间和第二时间差值的差值作为第二时间。
步骤S103:获取与第二时间距离最近的第三时间,即在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
在预设的辅助文件中,根据上述步骤所获取的第二时间,遍历预设的辅助文件,查询与第二时间最接近的第三时间,并获取所述第三时间。
步骤S104:获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。
具体的,如图2所示,在执行该步骤时包括:
步骤S201:获取与所述第三时间所对应的I帧头部的地址;
在辅助文件中,每一个时间都有唯一对应的I帧头部,依据第三时间即可获取与第三时间所对应的I帧的地址。
步骤S202:依据所述I帧头部的地址获取所述I帧数据;
依据I帧头部的地址可以自动的获取I帧尾部的地址,根据I帧头部的地址及I帧尾部的地址,在TS文件中获取I帧数据。
步骤S203:将所述I帧数据发送至解码器进行解码,并播放所述I帧。
将上述步骤获取的I帧数据发送至解码器,由解码器对所述I帧数据进行解码,将解码后的数据进行播放。
若在播放TS文件若需多次进行快进快退,则在一次快进快退执行完成之后,重新执行步骤S101~S104,以便当前的快进快退的倍速改变,或者快进快退的状态发生改变(由快进改为快退或者由快退改为快进)时,可以及时的做出调整,因此在本发明中TS文件持续进行快退或快退时,循环执行本发明上述步骤。本发明中每次都是跳转固定的时间长度(即第一时间差值和第二时间差值),因此针对相同时长的TS文件,不论TS文件的格式是否一致,进行同样的快进或快退的操作时,跳转的次数是一致的,因跳转的时间也是一致,因此整体进行快进或快退之后的时间是一致的。
本发明提供了一种TS文件快进快退的方法,在TS文件进行快进快退时,通过在第一时间的基础上跳转固定时间方法来实现快进快退,避免采用跳转固定字节的方式,因此针对高清或标清等不同格式的TS文件,只要TS文件的时长相同,通过跳转固定时间的方式进行快进或快退时,跳转次数是一致的,因此在TS文件中进行快进或快退的时间是一致的。
此外,现有技术中只在快进快退时再查找I帧,对CPU要求很高,一般低端的CPU无法满足高倍速快进快退。本发明通过此外本发明采用在后台遍历I帧的方式创建辅助文件,辅助文件仅需创建一次,在下次播放该文件时进行快进快退时直接使用已有的辅助文件即可,避免了CPU在快进快退时,以便遍历I帧以便播放TS文件的方式,对CPU的要求较低,而且也可以实现高倍速的播放,并提高播放效率。
如图3所示,为本发明预设的辅助文件的创建过程包括:
步骤A:建立与TS文件名称一致的辅助文件;
若TS文件中不存在辅助文件,则开启后台线程创建辅助文件。首先建立一个空白的辅助文件,该辅助文件的名称与TS文件的名称一致,后缀为.elu,以该辅助文件存储TS文件中的所有的I帧头部的时间和地址。
步骤B:读取所述TS文件中的TS包;
TS(transition stream)文件为传输数据流,主要用于数据传输,每个TS文件由多个TS包组成,多个TS包组成一个I帧,I帧头部在一个TS包中。每个TS包的长度是固定的,均为188字节,分别由包头、自适应区和包数据3部分组成,其中包头占4字节,自适应区和包数据长度共占184字节。包头包括:由显示时间标签(Presentation Time Stamp,PTS)、有效起始指示器(payload_unit_start_indicator)、包识别码(Packet Identifier,PID)等8个部分组成。
其中,PTS为显示时间标签,用来标示某一个I帧开始的时间,即I帧帧头的所在的TS文件中的时间;
payload_unit_start_indicator为有效起始指示位,payload_unit_start_indicator为1代表该TS包为包含数据的第一个包;
PID为包识别码用来标识TS包的类型,如视频、音频、节目特定信息等。
读取TS文件的TS包,首先判断包头中的payload_unit_start_indicator是否为1,若该字段为1则表示该TS包是PSI或PES的第一个包,若该字段不为1,则直接跳转至下一个TS包,再次判断包头中的payload_unit_start_indicator是否为1,直到该字段为1,则不再判断进行该判断。
步骤C:若所述TS包为视频数据且所述TS包中包含I帧头部,则获取所述I帧头部的时间与地址;
所述TS包中的包识别码PID等于0X20且TS包中含有标识0X000001B,则判定所述TS包为视频数据且所述TS包中包含I帧头部。
在具体执行时,在上述步骤中若payload_unit_start_indicator为1,则继续判断该TS包是否为视频数据,若该TS包的包头中的PID等于0X20,则表示该包为视频数据,则继续判断该TS包的包数据中是否包含I帧头部,若TS文件的包数据中含有标识0X000001B,则表明该包中包含I帧头部,由于在TS包中I帧的标识通常出现在I帧头部,因此通过对该标识的判断可以很快找到I帧头部,并提取该I帧PTS值及地址。
因TS包可能为音频数据,可能为视频数据,本发明暂不涉及视频数据之外的数据,因此跳过不是视频数据的TS包,若为视频数据,则直接在该TS包中继续判断是否包括I帧头部,因多个TS包组成一个I帧,因此若TS包中包含I帧头部,则代表该TS包为I帧的开始,则提取I帧的PTS值及地址。
步骤D:将所述I帧头部的时间与地址存储至所述辅助文件;
将上述步骤中获取的I帧头部的时间和地址,按照对应关系存储至辅助文件中。
步骤E:判断所述辅助文件是否完整,若所述辅助文件不完整,进入步骤F,若所述辅助文件完整,则进入步骤G;
步骤F:跳转至下一个TS包,进入步骤B;
步骤G:将所述辅助文件作为预设的辅助文件。
判断辅助文件是否完整,本发明通过判断预设的辅助文件中的标志位是否有效;若所述标志位无效,则判定所述辅助文件不完整,若所述标志位有效,则判定所述辅助文件完整,将完整的辅助文件作为本发明中预设的辅助文件。
如果遍历完所有的TS文件中的TS包,辅助文件中的标志位则有效,若辅助文件中的标志位无效,则表明辅助文件还不完整,没有遍历完所有的TS包,因此当辅助文件不完整时,继续跳转至下一个TS包,重新执行步骤B~E。
本发明在创建辅助文件的时候在步骤D之后,还包括:
步骤D1:依据所述辅助文件中除第一校验位之外的数据,计算所述辅助文件的第二校验位;
步骤D2:判断所述第二校验位与所述第一校验位是否一致,若一致进入步骤E,若不一致,则进入步骤A。
每次向辅助文件中写入数据的时候,会在辅助文件的数据最后自动形成4个字节的校验值,为了防止在辅助文件在写入的情况下出现问题,每次写入数据之后,依据辅助文件中第一校验位的之外的数据,经过校验计算方法得出第二校验值,然后判断第二校验值是否和第一校验值一致,若一致,则表明数据没有出错,若不一致,则表明数据无效或出错,重新进入步骤A,重新创建辅助文件。
如图4所示,为本发明一种TS文件快进快退的方法的第二实施例,该方法包括:
步骤301:判断预设的辅助文件是否存在,若存在则进入步骤S309,若不存在则进入步骤302;
在TS文件查询是否有与所述TS文件名称一致,后缀为.elu的文件,若含有该文件,则表明含有预设的辅助文件,直接读取TS文件中的TS包,若不含该文件,则表明TS文件中不含预设的辅助文件,则创建预设的辅助文件。
步骤302:建立辅助文件,即建立与TS文件名称一致的辅助文件;
在后台程序中,创建预设的辅助文件,首先建立一个空白的辅助文件,该辅助文件的名称与TS文件的名称一致,后缀为.elu,以该辅助文件存储TS文件中的所有的I帧头部的时间和地址。
步骤303:读取所述TS文件中的TS包;
步骤304:判断有效起始指示位是否为1,即判断该TS包的包头中的有效起始指示位payload_unit_start_indicator是否为1,若为1进入步骤S306,若不为1,则进入步骤305;
步骤305:跳转至下一个TS包,进入步骤S303;
跳转至下一个188字节出,重新读取TS包。
步骤306:判断该TS包是否是视频数据,若该TS包不是视频数据,则进入步骤S305,若该TS包为视频数据则进入步骤S307;
判断PID是否等于0X20,若PID是否等于0X20则判定该TS包是视频数据,若PID不等于0X20,则判定该TS包不是视频数据。
步骤307:判断该TS包中是否包括I帧头部,若包含I帧头部,则进入步骤S308,若不包含I帧头部,则进入步骤S305;
判断该帧的包数据中是否包含标识0X000001B,若含有该标识,则表明该TS包中含有I帧头部,若不含则表明该TS包中不含I帧头部,直接跳转至下一个188字节处,重新读取下一个TS包。
步骤S308:将所述I帧头部的时间与地址存储至辅助文件;
将I帧头部的时间值PTS和地址存储至辅助文件中。
步骤S308:判断辅助文件是否完整,若辅助文件完整,则进入步骤S309,若辅助文件不完整,则进入步骤S305;
判断辅助文件中的标志位是否有效,若标志位有效则表示辅助文件完整,将该辅助文件作为预设的辅助文件,若标志位无效,则继续读取下一个TS包。
步骤S309:判断TS文件是否进行快进快退,若进行快进快退,则进入步骤S310,若不进行快进快退,则结束。
在前台程序中,判断TS文件在播放过程中是否进行快进或快退,若进行快进则在计算第二时间时进入步骤S310,若进行快退,在计算第二时间时,进入步骤S311。
步骤S310:获取当前播放TS文件的第一时间;
依据预设的辅助文件,根据当前播放的I帧,在预设的辅助文件中获取正在播放的I帧的PTS。
步骤S311:判断TS文件是否进行进快,若进行快进,则进入步骤S311,否则进入步骤S312;
步骤S311:获取快进时的第二时间;
依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间,进入步骤S313;
步骤S312:获取快退时的第二时间;
依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间,进入步骤S313;
步骤S313:获取与第二时间距离最近的第三时间,即在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
若进行快进则在预设的辅助文件中,提取在第二时间之后时间,通过判断和对比的方法,获取与第二时间距离最近的第三时间。
若进行快退则在预设的辅助文件中,提取在第二时间之前的时间,通过判断和对比的方法,获取与第二时间距离最近的第三时间。
步骤S314:获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。
在预设的辅助文件中依据第三时间,获取与第三时间所对应的I帧数据,并将该I帧数据发送至解码器进行解码,并播放所述I帧数据。
本发明提供的一种TS文件的快进快退方法,可以在播放一次TS文件后,后续再播放该TS文件时,便不用重新创建预设的辅助文件,直接使用当前已有的辅助文件,因此辅助文件仅需创造一次,后续可以重复使用,提高了播放效率。当进行快进快退时,首先会查找预设的辅助文件,里面记录了每个帧的位置和显示时间,在做倍速快进时,根据不同倍速和当前的时间差值,得到所需跳转的时间,然后依据所述时间直接去TS文件中读出I帧数据,并将I帧数据送给解码器,而不是通过跳转固定的字节进行快进或快退,节省了遍历I帧的时间;且在本发明中,由于采用后台线程遍历I帧的方法,前台快进快退播放时直接从文件里取I帧,提高了快进快退的效率。
如图5所示,本发明提供了一种TS文件快进快退的装置,包括:
第一获取单元100,用于获取当前播放TS文件的第一时间;
第二获取单元200,用于依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间;
第三获取单元300,用于在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
第四获取单元400,用于获取与所述第三时间所对应的I帧数据,并播放所述I帧数据。
所述装置还包括:创建单元500,用于创建预设的辅助文件,具体的步骤包括:
步骤A:建立与TS文件名称一致的预设的辅助文件;
步骤B:读取所述TS文件中的TS包;
步骤C:若所述TS包为视频数据且所述TS包中包含I帧头部,则获取所述I帧头部的时间与地址;
步骤D:将所述I帧头部的时间与地址存储至所述预设的辅助文件;
步骤E:判断所述预设的辅助文件是否完整,若所述辅助文件不完整,进入步骤B,若所述辅助文件完整,则所述预设的辅助文件创建完成。
所述第二获取单元200包括:
第一计算单元201,用于依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间;
第二计算单元202,用于依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间。
所述第四获取单元400包括:
第五获取单元401,用于获取与所述第三时间所对应的I帧头部的地址;
第六获取单元402,用于依据所述I帧头部的地址获取所述I帧数据;
解码单元403,用于将所述I帧数据发送至解码器进行解码,并播放所述I帧。
本发明进行快进快退时,通过在第一时间的基础上跳转固定时间方法来实现,避免采用跳转固定的字节,因此针对不同格式的TS文件,只要TS文件的时长相同,通过跳转固定时间的方式进行快进或快退时,跳转次数是一致的,因此在TS文件中进行快进或快退的时间是一致的。
此外,现有技术中只在快进快退时再查找I帧,对CPU要求很高,一般低端的CPU无法满足高倍速快进快退。本发明通过此外本发明采用在后台遍历I帧的方式创建辅助文件,辅助文件仅需创建一次,在下次播放该文件时进行快进快退时直接使用已有的辅助文件即可,避免了CPU在快进快进时,以便遍历I帧以便播放TS文件的方式,对CPU的要求较低,而且也可以实现高倍速的播放,并提高播放效率。本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种TS文件快进快退的方法,其特征在于,包括:
获取当前播放TS文件的第一时间;
依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间;
在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
获取与所述第三时间所对应的I帧数据,并播放所述I帧数据;
其中,所述依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间包括:
依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间;
依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间;
其中,在TS文件进行快进快退时,通过在所述第一时间的基础上跳转固定时间方法来实现快进快退,针对不同格式的TS文件,只要TS文件的时长相同,通过跳转固定时间的方式进行快进或快退时,跳转次数是一致的,因此在TS文件中进行快进或快退的时间是一致的。
2.如权利要求1所述的方法,其特征在于,所述预设的辅助文件的创建过程包括:
步骤A:建立与TS文件名称一致的辅助文件;
步骤B:读取所述TS文件中的TS包;
步骤C:若所述TS包为视频数据且所述TS包中包含I帧头部,则获取所述I帧头部的时间与地址;
步骤D:将所述I帧头部的时间与地址存储至所述辅助文件;
步骤E:判断所述辅助文件是否完整,若所述辅助文件不完整,进入步骤F,若所述辅助文件完整,则进入步骤G;
步骤F:跳转至下一个TS包,进入步骤B;
步骤G:将所述辅助文件作为预设的辅助文件。
3.如权利要求2所述的方法,其特征在于,所述判断所述预设的辅助文件是否完整包括:
判断预设的辅助文件中的标志位是否有效;
若所述标志位无效,则判定所述辅助文件不完整,若所述标志位有效,则判定所述辅助文件完整。
4.如权利要求2所述的方法,其特征在于,在步骤D之后还包括:
依据所述辅助文件中除第一校验位之外的数据,计算所述辅助文件的第二校验位;
判断所述第二校验位与所述第一校验位是否一致,若一致进入步骤E,若不一致,则进入步骤A。
5.如权利要求1所述的方法,其特征在于,所述获取与所述第三时间所对应的I帧数据,并播放所述I帧包括:
获取与所述第三时间所对应的I帧头部的地址;
依据所述I帧头部的地址获取所述I帧数据;
将所述I帧数据发送至解码器进行解码,并播放所述I帧。
6.如权利要求2所述的方法,其特征在于,所述TS包为视频数据且所述TS包中包含I帧头部的确定过程包括:
若所述TS包中的包识别码PID等于0X20且TS包中含有标识0X000001B,则判定所述TS包为视频数据且所述TS包中包含I帧头部。
7.一种TS文件快进快退的装置,其特征在于,包括:
第一获取单元,用于获取当前播放TS文件的第一时间;
第二获取单元,用于依据所述第一时间与进行快进或快退的倍速,获取当前倍速下的第二时间;
第三获取单元,用于在预设的辅助文件中,获取与所述第二时间距离最近的第三时间;
第四获取单元,用于获取与所述第三时间所对应的I帧数据,并播放所述I帧数据;
其中,所述第二获取单元包括:
第一计算单元,用于依据所述快进的倍速,获取当前倍速下的第一时间差值,将所述第一时间与所述第一时间差值的和值作为所述第二时间;
第二计算单元,用于依据所述快退的倍速,获取当前倍速下的第二时间差值,将所述第一时间与所述第二时间差值的差值作为所述第二时间;
其中,在TS文件进行快进快退时,通过在所述第一时间的基础上跳转固定时间方式来实现快进快退,针对不同格式的TS文件,只要TS文件的时长相同,通过跳转固定时间的方式进行快进或快退时,跳转次数是一致的,因此在TS文件中进行快进或快退的时间是一致的。
8.如权利要求7所述的装置,其特征在于,还包括:
创建单元,用于创建预设的辅助文件,具体的步骤包括:
步骤A:建立与TS文件名称一致的预设的辅助文件;
步骤B:读取所述TS文件中的TS包;
步骤C:若所述TS包为视频数据且所述TS包中包含I帧头部,则获取所述I帧头部的时间与地址;
步骤D:将所述I帧头部的时间与地址存储至所述预设的辅助文件;
步骤E:判断所述预设的辅助文件是否完整,若所述辅助文件不完整,进入步骤B,若所述辅助文件完整,则所述预设的辅助文件创建完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046284.3A CN103096132B (zh) | 2013-02-05 | 2013-02-05 | Ts文件快进快退的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046284.3A CN103096132B (zh) | 2013-02-05 | 2013-02-05 | Ts文件快进快退的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103096132A CN103096132A (zh) | 2013-05-08 |
CN103096132B true CN103096132B (zh) | 2016-09-28 |
Family
ID=48208182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310046284.3A Active CN103096132B (zh) | 2013-02-05 | 2013-02-05 | Ts文件快进快退的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103096132B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187918A (zh) * | 2015-07-21 | 2015-12-23 | 浪潮软件集团有限公司 | 一种基于hls协议点播***中使用缩略图实现快进的方法 |
CN106612462B (zh) * | 2015-10-26 | 2021-02-19 | 中兴通讯股份有限公司 | 快进快退的处理方法及终端 |
CN106937160B (zh) * | 2017-03-28 | 2019-12-24 | 青岛海信电器股份有限公司 | 一种针对终端的录制文件在快进快退时的显示方法和装置 |
WO2020227994A1 (zh) * | 2019-05-15 | 2020-11-19 | 深圳市大疆创新科技有限公司 | 视频解码方法、视频解码装置、存储介质与电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404771A (zh) * | 2008-11-10 | 2009-04-08 | 北京华视凯旋科技有限公司 | 数字视频节目快进快退搜索方法及其包结构 |
CN101980533A (zh) * | 2010-11-12 | 2011-02-23 | 中国华录集团有限公司 | 一种基于索引文件实现传输流文件特技模式功能的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888540B (zh) * | 2009-05-13 | 2012-09-05 | 中兴通讯股份有限公司 | 一种在流媒体文件中承载ts流的方法及装置 |
-
2013
- 2013-02-05 CN CN201310046284.3A patent/CN103096132B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404771A (zh) * | 2008-11-10 | 2009-04-08 | 北京华视凯旋科技有限公司 | 数字视频节目快进快退搜索方法及其包结构 |
CN101980533A (zh) * | 2010-11-12 | 2011-02-23 | 中国华录集团有限公司 | 一种基于索引文件实现传输流文件特技模式功能的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103096132A (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103348690B (zh) | 一种视频处理的方法及装置 | |
CN103096132B (zh) | Ts文件快进快退的方法及装置 | |
US6920181B1 (en) | Method for synchronizing audio and video streams | |
CN1643605B (zh) | 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置 | |
TWI454132B (zh) | A reproducing apparatus, a reproducing method, and a recording method | |
JP5197702B2 (ja) | 情報保存媒体を再生する再生方法及び記録媒体 | |
CN1771553B (zh) | 具有事件信息的视听数据被记录在其中的存储介质及其再现设备和再现方法 | |
CN100520938C (zh) | 存储静止图像的信息存储介质及其再现设备和方法 | |
CN105872484A (zh) | 一种监控录像异常的保护方法 | |
EP2018054A1 (en) | Information processing device, information processing method, and computer program | |
CN105472207A (zh) | 一种视音频文件渲染方法及装置 | |
CN104519411A (zh) | 多媒体播放器及其播放方法 | |
JP5164183B2 (ja) | データの記録方法、データの集合の取り出し方法、データファイル、データ構造、および当該データを収容する媒体 | |
CN104780456A (zh) | 一种视频打点及播放方法及装置 | |
CN103390416A (zh) | 视频播放方法及装置 | |
CN1957609B (zh) | 数据处理方法 | |
CN105049910A (zh) | 一种视频处理方法及装置 | |
JP2006333330A (ja) | データ処理方法、その装置およびプログラム | |
JP2003018544A (ja) | ディジタル放送用記録装置 | |
CN108966000A (zh) | 播放方法及其装置、介质、终端 | |
CN105744297A (zh) | 码流传输方法和装置 | |
CN102231847B (zh) | 一种支持流媒体文件直接帧精确定位方法 | |
CN105049881A (zh) | 基于流媒体服务器实现快进快退播放的方法及*** | |
JP2004192774A (ja) | Avデータ記録方法、avデータ記録装置、データ記録媒体、プログラム並びにプログラム記録媒体 | |
CN105142036B (zh) | 一种在ps流以及流媒体中支持背景帧随机访问的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |