CN103873891A - 一种ts流媒体文件快速定位方法及系统 - Google Patents
一种ts流媒体文件快速定位方法及系统 Download PDFInfo
- Publication number
- CN103873891A CN103873891A CN201410104129.7A CN201410104129A CN103873891A CN 103873891 A CN103873891 A CN 103873891A CN 201410104129 A CN201410104129 A CN 201410104129A CN 103873891 A CN103873891 A CN 103873891A
- Authority
- CN
- China
- Prior art keywords
- timestamp
- estimated position
- object time
- time
- nearest
- 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.)
- Granted
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开一种TS流媒体文件快速定位方法及系统,其中,方法包括步骤:接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,调整参数信息并返回计算估算位置操作,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。本发明通过估算处理以及逐步分解原理来解决准确性和时间性能的问题,经测试证明,本发明的方法在满足准确性的同时,大大提高了时间性能,缩短了定位所需时间,且同时解决了跳转不准确的问题。
Description
技术领域
本发明涉及TS流媒体文件播放领域,尤其涉及一种TS流媒体文件快速定位方法及系统。
背景技术
TS流媒体文件由于其具有无论截取码流中的任何一个片段都可以独立地解码和播放的特点,而被广泛应用在实时节目的传播应用上。
目前,随着高清频道的日益普及,发烧友们越来越多地录制和编辑各种TS流节目,并把这些TS流媒体文件通过网络传输和共享。这样,更多的人便可以通过各种途径获取和收藏TS流媒体文件。再加上现有的智能电视、智能机顶盒和高清硬盘播放器等电子产品基本上都可以支持TS流媒体文件的播放,所以TS流媒体文件应用越来越广泛,但TS流媒体文件播放过程中还存在以下问题:
1)文件的总时间不准;
2)一旦进行了跳转(seek)操作,进度条就与实际进度不符了,经常出现播放进度条已经走完,视频还在继续播放,或者播放进度条还没有走完而视频播放就已经结束了;
而跳转操作是播放器最基本的功能之一,也是使用最频繁的功能之一,所以无论是开发者自身还是普通用户,都希望自己的产品中的跳转功能能实现自己的真正意图,不会因为多次尝试都无法准确定位而困扰。再有,很多TS流编辑软件也会有快速准确地定位到某一位置的需求。在现有的技术中也有不少方法已经对以上问题做了优化,但是在通用性方面很多方法还是有着它们自身的缺点,如有的方法只适用于流媒体播放服务器端而不适用于本地播放的客户端设备等。TS流媒体文件跳转的方式,大概有以下几种:
1)直接查找方式
这种方式有可能会使用顺序查找或者二分查找等方法,当TS流媒体文件很大时就很难做到让人接受,实际上这种方法也基本不会被使用。
2)按字节数比例定位方式
这种方式是根据跳转目标时间占总时间的比例,然后按比例跳转到文件的某一字节位置(该字节是按文件总的字节数和时间比例计算出来的)。这种方式可以很快地实现跳转,它的缺点是大多数时候都很不准确,因为TS码流的码率是可变的,而且码流中除了音视频数据之外可能还有其他类型的数据。
3)建立索引表方式
这种方式是需要完整地解析TS流媒体文件,同时建立索引表,索引表的信息大多都包括时间偏移量和字节偏移量的对应信息。其原理就是首先记录TS流媒体文件第一帧的PTS(时间戳),然后开始解析文件,每间隔一定时间开始计算该时间点视频帧的PTS时间距离第一个PTS时间的时间偏移量和字节偏移量,把这些信息写到辅助文件中。在进行跳转操作时,只需要根据跳转的时间查找索引表,找到对应的字节偏移量后开始按字节偏移量进行跳转即可。
使用该方式,跳转的准确度比较高。但它的缺点是,建立索引表需要花的时间比较长,当索引表没有建立好时没法实现按索引表进行定位。这种方法较适合视频点播VOD服务器端设备程序,索引只需要建立一次,然后保存在服务器端,当VOD客户端向服务器端请求跳转时,服务器端便根据索引表进行精确定位。但在智能电视、智能机顶盒和高清硬盘播放器上,由于建立索引表需要的时间比较长的问题和外部存储设备的读写问题等原因则不太适用。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种TS流媒体文件快速定位方法及系统,旨在解决现有的TS流媒体文件跳转方式跳转不准确、定位所需时间长的问题。
本发明的技术方案如下:
一种TS流媒体文件快速定位方法,其中,包括步骤:
接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;
获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,则调整参数信息并返回计算估算位置操作,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。
所述的TS流媒体文件快速定位方法,其中,所述接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置的步骤具体包括:
接收用户输入的需要跳转的目标时间;
获取TS流文件的起始位置、结束位置以及首个时间戳;
根据目标时间以及首个时间戳计算出目标时间对应的时间戳;
检测到TS流文件的末尾时间戳;
根据TS流文件的起始位置、结束位置、首个时间戳、末尾时间戳以及目标时间对应的时间戳计算出目标时间对应的估算位置。
所述的TS流媒体文件快速定位方法,其中,所述预定值为31500。
所述的TS流媒体文件快速定位方法,其中,所述获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否小于等于预定值,当是时,则目标时间对应的目标位置为估算位置,当否时,调整参数信息并返回计算估算位置操作的步骤具体包括:
B1、当判定最近的时间戳与目标时间对应的时间戳的差值大于预定值时,判断最近的时间戳是否大于等于末尾时间戳,当是时进入步骤B2,否则转入步骤B3;
B2、将估算位置作为结束位置,返回计算估算位置的步骤中重新计算估算位置;
B3、判断最近的时间戳是否小于目标时间对应的时间戳,当是时进入步骤B4,否则转入步骤B5;
B4、将最近的时间戳作为首个时间戳,并将估算位置作为起始位置,返回计算估算位置的步骤中重新计算估算位置;
B5、将最近的时间戳作为末尾时间戳,并将估算位置作为结束位置,返回计算估算位置的步骤中重新计算估算位置。
所述的TS流媒体文件快速定位方法,其中,所述步骤B1中,从估算位置往后或往前找到的第一个时间戳作为最近的时间戳。
所述的TS流媒体文件快速定位方法,其中,执行所述计算出目标时间对应的估算位置的步骤之前,还包括步骤:
判断结束位置是否大于起始位置,且末尾时间戳是否大于首个时间戳,当结束位置大于起始位置,且末尾时间戳大于首个时间戳时,则进入计算出目标时间对应的估算位置的步骤,否则流程结束。
一种TS流媒体文件快速定位系统,其中,包括:
计算模块,用于接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;
匹配模块,用于获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,则调整参数信息并返回计算模块重新计算估算位置,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。
所述的TS流媒体文件快速定位系统,其中,所述计算模块具体包括:
目标时间接收单元,用于接收用户输入的需要跳转的目标时间;
参数获取单元,用于获取TS流文件的起始位置、结束位置以及首个时间戳;
目标时间对应时间戳计算单元,用于根据目标时间以及首个时间戳计算出目标时间对应的时间戳;
末尾时间戳检测单元,用于检测到TS流文件的末尾时间戳;
估算位置计算单元,用于根据TS流文件的起始位置、结束位置、首个时间戳、末尾时间戳以及目标时间对应的时间戳计算出目标时间对应的估算位置。
所述的TS流媒体文件快速定位系统,其中,所述匹配模块包括:
第一判断单元,用于当判定最近的时间戳与目标时间对应的时间戳的差值大于预定值时,判断最近的时间戳是否大于等于末尾时间戳,当是时将估算位置作为结束位置,返回估算位置计算单元中重新计算估算位置,否则转入第二判断单元;
第二判断单元,用于判断最近的时间戳是否小于目标时间对应的时间戳,当是时将最近的时间戳作为首个时间戳,并将估算位置作为起始位置,返回估算位置计算单元中重新计算估算位置,否则转入第三判断单元;
第三判断单元,用于将最近的时间戳作为末尾时间戳,并将估算位置作为结束位置,返回估算位置计算单元中重新计算估算位置。
所述的TS流媒体文件快速定位系统,其中,所述计算模块还包括:
条件判断单元,用于判断结束位置是否大于起始位置,且末尾时间戳是否大于首个时间戳,当结束位置大于起始位置,且末尾时间戳大于首个时间戳时,则进入估算位置计算单元,否则结束。
有益效果:本发明通过接收用户输入的需要跳转的目标时间,再根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置,然后获取到估算位置最近的时间戳,根据最近的时间戳与目标时间对应的时间戳的差值,来匹配出目标时间对应的目标位置,即跳转的目标位置,若未匹配到,则调整参数信息缩小范围,重新计算估算位置,重复上述过程,直到定位到满足要求的目标位置,本发明通过估算处理以及逐步分解原理来解决准确性和时间性能的问题,经测试证明,本发明的方法在满足准确性的同时,大大提高了时间性能,缩短了定位所需时间,且同时解决了跳转不准确的问题。
附图说明
图1为本发明一种TS流媒体文件快速定位方法较佳实施例的流程图;
图2为图1所示方法中步骤S101的具体流程图;
图3为图1所示方法中步骤S102的具体流程图;
图4为本发明方法中估算目标位置时较佳实施例的第一次估算示意图;
图5为本发明方法中估算目标位置时较佳实施例的第二次估算示意图;
图6为本发明一种TS流媒体文件快速定位系统较佳实施例的结构框图;
图7为图6所示系统中计算模块的具体结构框图;
图8为图6所示系统中匹配模块的具体结构框图。
具体实施方式
本发明提供一种TS流媒体文件快速定位方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种TS流媒体文件快速定位方法较佳实施例的流程图,如图所示,其包括步骤:
S101、接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;
S102、获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,调整参数信息并返回步骤S101中的计算估算位置操作,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。
在本实施例中,其关键点是根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置,根据该估算位置最近的时间戳与目标时间对应的时间戳的差值来判断,是否匹配到目标位置,当该差值小于预定值时,则匹配到目标位置,当否时,则可以调整参数信息来缩小范围,在更小的范围内来计算出新的估算位置,并再次进行比较,通过这样的多次估算,实现准确定位到目标位置,最后通过调用fseek()等接口来跳转到文件的目标位置。这样当用户在播放TS流媒体文件时,若需要跳转到某一位置进行观看,则只需要输入时间点(即目标时间),便能快速准确地完成跳转动作,本发明由于兼具了准确性和时间性,所以尤其适合于在智能电视、高清硬盘播放器中使用。
需说明的是,本发明中所指的TS流文件即指TS流媒体文件,文中TS流文件仅为方便说明。
在上述实施例中,其中的参数信息包括TS流文件的首个时间戳min_pts和末尾时间戳max_pts,以及TS流文件的起始位置begin_pos和结束位置end_pos等,下面结合上述信息来对本发明进行更详细的说明。
作为本发明更优选的实施例,如图2所示,所述步骤S101具体包括:
S201、接收用户输入的需要跳转的目标时间target_time_ms;
此处用户可以通过拖动和菜单输入等各种方式来输入需要跳转的目标时间target_time_ms。
S202、获取TS流文件的起始位置begin_pos、结束位置end_pos以及首个时间戳min_pts;
在初始化时,可获取TS流文件的起始位置begin_pos、结束位置end_pos和TS流文件的数据包大小packet_size。其中的起始位置begin_pos是指TS流文件或者其中的某段数据的开始位置,其单位为字节,在初始化时,起始位置为0,即整个TS流文件的开始,随着范围缩小至某段数据,其值为该段数据第一个字节在整个TS流文件中的相对于文件头的偏移量。其中的结束位置end_pos是指TS流文件或者其中的某段数据的结束位置,其单位为字节,在初始化时,结束位置为整个TS流文件的大小,其可通过文件操作函数stat(const char *file_name, struct stat *buf)来获取文件的大小。随着范围缩小至某段数据(作为新的TS流文件),其值为该段数据最后一个字节在整个TS流文件中的相对于文件头的偏移量。packet_size的大小可以根据TS流文件中两个同步字节0x47之间字节的个数来确定,该大小可能是188字节、192字节或204字节中的一个。
首个时间戳min_pts是指TS流文件中第一个时间戳的值,其包含在TS流特有信息域中,共33位数据二进制组成,从文件头开始解析文件,直到找到第一个PTS时间戳标志(Flags),将其值保存在首个时间戳min_pts中,待用。
S203、计算出目标时间对应的时间戳target_pts:
target_pts=min_pts+target_time_ms*(27000/300);
MPEG-2规定的系统时钟频率为27MHz,TS流中的时间戳PTS是27MHz系统时钟300分频后进入33位的计数器的采样值,所以毫秒与时间戳的值之间的关系如上式所示,即将目标时间target_time_ms(单位为毫秒)转换为相应的时间戳,保存到变量target_pts中。
S204、检测到TS流文件的末尾时间戳max_pts;
末尾时间戳max_pts是TS流文件中最后一个时间戳的值,包含在TS流特有信息域中,共33位数据二进制组成,可以从文件末端开始往前解析,找到最后一个时间戳,将其值保存到变量max_pts中。
S205、计算出目标时间对应的估算位置forcast_pos:
forcast_pos=(target_pts - min_pts) * (end_pos - begin_pos) / (max_pts - min_pts)+begin_pos。
其中,end_pos - begin_pos:是指TS流文件(或者其中的数据段)的总的字节数,max_pts - min_pts:指TS流文件(或者其中的数据段)的首个时间戳与末尾时间戳之间的差值,target_pts - min_pts:指目标时间对应的时间戳与首个时间戳之间的差值,根据总字节数与时间戳之间的比例关系,即可计算出估算位置的字节偏移量。
在计算得到估算位置forcast_pos后,可判断估算位置最近的时间戳cur_pts与目标时间对应的时间戳target_pts的差值是否小于等于预定值,即小于或等于预定值,只有在小于等于预定值时,才说明匹配到目标位置,即估算位置forcast_pos即为需跳转的目标位置。其中的预定值优选为0.35*1000*90=31500(换算为时间:为350ms),其依据是:根据TS流复用标准的要求,两个相邻时间戳之间的间隔最多不能超过0.7s,所以基于上述原理就能找到符合要求的目标位置,当估算位置最近的时间戳cur_pts等于目标时间对应的时间戳target_pts时,则说明找到目标位置,该目标位置即为估算位置forcast_pos;当估算位置最近的时间戳cur_pts与目标时间对应的时间戳target_pts的差值在0.35s范围内,则认为该估算位置可作为目标位置,因为根据两个时间戳之间的间隔最多不能超过0.7s这个条件,说明小于0.35s即为较小的间距,只要超过0.35s则证明存在另一个时间戳与目标位置的时间戳更为接近,可重新调整参数继续获取估算位置。在整个TS流文件中,可能没有任何一个PTS值与target_pts相等,但这并不影响时间戳的匹配,只需要在TS流文件中匹配到最接近的PTS值的一个位置即可。通过本发明实施例的算法,准确度可以达到毫秒级别,可以满足多数用户的要求,且耗时更少。
对于不满足小于等于预定值的情况,在下文具体描述。
作为本发明更优选的实施例,如图3所示,所述步骤S102具体包括:
S301、获取该估算位置forcast_pos最近的时间戳cur_pts,当判定最近的时间戳cur_pts与目标时间对应的时间戳target_pts的差值大于预定值时,判断最近的时间戳cur_pts是否大于等于末尾时间戳max_pts,当是时进入步骤S302,否则转入步骤S303;
S302、将估算位置forcast_pos作为结束位置end_pos,返回步骤S205中重新计算估算位置;
当最近的时间戳cur_pts大于等于末尾时间戳max_pts时,可将估算位置forcast_pos作为结束位置end_pos(改变变量end_pos的值,使end_pos=forcast_pos),即缩小结束位置与起始位置之间的大小,调整范围重新计算出估算位置,并判断重新计算出的估算位置是否满足条件。
S303、判断最近的时间戳cur_pts是否小于目标时间对应的时间戳target_pts,当是时进入步骤S304,否则转入步骤S305;
当不满足最近的时间戳cur_pts大于等于末尾时间戳max_pts时,可再判断最近的时间戳cur_pts是否小于目标时间对应的时间戳target_pts。
S304、将最近的时间戳cur_pts作为首个时间戳min_pts,并将估算位置forcast_pos作为起始位置begin_pos,返回步骤S205中重新计算估算位置;
当最近的时间戳cur_pts小于目标时间对应的时间戳target_pts时,则通过另一种方式来缩小范围,即改变首个时间戳以及起始位置的值,使得min_pts=cur_pts,begin_pos=forcast_pos,并重新计算出估算位置,判断新的估算位置是否满足条件。
S305、将最近的时间戳cur_pts作为末尾时间戳max_pts,并将估算位置forcast_pos作为结束位置end_pos,返回步骤S205中重新计算估算位置。
当不满足最近的时间戳cur_pts小于目标时间对应的时间戳target_pts的条件时,则改变末尾时间戳以及结束位置的值,使得max_pts=cur_pts,end_pos=forcast_pos,这样重新计算出估算位置,判断新的估算位置是否满足条件。
按照上述方法重复判断,直到找到最接近的目标位置位置即可。
举例说明,如图4所示,在该示意图中,根据target_pts、end_pos、begin_pos、max_pts、min_pts等参数,计算得到forcast_pos,根据计算得到的forcast_pos来进行第一次缩小范围,使得max_pts=cur_pts,end_pos=forcast_pos,从而得到一个原TS流文件中的一个数据段。第一次估算之后可能并没有大规模减小目标范围,但关键点在于每增加一次估算操作,剩下的范围就会大大地缩小,动态估算target_pts在缩小范围之后的这段数据中的位置,例如图5所示,在经过第二次缩小范围之后,使得min_pts=cur_pts,begin_pos=forcast_pos,这样缩小范围之后剩下的数据段在整个TS流文件中的占比很小,从而使得新计算的估算位置forcast_pos更接近目标位置。
作为本发明更优选的实施例,所述步骤S301中,从估算位置forcast_pos往后或往前找到的第一个时间戳作为最近的时间戳cur_pts,例如从估算位置forcast_pos开始往后找到第一个PTS作为最近的时间戳cur_pts。
作为本发明更优选的实施例,每次执行S205步骤之前,都需要增加以下合理性判断:
判断结束位置end_pos是否大于起始位置begin_pos,且末尾时间戳max_pts是否大于首个时间戳min_pts,当结束位置end_pos大于起始位置begin_pos,且末尾时间戳max_pts大于首个时间戳min_pts时,则进入步骤S205,否则流程结束。
在本实施例中,存在一个条件判断过程,即需要满足下述条件:结束位置end_pos大于起始位置begin_pos,且末尾时间戳max_pts大于首个时间戳min_pts,只有这样才能计算出估算位置,否则说明计算出错,直接退出即可。
基于上述方法,本发明还提供一种TS流媒体文件快速定位系统较佳实施例,如图6所示,其包括:
计算模块100,用于接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;
匹配模块200,用于获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,则调整参数信息并返回计算模块重新计算估算位置,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。
作为本发明更优选的实施例,如图7所示,所述计算模块100具体包括:
目标时间接收单元110,用于接收用户输入的需要跳转的目标时间;
参数获取单元120,用于获取TS流文件的起始位置、结束位置以及首个时间戳;
目标时间对应时间戳计算单元130,用于根据目标时间以及首个时间戳计算出目标时间对应的时间戳;
末尾时间戳检测单元140,用于检测到TS流文件的末尾时间戳;
估算位置计算单元150,用于根据TS流文件的起始位置、结束位置、首个时间戳、末尾时间戳以及目标时间对应的时间戳计算出目标时间对应的估算位置。
作为本发明更优选的实施例,如图8所示,所述匹配模块200包括:
第一判断单元210,用于当判定最近的时间戳与目标时间对应的时间戳的差值大于预定值时,判断最近的时间戳是否大于等于末尾时间戳,当是时将估算位置作为结束位置,返回估算位置计算单元中重新计算估算位置,否则转入第二判断单元;
第二判断单元220,用于判断最近的时间戳是否小于目标时间对应的时间戳,当是时将最近的时间戳作为首个时间戳,并将估算位置作为起始位置,返回估算位置计算单元中重新计算估算位置,否则转入第三判断单元;
第三判断单元230,用于将最近的时间戳作为末尾时间戳,并将估算位置作为结束位置,返回估算位置计算单元中重新计算估算位置。
作为本发明更优选的实施例,所述计算模块100还包括:
条件判断单元,用于判断结束位置是否大于起始位置,且末尾时间戳是否大于首个时间戳,当结束位置大于起始位置,且末尾时间戳大于首个时间戳时,则进入估算位置计算单元,否则结束。
关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
综上所述,本发明通过接收用户输入的需要跳转的目标时间,再根据TS流文件中的参数信息来计算出·目标时间对应的时间戳以及目标时间对应的估算位置,然后获取到估算位置最近的时间戳,根据最近的时间戳与目标时间对应的时间戳的差值,来匹配出目标时间对应的目标位置,即跳转的目标位置,若未匹配到,则调整参数信息缩小范围,重新计算估算位置,重复上述过程,直到定位到满足要求的目标位置,本发明通过估算处理以及逐步分解原理来解决准确性和时间性能的问题,经测试证明,本发明的方法在满足准确性的同时,大大提高了时间性能,缩短了定位所需时间,且同时解决了跳转不准确的问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种TS流媒体文件快速定位方法,其特征在于,包括步骤:
接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;
获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,则调整参数信息并返回计算估算位置操作,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。
2.根据权利要求1所述的TS流媒体文件快速定位方法,其特征在于,所述接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置的步骤具体包括:
接收用户输入的需要跳转的目标时间;
获取TS流文件的起始位置、结束位置以及首个时间戳;
根据目标时间以及首个时间戳计算出目标时间对应的时间戳;
检测到TS流文件的末尾时间戳;
根据TS流文件的起始位置、结束位置、首个时间戳、末尾时间戳以及目标时间对应的时间戳计算出目标时间对应的估算位置。
3.根据权利要求1所述的TS流媒体文件快速定位方法,其特征在于,所述预定值为31500。
4.根据权利要求2所述的TS流媒体文件快速定位方法,其特征在于,所述获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否小于等于预定值,当是时,则目标时间对应的目标位置为估算位置,当否时,调整参数信息并返回计算估算位置操作的步骤具体包括:
B1、当判定最近的时间戳与目标时间对应的时间戳的差值大于预定值时,判断最近的时间戳是否大于等于末尾时间戳,当是时进入步骤B2,否则转入步骤B3;
B2、将估算位置作为结束位置,返回计算估算位置的步骤中重新计算估算位置;
B3、判断最近的时间戳是否小于目标时间对应的时间戳,当是时进入步骤B4,否则转入步骤B5;
B4、将最近的时间戳作为首个时间戳,并将估算位置作为起始位置,返回计算估算位置的步骤中重新计算估算位置;
B5、将最近的时间戳作为末尾时间戳,并将估算位置作为结束位置,返回计算估算位置的步骤中重新计算估算位置。
5.根据权利要求4所述的TS流媒体文件快速定位方法,其特征在于,所述步骤B1中,从估算位置往后或往前找到的第一个时间戳作为最近的时间戳。
6.根据权利要求2所述的TS流媒体文件快速定位方法,其特征在于,执行所述计算出目标时间对应的估算位置的步骤之前,还包括以下步骤:
判断结束位置是否大于起始位置,且末尾时间戳是否大于首个时间戳,当结束位置大于起始位置,且末尾时间戳大于首个时间戳s时,则进入计算出目标时间对应的估算位置的步骤,否则流程结束。
7.一种TS流媒体文件快速定位系统,其特征在于,包括:
计算模块,用于接收用户输入的需要跳转的目标时间,根据TS流文件中的参数信息来计算出目标时间对应的时间戳以及目标时间对应的估算位置;
匹配模块,用于获取该估算位置最近的时间戳,判断最近的时间戳与目标时间对应的时间戳的差值是否大于预定值,当差值大于预定值时,则调整参数信息并返回计算模块重新计算估算位置,当差值小于或等于预定值时,则目标时间对应的目标位置为估算位置。
8.根据权利要求7所述的TS流媒体文件快速定位系统,其特征在于,所述计算模块具体包括:
目标时间接收单元,用于接收用户输入的需要跳转的目标时间;
参数获取单元,用于获取TS流文件的起始位置、结束位置以及首个时间戳;
目标时间对应时间戳计算单元,用于根据目标时间以及首个时间戳计算出目标时间对应的时间戳;
末尾时间戳检测单元,用于检测到TS流文件的末尾时间戳;
估算位置计算单元,用于根据TS流文件的起始位置、结束位置、首个时间戳、末尾时间戳以及目标时间对应的时间戳计算出目标时间对应的估算位置。
9.根据权利要求8所述的TS流媒体文件快速定位系统,其特征在于,所述匹配模块包括:
第一判断单元,用于当判定最近的时间戳与目标时间对应的时间戳的差值大于预定值时,判断最近的时间戳是否大于等于末尾时间戳,当是时将估算位置作为结束位置,返回估算位置计算单元中重新计算估算位置,否则转入第二判断单元;
第二判断单元,用于判断最近的时间戳是否小于目标时间对应的时间戳,当是时将最近的时间戳作为首个时间戳,并将估算位置作为起始位置,返回估算位置计算单元中重新计算估算位置,否则转入第三判断单元;
第三判断单元,用于将最近的时间戳作为末尾时间戳,并将估算位置作为结束位置,返回估算位置计算单元中重新计算估算位置。
10.根据权利要求8所述的TS流媒体文件快速定位系统,其特征在于,所述计算模块还包括:
条件判断单元,用于判断结束位置是否大于起始位置,且末尾时间戳是否大于首个时间戳,当结束位置大于起始位置,且末尾时间戳大于首个时间戳时,则进入估算位置计算单元,否则结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410104129.7A CN103873891B (zh) | 2014-03-20 | 2014-03-20 | 一种ts流媒体文件快速定位方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410104129.7A CN103873891B (zh) | 2014-03-20 | 2014-03-20 | 一种ts流媒体文件快速定位方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873891A true CN103873891A (zh) | 2014-06-18 |
CN103873891B CN103873891B (zh) | 2017-02-22 |
Family
ID=50911963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410104129.7A Active CN103873891B (zh) | 2014-03-20 | 2014-03-20 | 一种ts流媒体文件快速定位方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103873891B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216959A (zh) * | 2014-08-21 | 2014-12-17 | 浙江宇视科技有限公司 | 一种ts文件的定位方法及装置 |
CN108574856A (zh) * | 2017-06-30 | 2018-09-25 | 北京金山云网络技术有限公司 | 确定视频文件试看截止点的方法、装置、设备及介质 |
CN111031338A (zh) * | 2019-12-17 | 2020-04-17 | 杭州当虹科技股份有限公司 | 一种改善在线信源速率异常的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980390A (zh) * | 2005-12-07 | 2007-06-13 | 联合信源数字音视频技术(北京)有限公司 | 支持精确定位的音视频媒体数据组织实现方法 |
CN101340570A (zh) * | 2008-08-22 | 2009-01-07 | 天柏宽带网络科技(北京)有限公司 | 一种流媒体播放时实现跳转的方法 |
US20120203830A1 (en) * | 2009-10-21 | 2012-08-09 | Aurelie Zanin | Method, apparatus and system for media position control |
CN103137168A (zh) * | 2011-12-05 | 2013-06-05 | 炬力集成电路设计有限公司 | 一种码流定点搜索方法、装置及播放器 |
-
2014
- 2014-03-20 CN CN201410104129.7A patent/CN103873891B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980390A (zh) * | 2005-12-07 | 2007-06-13 | 联合信源数字音视频技术(北京)有限公司 | 支持精确定位的音视频媒体数据组织实现方法 |
CN101340570A (zh) * | 2008-08-22 | 2009-01-07 | 天柏宽带网络科技(北京)有限公司 | 一种流媒体播放时实现跳转的方法 |
US20120203830A1 (en) * | 2009-10-21 | 2012-08-09 | Aurelie Zanin | Method, apparatus and system for media position control |
CN103137168A (zh) * | 2011-12-05 | 2013-06-05 | 炬力集成电路设计有限公司 | 一种码流定点搜索方法、装置及播放器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216959A (zh) * | 2014-08-21 | 2014-12-17 | 浙江宇视科技有限公司 | 一种ts文件的定位方法及装置 |
CN104216959B (zh) * | 2014-08-21 | 2017-08-15 | 浙江宇视科技有限公司 | 一种ts文件的定位方法及装置 |
CN108574856A (zh) * | 2017-06-30 | 2018-09-25 | 北京金山云网络技术有限公司 | 确定视频文件试看截止点的方法、装置、设备及介质 |
CN111031338A (zh) * | 2019-12-17 | 2020-04-17 | 杭州当虹科技股份有限公司 | 一种改善在线信源速率异常的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103873891B (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200029108A1 (en) | Establishment and Use of Time Mapping Based on Interpolation Using Low-Rate Fingerprinting, to Help Facilitate Frame-Accurate Content Revision | |
CN104768082B (zh) | 一种音视频播放信息处理方法及服务器 | |
US9705944B2 (en) | Multi-terminal synchronous play control method and apparatus | |
JP6194484B2 (ja) | 映像受信装置、付加情報表示方法および付加情報表示システム | |
CN101151901B (zh) | 向数字数据流服务器发送命令的方法和用于实施该方法的装置 | |
JP2018530257A (ja) | メディアコンテンツタグデータの同期化 | |
WO2018125557A1 (en) | Recommendation of segmented content | |
CN103634621A (zh) | 一种视频推荐业务中播放同步控制方法及装置、系统 | |
JP7069305B2 (ja) | タイムスタンプトランジション分解能を改善するためのシステム、方法及び記憶媒体 | |
WO2017107516A1 (zh) | 网络视频播放方法及装置 | |
JP2010523068A (ja) | 音声信号内の時点を決定する方法 | |
US10284888B2 (en) | Multiple live HLS streams | |
CN103873891A (zh) | 一种ts流媒体文件快速定位方法及系统 | |
JP6323536B2 (ja) | 受信装置および受信方法 | |
US20150052102A1 (en) | Systems and methods for creating a temporal content profile | |
JP4471028B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN103686238A (zh) | 视频播放检测方法和装置 | |
US10812873B2 (en) | Identifying segment boundaries of recorded video events based on aggregated viewer measurement data | |
EP2439741B1 (en) | Video playing apparatus and location search method thereof | |
KR20200077939A (ko) | 스트리밍 동영상의 라이브 썸네일 제공 시스템 | |
WO2016133587A1 (en) | Use of program-schedule text and closed-captioning text to facilitate selection of a portion of a media-program recording | |
CN104463339A (zh) | 多媒体资源制作者的评估方法及其装置 | |
CN106162322A (zh) | 一种视频处理方法及装置 | |
Potetsianakis et al. | SWAPUGC: software for adaptive playback of geotagged UGC | |
CN109218257A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |