CN105578265B - 一种基于h264、h265视频分析的时间戳补偿或修正的方法 - Google Patents
一种基于h264、h265视频分析的时间戳补偿或修正的方法 Download PDFInfo
- Publication number
- CN105578265B CN105578265B CN201510902806.4A CN201510902806A CN105578265B CN 105578265 B CN105578265 B CN 105578265B CN 201510902806 A CN201510902806 A CN 201510902806A CN 105578265 B CN105578265 B CN 105578265B
- Authority
- CN
- China
- Prior art keywords
- frame
- timestamp
- poc
- pts
- serial number
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4344—Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4341—Demultiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Abstract
本发明公开了一种基于H264、H265视频分析的时间戳补偿或修正的方法,包括如下步骤:解析原始文件的容器层信息,获取每帧时间戳,并在缺失时间戳的帧位标注“缺失”;解析原始文件的视频层信息,记录每帧POC;统一化跨GOP的POC;对每帧POC按照从小到大进行排序,对缺失时间戳的帧进行补偿处理;对每帧的时间戳按照从小到大进行排序,对时间戳进行检测,对存在错误的时间戳进行修正,这种基于H264、H265视频分析的时间戳补偿或修正的方法,通过检测到的容器层的时间戳缺失或者错误等信息,可根据视频文件中的POC、时间戳以及单帧时长信息来重构正确的时间戳,从而使视频文件可以兼容更多的视频播放、编辑等软硬件。
Description
技术领域
本发明涉及一种基于H264、H265视频分析的时间戳补偿或修正的方法。
背景技术
视频文件或者流是由视频基本流(Video Element Stream)以及视频容器(container)组成,视频基本流的格式包含H264、H265等视频格式,视频内容包含显示时间计数(POC,Picture Order of Count),容器包含MPEG、TS、PS、VOB、MKV、AVI、FLV等国际通用容器格式,包含了每一帧的时间戳(PTS)以及/或者Frame rate信息,而这些时间戳信息可能通过各种传输系统、处理系统,及最后由于各种原因导致丢失或者错误,这样的视频文件在后续的使用(播放、编辑、转码等)会造成很多问题,比如出现卡顿、与设备的兼容性等问题。
发明内容
基于此,有必要提供一种用于检测视频文件或者视频流中的时间戳丢失或错误,且可补偿或修正这些时间戳的基于H264、H265视频分析的时间戳补偿或修正的方法。
根据本发明的一方面,提供了一种基于H264、H265视频分析的时间戳补偿或修正的方法,包括如下步骤:
解析原始文件的容器层信息,获取每帧的时间戳,并在缺失时间戳的帧位标注“缺失”;
解析原始文件的视频层信息,记录每帧的POC;
统一化跨GOP的POC,使后一个GOP的任意一帧的POC,大于前一个GOP的任意一帧的POC;
对每帧的POC按照从小到大进行排序,并对缺失时间戳的帧进行补偿处理;
对每帧的时间戳按照从小到大进行排序,并对时间戳进行检测,对存在错误的时间戳进行修正。
在其中一个实施例中,对缺失时间戳的帧进行补偿处理的步骤中,具体的补偿处理方法如下:
a1、先找到含POC序号最小、且无缺失时间戳的帧;
b1、若步骤a1找到的帧非第一个帧,则先对步骤a1找到的帧以前的所有缺失时间戳的帧进行补偿;
c1、对于步骤a1找到的帧之后的帧,通过增加单帧时长的算法,对步骤a1找到的帧往后所有缺失时间戳的帧进行补偿。
这种基于H264、H265视频分析的时间戳补偿或修正的方法,通过检测到的容器层的时间戳缺失或者错误等信息,可根据视频文件中的POC、时间戳以及单帧时长信息来重构正确的时间戳,从而使视频文件可以兼容更多的视频播放、编辑等软硬件。
具体实施方式
为了便于理解本发明,下面将用具体实施例对本发明进行更全面的描述。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这实施例的目的是使对本发明的公开内容的理解更加透彻全面。
本发明一实施例的基于H264、H265视频分析的时间戳补偿或修正的方法,包括如下步骤:
解析原始文件的容器层信息,获取每帧的时间戳,并在缺失时间戳的帧位标注“缺失”;
解析原始文件的视频层信息,记录每帧的POC;
统一化跨GOP的POC,使后一个GOP的任意一帧的POC,大于前一个GOP的任意一帧的POC;
对每帧的POC按照从小到大进行排序,并对缺失时间戳的帧进行补偿处理;
对每帧的时间戳按照从小到大进行排序,并对时间戳进行检测,对存在错误的时间戳进行修正。
具体地,解析原始文件的视频层信息,记录每帧的POC的步骤中,POC代表了当前帧与当前GOP内与其他帧的显示先后关系。同一个GOP内,POC越小,则显示顺序越考前,POC越大,则显示顺序越靠后。由于POC不容易因视频处理传输的过程发生变化,所以可认为POC是稳定可靠的信息,且每帧都有POC,不存在缺失的问题。
具体地,统一化跨GOP的POC的步骤中,由于文件位置较前的GOP的任意一帧的显示顺序都先于文件位置较晚的GOP中的任意一帧,可通过以下方法调整POC的值,使得文件中所有的POC按顺序呈现越大。
具体的调整方法如下:
对于第一个GOP,调整后的POC记为原始POC,并记录当前最大的POC为“POC max”;
若对于第n个GOP的POC已经调整完毕,第n+1个GOP的POC调整步骤为,设第n+1个GOP的最小POC记录为“POC min”,则第n+1个GOP的每帧的POC都加上“(“POC max”+1)-“POCmin””,同时将调整完第n+1后的最大的POC记录为“POC max”;
从第一个GOP到最后GOP,反复递归调整,直到文件中的所有GOP调整完毕,则调整后的POC代表了文件中所有帧的显示先后关系。
具体地,对每帧的POC按照从小到大进行排序的步骤,具体的排序方法如下:
设文件共有1个帧,对每帧的POC按从小到大的顺序进行编码,第i个POC的序号为O(i),1≤i≤N,O(1)≤O(i)≤O(N),大小判断原则为O(i-1)<O(i)<O(i+1)。
对缺失时间戳的帧进行补偿处理的步骤,具体的补偿处理方法如下:
a1、先找到含所述POC序号最小、且无缺失所述时间戳的所述帧;
具体为,先找到含POC序号最小、且无缺失时间戳的帧,设该帧的POC序号为O(p),1≤p≤N,对该帧的时间戳进行对应的编码,序号为PTS(p)。
b1、若步骤a1找到的所述帧非第一个帧,则先对步骤a1找到的所述帧以前的所有缺失所述时间戳的帧进行补偿;
具体为,若O(p)>O(1),则先补偿序号为O(1)~O(p-1)的POC对应的帧的时间戳,补偿方法为,设一帧含序号为O(q)的POC,1≤q≤p,按照算式“PTS(p)-(O(p)-O(q))×单帧时长”得出该序号为O(q)的POC的帧对应的时间戳。
c1、对于步骤a1找到的所述帧之后的帧,通过增加单帧时长的算法,对步骤a1找到的帧往后所有缺失所述时间戳的帧进行补偿。
具体为,对于含序号为O(p+1)的POC的帧,若该帧缺失时间戳,按照算式“PTS(p+1)=PTS(p)+单帧时长”得出该序号为O(p+1)的POC的帧对应的时间戳。
循环递进步骤c,直至将POC序号为O(N)对应的帧的时间戳补偿完整。
常见PTS错误可分为如下几种:相邻若干帧的时间戳发生颠倒互换,相应的修改方案是检测出来并还原;某帧的时间戳由于传输错误出现异常,表现为与前后相邻的帧的时间戳相差非常大,相应的修改方案是通过算法还原原本的时间戳;而对于某些帧的时间戳,虽然与前后帧的差均不是严格的单帧时长,但是差距在一个阈值范围内,可认为这个时间戳是真实无误的,不做修正。
具体的检测及修正方法如下:
具体地,对每帧的时间戳按照从小到大进行排序的步骤,具体的排序方法如下:
设文件共有R个帧,对每帧的POC及时间戳按从小到大的顺序进行编码,第r个POC的序号为C(r),1≤r≤R,C(1)≤C(r)≤C(R),大小判断原则为C(r-1)<C(r)<C(r+1),含有第r个POC的帧对应的时间戳的序号为T(C(r)),大小判断原则为T(C(r-1))<T(C(r))<T(C(r+1))。
对存在错误的时间戳进行修正的步骤,具体的修正方法如下:
a2、令r=1,将序号为T(C(r))~T(C(r+K))的K个时间戳进行比较,K为常量,典型的可设为5。判断T(C(r))是否为最小的序号,1<K≤R;
b2、设一值W,使W为K和R中的较小者,即W=Min(K,R)再设一值k,k为2~W间的正整数;
c2、若T(C(1))≤T(C(k))成立,则认为T(C(1))没有错误,再令r=2,叠进循环本步骤;若T(C(1))≤T(C(k))不成立,则认为T(C(1))有误,设T(C(2))、T(C(3))、...、T(C(W))中的最大值为PTS(C(k)),纠正T(C(1))为T(C(k)),同时令T(C(k))为之前的T(C(1)),随后再令n=2,叠进循环本步骤。
d2、判断包含T(C(r))的序号的帧对应的时间戳是否异常,判断方法为,当T(C(n))<T(C(n-1)),说明该T(C(n))为异常,否则需进一步判断,令diff1=PTS(C(n))-PTS(C(n-1)),如果diff1>thres(其中thres为一个预设的常量,典型的,thres=5×单帧时长),则认为PTS(C(n))也是一个异常的时间戳,否则PTS(C(n))不是一个异常时间戳。如果PTS(C(n))为一个异常时间戳,则需要做出修正,修正值PTS(C(n))=PTS(C(n-1))+单帧时长。修正完毕后进入步骤e2。
另一方面,如果PTS(C(n))为一个非异常的时间戳,则判断是否有时间戳误交换的错误。判断方法如下:设W为n+K-1以及R之间的较小者,即W=Min(K+n-1,N),对于任意的k为n+1~W的正整数,如果存在某一帧,序号为k,满足PTS(C(k))>PTS(C(n-1))且PTS(C(n))>PTS(C(k)),则认为PTS(C(n))存在交换错误,需要修正。修正方法:找到符合上述条件的但是所含时间戳最小的帧,标记其序号为k’,令PTS(C(n))=PTS(C(k’)),而PTS(C(k’))改为修改前的PTS(C(n))。修正完毕后进入步骤e2。
最后,如果既没有发生时间戳异常,也没有发生交换错误,则认为PTS(C(n))正常,无需修正,直接进入步骤e2
e2、令n=n+1,否则重复步骤d2,直到n>N。
这种基于H264、H265视频分析的时间戳补偿或修正的方法,通过检测到的容器层的时间戳缺失或者错误等信息,可根据视频文件中的POC、时间戳以及单帧时长信息来重构正确的时间戳,从而使视频文件可以兼容更多的视频播放、编辑等软硬件。
以上实施例仅表达了本发明的个别实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (1)
1.一种基于H264、H265视频分析的时间戳补偿或修正的方法,其特征在于,包括如下步骤:
解析原始文件的容器层信息,获取每帧的时间戳,并在缺失所述时间戳的帧位标注“缺失”;
解析原始文件的视频层信息,记录每帧的POC;
统一化跨GOP的所述POC,使后一个所述GOP的任意一帧的所述POC,大于前一个所述GOP的所述任意一帧的所述POC;
对所述每帧的所述POC按照从小到大进行排序,并对缺失所述时间戳的所述帧进行补偿处理,所述时间戳的补偿方法为
先找到含所述POC序号最小、且无缺失所述时间戳的所述帧,设该所述帧的所述POC序号为为O(p),1≤p≤N,对该所述帧的时间戳进行对应的编码,序号为PTS(p),
若找到的该所述帧非第一个帧,则先对找到的该所述帧以前的所有缺失所述时间戳的所述帧进行补偿,若O(p)>O(1),则先补偿序号为O(1)~O(p-1)的所述POC对应的帧的时间戳,补偿方法为,设一帧含序号为O(q)的POC,1≤q≤p,按照算式“PTS(p)-(O(p)-O(q))×单帧时长”得出该序号为O(q)的POC的帧对应的时间戳,
对于找到的该所述帧之后的帧,通过增加单帧时长的算法,对找到的该所述帧往后所有缺失所述时间戳的帧进行补偿,对于含序号为O(p+1)的POC的帧,若该帧缺失时间戳,按照算式“PTS(p+1)=PTS(p)+单帧时长”得出该序号为O(p+1)的POC的帧对应的时间戳;
对所述每帧的所述时间戳按照从小到大进行排序,并对所述时间戳进行检测,对存在错误的所述时间戳进行修正,所述时间戳的修正方法为
如果PTS(C(n))为一个异常时间戳,则需要做出修正,修正值PTS(C(n))=PTS(C(n-1))+单帧时长,
修正完毕后,令n=n+1,重复判断包含T(C(r))的序号的帧对应的时间戳是否异常的步骤,直到n>N,
另一方面,如果PTS(C(n))为一个非异常的时间戳,则判断是否有时间戳误交换的错误,设W为n+K-1以及R之间的较小者,即W=Min(K+n-1,N),对于任意的k为n+1~W的正整数,如果存在某一帧,序号为k,满足PTS(C(k))>PTS(C(n-1))且PTS(C(n))>PTS(C(k)),则认为PTS(C(n))存在交换错误,需要修正,找到符合上述条件但是所含时间戳最小的帧,标记其序号为k’,令PTS(C(n))=PTS(C(k’)),而PTS(C(k’))改为修改前的PTS(C(n)),
修正完毕后,令n=n+1,重复判断包含T(C(r))的序号的帧对应的时间戳是否异常的步骤,直到n>N。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510902806.4A CN105578265B (zh) | 2015-12-10 | 2015-12-10 | 一种基于h264、h265视频分析的时间戳补偿或修正的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510902806.4A CN105578265B (zh) | 2015-12-10 | 2015-12-10 | 一种基于h264、h265视频分析的时间戳补偿或修正的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105578265A CN105578265A (zh) | 2016-05-11 |
CN105578265B true CN105578265B (zh) | 2019-03-05 |
Family
ID=55887854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510902806.4A Active CN105578265B (zh) | 2015-12-10 | 2015-12-10 | 一种基于h264、h265视频分析的时间戳补偿或修正的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105578265B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769770A (zh) * | 2018-06-21 | 2018-11-06 | 广州酷狗计算机科技有限公司 | 调整音频单元的方法和装置 |
CN110996129A (zh) * | 2019-12-20 | 2020-04-10 | 杭州当虹科技股份有限公司 | 一种支持mpeg-dash输出切片号连续的方法 |
CN111797060B (zh) * | 2020-09-07 | 2020-12-04 | 杭州觅睿科技有限公司 | 一种离线录像方法、装置、设备以及计算机可读存储介质 |
CN113573119B (zh) * | 2021-06-15 | 2022-11-29 | 荣耀终端有限公司 | 多媒体数据的时间戳生成方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1344106A (zh) * | 2000-09-15 | 2002-04-10 | 北京算通数字技术研究中心有限公司 | 基于mpeg-2码流的非线性编辑系统编辑方法 |
CN101107863A (zh) * | 2005-01-19 | 2008-01-16 | 汤姆森特许公司 | 用于实时并行编码的方法和装置 |
EP2339842A1 (fr) * | 2009-11-18 | 2011-06-29 | STMicroelectronics (Grenoble 2) SAS | Procédé et dispositif de contrôle de la vitesse de restitution d'une séquence vidéo numérique compressée |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
CN104301805A (zh) * | 2014-09-26 | 2015-01-21 | 北京奇艺世纪科技有限公司 | 一种视频时间长度的估计方法和装置 |
CN104717553A (zh) * | 2013-12-11 | 2015-06-17 | 恩智浦有限公司 | 用于对压缩视频进行解码的设备和方法 |
-
2015
- 2015-12-10 CN CN201510902806.4A patent/CN105578265B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1344106A (zh) * | 2000-09-15 | 2002-04-10 | 北京算通数字技术研究中心有限公司 | 基于mpeg-2码流的非线性编辑系统编辑方法 |
CN101107863A (zh) * | 2005-01-19 | 2008-01-16 | 汤姆森特许公司 | 用于实时并行编码的方法和装置 |
EP2339842A1 (fr) * | 2009-11-18 | 2011-06-29 | STMicroelectronics (Grenoble 2) SAS | Procédé et dispositif de contrôle de la vitesse de restitution d'une séquence vidéo numérique compressée |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
CN104717553A (zh) * | 2013-12-11 | 2015-06-17 | 恩智浦有限公司 | 用于对压缩视频进行解码的设备和方法 |
CN104301805A (zh) * | 2014-09-26 | 2015-01-21 | 北京奇艺世纪科技有限公司 | 一种视频时间长度的估计方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105578265A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105578265B (zh) | 一种基于h264、h265视频分析的时间戳补偿或修正的方法 | |
CN103634605B (zh) | 视频画面的处理方法及装置 | |
CN108881927B (zh) | 一种视频数据合成方法和装置 | |
CA2903898C (en) | Decoding and display delay error correction in a spliced video when pictures have been discarded | |
US8849778B2 (en) | Apparatus and method for storing and reading a file having a media data container and a metadata container | |
EP2485501B1 (en) | Fast channel change companion stream solution with bandwidth optimization | |
EP3883238B1 (en) | Method and apparatus for simultaneously switching audio stream and video stream | |
US20160219296A1 (en) | Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method | |
US8276182B2 (en) | Television content from multiple sources | |
US8279945B2 (en) | Method for compensating timing mismatch in A/V data stream | |
US20170230725A1 (en) | Using Scene-Change Transitions To Output An Alert Indicating A Functional State Of A Back-Up Video-Broadcast System | |
CN107979777A (zh) | 一种直播流无缝切换方法及装置 | |
US20100172374A1 (en) | System and method for transport of a constant bit rate stream | |
CN104702880A (zh) | 一种处理视频数据的方法和系统 | |
CN110177293B (zh) | 一种同步组播和视频转发方法、系统 | |
EP2039165A2 (en) | Method and apparatus for encoding and decoding data with error correction | |
KR101879194B1 (ko) | 패킷의 손실을 복구하기 위한 장치 및 그 방법 | |
CN100591140C (zh) | 一种在视频中显示字幕的方法 | |
US20090240716A1 (en) | Data processing method, system, and device for multimedia data recording and data patching method thereof | |
CN107302523B (zh) | 一种传输流丢包引起马赛克的解决方法 | |
WO2010087129A1 (ja) | ピクチャタイプ推定装置、方法、及びプログラムが格納された記憶媒体 | |
JP4703522B2 (ja) | 動画像復号装置 | |
US8681879B2 (en) | Method and apparatus for displaying video data | |
CN101267263B (zh) | 一种移动多媒体系统中的数据接收方法和终端 | |
CN110677680A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310000 A Block, 16th Floor, E Building, Paradise Software Park, No. 3 Xidoumen Road, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Dang Hong Polytron Technologies Inc Address before: 310000 B2010, two floor, North (two), six and 368 Road, Binjiang District, Hangzhou, Zhejiang. Patentee before: HANGZHOU DANGHONG TECHNOLOGY CO., LTD. |