CN102769779A - 一种多媒体文件的快速跳进方法 - Google Patents
一种多媒体文件的快速跳进方法 Download PDFInfo
- Publication number
- CN102769779A CN102769779A CN2011101214837A CN201110121483A CN102769779A CN 102769779 A CN102769779 A CN 102769779A CN 2011101214837 A CN2011101214837 A CN 2011101214837A CN 201110121483 A CN201110121483 A CN 201110121483A CN 102769779 A CN102769779 A CN 102769779A
- Authority
- CN
- China
- Prior art keywords
- pcr
- multimedia file
- pos
- interval
- offset
- 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
本发明提供了一种多媒体文件的快速跳进方法,多媒体文件在解码播放时,如果要进行快速跳进,在当前解码时间戳的基础上增加获取的时间增量,作为要跳进的目标时间戳,并将目标时间戳对应的节目时钟参考(PCR)作为预估PCR;根据PCR和多媒体文件位置偏移之间的线性关系,确定所述预估PCR在多媒体文件中对应的位置偏移,将其作为要跳进的目标位置偏移;将多媒体文件跳进到所述目标位置偏移处进行播放。应用本发明方案,由于无需建立时间戳索引文件,直接利用线性关系进行计算,其计算量小,耗时少,从而可以大大加快跳进速度。
Description
技术领域
本发明涉及多媒体技术,特别涉及一种多媒体文件的快速跳进方法。
背景技术
现有技术中,多媒体文件在播放时,可以在时间轴上进行快进、快退等快速跳进操作。这里所说的在时间轴上的跳进实际上就是将目标时间转换成实际的文件位置偏移的过程。
多媒体文件格式很多,下面以运动图像专家组(MPEG)中的MPEG-2为例说明几种快速跳进方法:
第一种方法:在文件打开时先建立整个文件的时间戳索引文件,该时间戳索引就是多媒体文件的时间信息,其和位置偏移信息是一一对应的关系。如果播放过程中需要文件跳进,可以查找该时间戳索引文件,并定位到文件的相应位置。由于这种方法需要在文件打开时要先建立时间戳索引文件,因而会增加文件打开的时间,并且,随着文件长度的增加,建立时间戳索引文件的时间会相应增加,其打开时间也会相应增加,给用户带来不好的体验。
第二种方法:在需要文件跳进时,采用闭环搜索算法,逐步迭代,缩小搜索区域,进而定位到目标时间戳对应的位置。这种方法由于采用了闭环搜索方法,在跳进过程中会出现反复迭代的情形,每次跳进所需时间比较长,并且,如果媒体文件分辨率比较高,文件长度比较长时,其花费时间将会明显增长,也给用户带来不好的体验。
第三种方法:这种方法是前两种方法的结合,即:在文件打开时先针对部分建立时间戳索引文件,需要跳进时,查找目标时间在时间索引文件所在的区间,然后在该区间内采用闭环搜索算法,从而定位到相应的位置。虽然这种方法采用了折中处理方式,但仍然存在文件打开时间增长、跳进时间增加的问题,并且,如果媒体文件分辨率比较高,文件长度比较长时,花费时间也将增长。
因此,不管现有技术采用上述哪种方法,在多媒体文件进行跳进时,都不可避免存在时间比较长的缺陷。
发明内容
本发明提供了一种多媒体文件的快速跳进方法,可以使多媒体文件在打开无需建立时间戳索引文件,也不必进行反复迭代过程,从而可以快速地进行跳进。
针对上述目的,本发明提供的技术方案是:
一种多媒体文件的快速跳进方法,多媒体文件在解码播放时,当进行快速跳进,该方法包括:
A、在当前解码时间戳的基础上增加获取的时间增量,作为要跳进的目标时间戳,并将目标时间戳对应的节目时钟参考PCR作为预估PCR;
B、根据PCR和多媒体文件位置偏移之间的线性关系,确定所述预估PCR在多媒体文件中对应的位置偏移,将其作为要跳进的目标位置偏移;
C、将多媒体文件跳进到所述目标位置偏移处进行播放。
本发明公开了一种多媒体文件的快速跳进方法,是根据PCR和多媒体文件位置偏移之间的线性关系,确定所述预估PCR在多媒体文件中对应的位置偏移,将其作为要跳进的目标位置偏移。应用本发明方案,由于无需建立时间戳索引文件,可以直接利用线性关系进行计算,其计算量小,耗时少,从而可以大大加快跳进速度。
附图说明
图1是PCR与多媒体文件位置偏移之间线性关系的示意图。
图2是本发明的方法流程图。
图3是本发明中一个实施例的方法流程图。
图4是本发明实施例中预估PCR和实际PCR差值绝对值不超出估计阈值时确定位置偏移的示意图。
图5是本发明实施例中预估PCR和实际PCR差值绝对值超出估计阈值时确定位置偏移的示意图。
具体实施方式
本发明的基本思想是不直接利用解码时间戳来确定对应的位置偏移,而是先将其转换为节目时钟参考(PCR),利用PCR和多媒体文件位置偏移之间的线性关系来确定目标位置偏移,从而跳进到目标位置偏移处播放。
为了更好地说明本发明方案,下面先介绍PCR,以及PCR和多媒体文件位置偏移之间的线性关系。
本领域技术人员知道,数字电视系统中,为了实现同步,发送端每隔100毫秒至少要传输一次系统时钟(27兆赫兹)的一个抽样值给接收端,将其作为解码的时钟参考信号,即:节目时钟参考(PCR,Program Clock Reference)。这些PCR信息保存在多媒体传输流(TS)包,用于表示解码端在读取完该抽样值时本地时钟应该处于何种状态。
PCR与多媒体文件的位置偏移之间的关系基本上可以看作具有分段线性关系,其关系如图1所示。从图1中可以看到,在每段区间上,PCR值与位置偏移大致都可以线性关系表示:Offset(i+1)-Offset(i)=k*(PCR(i+1)-PCR(i)),其中,Offset(i+1)、Offset(i)表示多媒体文件中第i+1处和第i处的位置偏移,PCR(i+1)、PCR(i)表示多媒体文件中第i+1处和第i处的PCR值,K表示线性关系的系数。
正在由于PCR与多媒体文件的位置偏移之间可以认为存在线性关系,那么,如果将解码时间戳转换为PCR,就可以很方便地利用PCR计算出对应的多媒体文件位置偏移了。上面提到PCR是涉及的数字电视系统,但实际中,不但数字电子系统可以播放含PCR的多媒体文件,某些播放器也可以播放该类型的多媒体文件,因此,下面所述的跳进方法并不局限于数字电视系统,而是适用于一切含PCR的多媒体文件。
按照上述分析,本发明实现多媒体文件的快速跳进的方法如图2所示,包括:
步骤201:在当前解码时间戳的基础上增加获取的时间增量,作为要跳进的目标时间戳,并将目标时间戳对应的PCR作为预估PCR。
步骤202:根据PCR和多媒体文件位置偏移之间的线性关系,确定预估PCR在多媒体文件中对应的位置偏移,将其作为要跳进的目标位置偏移。
在本步骤中,实现的方法具体可以包括:
B1、以多媒体文件播放的当前位置偏移处为中心设置估计区间[pos_min,pos_max],所述pos_min为前一端点的位置偏移,pos_max为后一端点的位置偏移。
B2、从多媒体文件中获取估计区间两端点各自对应的PCR,其中,PCR_min是pos_min对应的PCR,PCR_max是pos_max对应的PCR。
B3、根据线性公式计算得到预估PCR在多媒体文件中对应的位置偏移。
所述线性公式为:
步骤203:将多媒体文件跳进到所述目标位置偏移处进行播放。
也就是说,本发明是先将当前解码时间戳增加一定的时间增量,得到要跳进的目标时间戳。这个时间增量可以是事先设置的固定值,比如10秒,也可以是跳进时用户给出的值。总之,得到目标时间戳之后,本方法会将其转换为对应的PCR,即预估PCR。解码时间戳和PCR之间的转换关系是本领域技术人员知道的,也可以很容易获取,详见下面实施例,此处不再赘述。之后,再利用PCR和多媒体文件位置偏移之间的线性关系,找到预估PCR在多媒体文件中对应的位置偏移,然后进行跳进。
上面步骤B1~B3示出了如何根据线性关系确定目标位置偏移的一种实施方式。在实际应用中,只要能够知道PCR和多媒体文件位置偏移之间的线性关系就可以进行估计,而不必按照步骤B1~B3的方法。
为了更好地说明本发明方案,下面用一个较佳实施例进行详细描述。
本实施例中,假设多媒体文件是MPEG-2格式的文件(比如MPEG-2TS),并假设其在解码播放某个时刻需要跳进。另外,本实施例还假设当前播放位置偏移记作pos_curr,单位为字节(byte);多媒体文件长度记作file_len,单位为字节;多媒体总的播放时间记作total_duration,单位为毫秒(ms)。
本实施例中,还假设预先设置了估计阈值PCR_VALID_RANGE,用于判断线性估计是否准确;设置了区间阈值POS_VALID_RANGE,用于限制估计区间的大小。
图3是本实施例实现多媒体文件跳进的方法流程图,包括:
步骤301:在当前解码时间戳的基础上增加获取的时间增量,作为要跳进的目标时间戳,并将目标时间戳对应的节目时钟参考PCR作为预估PCR。
如前所述,根据现有技术中解码时间戳与PCR之间的转换关系可知:
其中,PCR_input为所述预估PCR,target_DTS为所述目标时间戳(其单位为毫秒),27000000表示系统时钟的采样频率值。按照上述转换关系,就可以将DTS为基础的目标时间戳转换为以PCR为基础的时间。
步骤302:以多媒体文件播放的当前位置偏移pos_curr为中心设置估计区间[pos_min,pos_max],所述pos_min为前一端点的位置偏移,pos_max为后一端点的位置偏移。
这里,前一端点的位置偏移pos_min=pos_curr-a×file_len,后一端点的位置偏移pos_max=pos_curr+a×file_len,其中,a为区间调整系数,取值范围为(0,1),file_len为多媒体文件长度。a值可以根据实际情况或经验确定,比如:a=2×1000/total_duration,其中,2是一个经验值,单位为秒,total_duration表示多媒体文件的长度,单位为毫秒。
实际应用中,还可以采用其它方式来确定估计区间,此处不再赘述。
步骤303:从多媒体文件中获取估计区间两端点各自对应的PCR,其中,PCR_min是pos_min对应的PCR,PCR_max是pos_max对应的PCR。
这里,可以从pos_min位置偏移处向后搜索多媒体文件TS包的同步头,再读取188字节长的TS包,然后从TS包的适应域(adaption_field)中读取该TS包的PCR,此PCR就是对应的PCR_min。同样,按照这种方式,还可以获取PCR_max。
步骤304:判断是否成功获取PCR_min和PCR_max,如果成功,则继续执行步骤308;如果失败,则执行步骤305。
步骤305:扩大所述估计区间。
由于PCR是间隔保存在TS包中的,如果估计区间设置得不合适(比如太小),可能会导致无法在区间端点处获得对应的PCR,这就需要扩大估计区间。
扩大估计区间时,可以增大步骤302中区间调整系数a的值,比如由原来的a=2×1000/total_duration增大一倍,调整到a=4×1000/total_duration,至于具体如何调整则由应用本发明方案的用户自行确定。
步骤306:判断扩大后的估计区间是否大于预先设置的区间阈值POS_VALID_RANGE,如果不大于,则重新跳回到步骤303执行;否则,执行步骤307。
实际中,PCR与多媒体文件的位置偏移可能不是理想的线性关系,而是在较小的局部存在近似的线性关系。在这种情况下,如果将估计区间设置得过大,则无法体现线性关系,也使得位置偏移的估计不够准确。因此,本实施例设置了区间阈值POS_VALID_RANGE,并假设:
其中,file_len为多媒体文件长度,单位是字节;total_duration为多媒体文件总的播放时间,单位是毫秒;15是根据经验设置的值,单位是秒。一般来说,区间阈值与文件长度、多媒体文件总的播放时间等因素相关,具体如何设置由应用本实施例方案的用户自行确定。
步骤307:跳过估计区间,将估计区间后的位置偏移作为要跳进的目标位置偏移,再跳转到步骤312。
实际应用中,如果经过扩大足够的估计区间,还无法成功获取PCR_min和PCR_max,那么该区域可能没有传输PCR,或者发生PCR丢失等情况。这种情况下,可以直接跳过估计区间。
步骤308:根据线性公式计算得到预估PCR在多媒体文件中对应的目标位置偏移,所述线性公式为:
本实施例是pos_max、pos_min、PCR_max、PCR_min、PCR_input都构造局部线性关系的。实际应用中,也可以用其他方法来构造。
步骤309:从多媒体文件中获得所述目标位置偏移对应的PCR,将其作为实际PCR。
这里获取PCR的方法与步骤303中的方法相同,即:从目标位置偏移处向后搜索多媒体文件TS包的同步头,再读取188字节长的TS包,然后从TS包的适应域(adaption field)中读取该TS包的PCR,此PCR就是实际PCR。
步骤310:判断预估PCR和实际PCR差值的绝对值是否大于预设的估计阈值,如果不大于,则继续执行步骤312;否则,执行步骤311。
本实施例中设置了估计阈值作为判断线性估计是否准确的标准,估计阈值的设置可以根据实际情况或经验来确定。比如,可以将估计阈值设置为:
其中,PCR_VALID_RANGE为估计阈值;file_len为多媒体文件长度,单位为字节;total_duration为多媒体播放总时间,单位为毫秒;1024×1024表示1M,是根据经验设置的值。一般来说,估计阈值的设置与多媒体文件长度、多媒体播放总时间、码率等因素相关,具体如何设置也可以由应用本实施例方案的用户确定。
步骤311:跳过估计区间,将估计区间后的位置偏移作为要跳进的目标位置偏移,再执行步骤312。
实际应用中,如果存在预估PCR与实际PCR差值的绝对值在估计阈值范围之内,说明该局部是线性关系,估计比较准确,其情况可以如图4所示。而如果预估PCR与实际PCR差值的绝对值大于估计阈值,则可能是由于多媒体文件在制作过程中由于拼接等情况,造成PCR不连续。这种关系可以如图5所示。从图5可以看出,由于前后两段并非连续的线性关系,中间有断裂的情况,属于分段线性关系,从而造成预估PCR与实际PCR差值偏大。这种情况下,本实施例直接跳过估计区间,防止陷入死循环,保证跳进的连续性。
步骤312:将多媒体文件跳进到所述目标位置偏移处进行播放。
本实施例中,为了构造PCR和多媒体文件位置偏移之间的线性关系,设置了估计区间[pos_min,pos_max],实际应用中,如果利用其它方法构造线性关系,则可以不设置该估计区间。本实施例中,为了防止估计区间过大,保证估计的准确性,设置了区间阈值,并采用步骤304~306这种方式设置合适的估计区间。实际应用中,如果不考虑估计的准确性,也可以不采用上述方式,比如采用固定估计区间的方式,即不执行步骤304~306。同样,为了进一步保证估计的准确性,本实施例还设置了估计阈值,并采用步骤309~311来计算实际PCR,比较与预估PCR的差值,以及判断是否超出估计阈值。实际应用中,如果不进一步考虑估计的准确性,也可以不采用上述方式,即不执行步骤309~311。
应用本实施例方案,由于先将解码时间戳转换成了PCR,由PCR与多媒体文件位置偏移之间的线性关系确定目标位置偏移,并利用估计区间、区间阈值、估计阈值等措施较佳地保证了估计的准确性。这样,一方面,由于本实施例无需建立时间戳索引文件,因此不必增加多媒体文件的打开时间;另一方面,由于PCR与多媒体文件位置偏移之间是一种线性关系,计算量小,耗时短,大大加快了跳进的速度,将获得非常良好的用户体验。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (5)
1.一种多媒体文件的快速跳进方法,其特征在于,多媒体文件在解码播放时,当进行快速跳进,该方法包括:
A、在当前解码时间戳的基础上增加获取的时间增量,作为要跳进的目标时间戳,并将目标时间戳对应的节目时钟参考PCR作为预估PCR;
B、根据PCR和多媒体文件位置偏移之间的线性关系,确定所述预估PCR在多媒体文件中对应的位置偏移,将其作为要跳进的目标位置偏移;
C、将多媒体文件跳进到所述目标位置偏移处进行播放。
2.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
B1、以多媒体文件播放的当前位置偏移处为中心设置估计区间[pos_min,pos_max],所述pos_min为前一端点的位置偏移,pos_max为后一端点的位置偏移;
B2、从多媒体文件中获取估计区间两端点各自对应的PCR,其中,PCR_min是pos_min对应的PCR,PCR_max是pos_max对应的PCR;
B3、根据线性公式计算得到预估PCR在多媒体文件中对应的位置偏移;
所述线性公式为:
其中,PCR_input表示预估PCR,pos_target表示目标位置偏移。
3.根据权利要求2所述的方法,其特征在于,步骤B1中所述以多媒体文件播放的当前位置偏移处为中心设置估计区间[pos_min,pos_max]的方法包括:
将多媒体文件播放的当前位置偏移减去区间半径,其差值作为pos_min;
将多媒体文件播放的当前位置偏移加上区间半径,其和作为pos_max;
所述区间半径的值=a×file_len,其中,所述a为区间调整系数,取值范围为(0,1),所述file_len为多媒体文件长度。
4.根据权利要求2所述的方法,其特征在于,所述步骤B2和步骤B3之间进一步包括:
X1、判断是否成功获取PCR_min和PCR_max,如果成功,则继续执行步骤B3;如果失败,则扩大所述估计区间;
X2、判断扩大后的估计区间是否大于预先设置的区间阈值,如果不大于,则重新跳回到步骤B2执行;否则,跳过估计区间,将估计区间后的位置偏移作为要跳进的目标位置偏移。
5.根据权利要求1所述的方法,其特征在于,所述步骤B和步骤C之间进一步包括:
Y1、从多媒体文件中获得所述目标位置偏移对应的PCR,将其作为实际PCR;
Y2、判断预估PCR和实际PCR差值的绝对值是否大于预设的估计阈值,如果不大于,则继续执行步骤C;否则,跳过估计区间,将估计区间后的位置偏移作为要跳进的目标位置偏移,再执行步骤C。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110121483.7A CN102769779B (zh) | 2011-05-05 | 2011-05-05 | 一种多媒体文件的快速跳进方法 |
KR1020120016446A KR101860329B1 (ko) | 2011-05-05 | 2012-02-17 | 멀티미디어 파일 스킵 방법 및 이를 적용한 멀티미디어 장치 |
US13/464,637 US8634702B2 (en) | 2011-05-05 | 2012-05-04 | Method for skipping multimedia file and multimedia apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110121483.7A CN102769779B (zh) | 2011-05-05 | 2011-05-05 | 一种多媒体文件的快速跳进方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102769779A true CN102769779A (zh) | 2012-11-07 |
CN102769779B CN102769779B (zh) | 2015-03-11 |
Family
ID=47097009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110121483.7A Active CN102769779B (zh) | 2011-05-05 | 2011-05-05 | 一种多媒体文件的快速跳进方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102769779B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030123853A1 (en) * | 2001-12-25 | 2003-07-03 | Yuji Iwahara | Apparatus, method, and computer-readable program for playing back content |
US6792047B1 (en) * | 2000-01-04 | 2004-09-14 | Emc Corporation | Real time processing and streaming of spliced encoded MPEG video and associated audio |
US7031348B1 (en) * | 1998-04-04 | 2006-04-18 | Optibase, Ltd. | Apparatus and method of splicing digital video streams |
-
2011
- 2011-05-05 CN CN201110121483.7A patent/CN102769779B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031348B1 (en) * | 1998-04-04 | 2006-04-18 | Optibase, Ltd. | Apparatus and method of splicing digital video streams |
US6792047B1 (en) * | 2000-01-04 | 2004-09-14 | Emc Corporation | Real time processing and streaming of spliced encoded MPEG video and associated audio |
US20030123853A1 (en) * | 2001-12-25 | 2003-07-03 | Yuji Iwahara | Apparatus, method, and computer-readable program for playing back content |
Also Published As
Publication number | Publication date |
---|---|
CN102769779B (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106572358B (zh) | 一种直播时移方法及客户端 | |
EP3029944B1 (en) | Video reception device, added-information display method, and added-information display system | |
EP2752023B1 (en) | Method to match input and output timestamps in a video encoder and advertisement inserter | |
CN101010959B (zh) | 传送数据流的方法和系统 | |
US10945015B2 (en) | Transmitting method, receiving method, transmitting device, and receiving device | |
RU2015122492A (ru) | Обработка мультимедийных данных | |
CN102938848A (zh) | 瞬时解码器刷新帧对准的多位速率代码转换器输出 | |
KR100619007B1 (ko) | 비디오 트랜스포트 스트림 동기화 제어 장치 및 방법 | |
EP3101902A1 (en) | Transmission device, transmission method, reception device, and reception method | |
JP4987034B2 (ja) | 映像表示装置 | |
US20240064359A1 (en) | Transmitting method, receiving method, transmitting device, and receiving device | |
JP2009200938A (ja) | バッファ制御装置及び受信装置 | |
EP1868391A1 (en) | Method of and apparatus for reproducing compressed video streams | |
KR100772375B1 (ko) | 전송 스트림의 시간 정보를 이용하여 디지털 방송 수신장치의 시간을 설정하는 방법 및 그 장치 | |
US8576923B2 (en) | Bitstream navigation techniques | |
CN102769779A (zh) | 一种多媒体文件的快速跳进方法 | |
KR20120036788A (ko) | 정보 처리 장치 및 방법, 및 프로그램 | |
US20100329632A1 (en) | Video processing apparatus and video processing method | |
JP5632711B2 (ja) | 送信装置、受信装置及び伝送システム | |
EP2698993A1 (en) | Display control device, display control method, and program | |
CN103873891A (zh) | 一种ts流媒体文件快速定位方法及系统 | |
CN103716638A (zh) | 表示视频图像显示顺序的方法 | |
WO2011155099A1 (ja) | 映像表示装置 | |
US8634702B2 (en) | Method for skipping multimedia file and multimedia apparatus thereof | |
US8520788B2 (en) | Receiving device, receiving method and program |
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 |