CN105025357B - 一种视频倒放的方法 - Google Patents
一种视频倒放的方法 Download PDFInfo
- Publication number
- CN105025357B CN105025357B CN201510303283.1A CN201510303283A CN105025357B CN 105025357 B CN105025357 B CN 105025357B CN 201510303283 A CN201510303283 A CN 201510303283A CN 105025357 B CN105025357 B CN 105025357B
- Authority
- CN
- China
- Prior art keywords
- frames
- play
- video
- reverse
- new video
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000003139 buffering effect Effects 0.000 claims description 16
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000013500 data storage Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种视频倒放的方法,本方法为通过对原视频文件进行预处理,生成新视频文件,对新视频文件正向解码,顺序播放即可实现视频倒放,在倒放过程中,对I帧只解码不播放。本发明通过对原始视频文件预处理生成了新的视频文件,而使用新的视频文件在视频倒放的过程中,节省了视频倒放时寻找I帧和缓冲区读写的时间,显著提升了解码速度,保证了视频倒放过程的流畅性,从而解决视频倒放时卡顿和花屏问题。
Description
技术领域
本发明涉及计算机领域,尤其是一种视频倒放的方法。
背景技术
目前,广泛使用的视频文件主要有I帧、P帧几种帧类型。其中I帧称为帧内编码帧,是一种自带全部信息的独立帧,视频序列中的第一个帧始终都是I帧,其无需参考其它图像便可独立进行解码。如果所传输的比特流遭到破坏,则需要将I帧用作新的起始点或重新同步点;P帧也称为帧间预测编码帧,P帧不能够独立解码,必须参考前面的I帧或P帧才能进行编码。与I帧相比,P帧通常占用更少的数据位,但由于P帧对前面的P帧和I帧有着复杂的依赖性,因此对传输错误非常敏感。
视频播放时必须先解码I帧,再解码依赖该I帧的P帧,方可正确解码,清晰播放,否则会出现花屏或者无法播放。
在视频倒放时,由于P帧无法单独解码播放,必须依赖I帧解码,而在原始视频文件的倒播过程中,I帧始终处于依赖I帧的P帧之后,因此需要为P帧寻找I帧,在找到P帧所依赖的I帧之后,才可以进行视频的解码播放。目前视频倒放方法一般为单帧播放方式,播放时,设置数据存放缓冲区和数据解码缓冲区,倒着读文件,遇到P帧先放入数据存放缓冲区,直至遇到I帧并将I帧存入数据存放缓冲区,然后,解码数据存放缓冲区中依赖此I帧的所有P帧保存至数据解码缓冲区,完成后,从数据解码缓冲区中取出解码好的数据来播放。这种方法在寻找I帧和缓冲区数据读写过程中耗费了大量时间,导致解码速度慢,因此在实时倒放时会产生卡顿或花屏现象,无法保证流畅的倒放,而为解决视频倒放时卡顿和花屏问题,重点是提升倒放视频的解码速度。
发明内容
为此,本发明提供了一种视频倒放的方法,本方法通过对原始视频文件进行预处理,节省了视频倒放时的寻找I帧和缓冲区读写的时间,显著提升了解码速度,保证了视频倒放过程的流畅性。
本发明解决上述技术问题的技术方案如下:
一种视频倒放的方法,包括以下步骤:
S1、对原视频文件进行预处理,生成适用于视频倒放的新视频文件;
所述预处理包括将原视频文件中的所有I帧逆序存储,并将I帧存储于依赖所述I帧的P帧之前;
S2、对所述新视频文件正向播放。
优选的,S1中预处理方法包括以下步骤:
S11、逆向读取原视频文件,若读取结果为P帧,则将所述P帧加入缓冲区,若读取结果为I帧,则将所述I帧写入新视频文件,进行步骤S12;
S12、判断所述缓冲区是否为空,若非空,则进行S13,若为空,则进行S14;
S13、将缓冲区内容按写入所述缓冲区的先后顺序,依次写入所述新视频文件,清空队列缓冲区;
S14、判断是否已经读取到原视频文件尾部,若是,则保存新视频文件,预处理结束;若否,继续进行S11。
优选的,所述缓冲区为队列缓冲区。
优选的,在S13中从队列缓冲区头部取出缓冲区中数据,并将所述数据写入新视频文件。
优选的,S2中所述正向播放方法为:
正向读取新视频文件,根据P帧所依赖的I帧依次对所述P帧解码并播放。
优选的,所述正向播放方法中,遇到I帧只解码不播放。
优选的,所述I帧是一种自带全部信息的独立帧,无需参考其它数据便可独立进行编解码;所述P帧需要依赖与所述P帧相关的I帧进行编解码。
本发明的有益效果是:
本发明通过对原始视频文件预处理生成了新的视频文件,而使用新的视频文件在视频倒放的过程中,节省了视频倒放时的寻找I帧和缓冲区读写的时间,显著提升了解码速度,保证了视频倒放过程的流畅性,从而解决视频倒放时卡顿和花屏问题。
附图说明
图1为传统的视频文件存储方式;
图2为本发明预处理后的视频文件的存储方式;
图3为本发明预处理的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
在一个实施例中,一种视频倒放的方法,包括以下步骤:
S1、对原视频文件进行预处理,生成适用于视频倒放的新视频文件;所述预处理包括将原视频文件中的所有I帧逆序存储,并将I帧存储于依赖所述I帧的P帧之前;
S2、对所述新视频文件正向播放。
原视频文件如图1,其中,I代表关键帧I帧,P代表P帧,原视频文件按如下结构存储:
I1-P101-P102-P103……P124-I2-P201-P202-P203……P224……,
以I1-P101-P102-P103……P124这段数据为例,原视频文件先保存I1帧,然后是依赖I1帧解码的P101-P124等P帧,但是,在倒放时,应该先播放P124,再播放P123...最后播放I1帧,而P124、P123...P101等P帧必须在I1帧解码后才能正确解码。因此,普通倒放方法为:在倒放时需要设置数据存放缓冲区和数据解码缓冲区,倒着读文件,遇到P124、P123...P101先放入数据存放缓冲区,直至遇到I1帧并将I1帧存入数据存放缓冲区,然后,依次解码数据存放缓冲区中的P124、P123...P101并将解码结果保存至数据解码缓冲区,完成后,从数据解码缓冲区中取出解码好的数据来播放,而这种寻找I1帧和缓冲区读写的过程都需要耗费大量时间。
为实现流畅倒放,本方法S1对视频文件进行预处理生成了新视频文件,对应于图1的原视频文件的所述新视频文件结构如图2所示为:
……I2-P224-P223-P222……P201-I1-P124-P123-P122……P101,新视频文件的数据存储顺序与视频倒放时对数据的解码顺序相一致。在所述新视频文件中的所有I帧的存储顺序与原视频文件中的I帧存储顺序相反,依赖于所述I帧的P帧存储于所述I帧与所述I帧存储位置的下一个I帧之间,依赖于所述I帧的所有P帧的存储顺序与原视频中相应的P帧存储顺序相反。
预处理过程如图3所示,包括:
S11、逆向读取原视频文件,若读取结果为P帧,则将所述P帧加入队列缓冲区尾部,若读取结果为I帧,则将所述I帧写入新视频文件,进行步骤S12;
S12、判断所述队列缓冲区是否为空,若非空,则进行S13,若为空,则进行S14;
S13、将队列缓冲区头部内容依次取出并写入所述新视频文件,清空队列缓冲区;
S14、判断是否已经读取到原视频文件尾部,若是,则保存新视频文件,预处理结束;若否,继续进行S11。
S2中所述正向播放方法为:
正向读取新视频文件,根据P帧所依赖的I帧依次对所述P帧解码并播放。
优选的,所述正向播放方法中,遇到I帧只解码不播放。
优选的,所述I帧是一种自带全部信息的独立帧,无需参考其它数据便可独立进行编解码;所述P帧需要依赖与所述P帧相关的I帧进行编解码。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (4)
1.一种视频倒放的方法,其特征在于,包括以下步骤:
S1、对原视频文件进行预处理,生成适用于视频倒放的新视频文件;所述新视频文件的数据存储顺序与视频倒放时对数据的解码顺序相一致;
所述预处理包括将原视频文件中的所有I帧逆序存储,并将I帧存储于依赖所述I帧的P帧之前;包括:所述新视频文件中的所有I帧的存储顺序与原视频文件中的I帧存储顺序相反,依赖于所述I帧的P帧存储于所述I帧与所述I帧存储位置的下一个I帧之间,依赖于所述I帧的所有P帧的存储顺序与原视频中相应的P帧存储顺序相反;
S2、对所述新视频文件正向播放;所述正向播放方法为:正向读取新视频文件,根据P帧所依赖的I帧依次对所述P帧解码并播放;所述正向播放方法中,遇到I帧只解码不播放。
2.根据权利要求1所述的一种视频倒放的方法,其特征在于,S1中预处理方法包括以下步骤:
S11、逆向读取原视频文件,若读取结果为P帧,则将所述P帧加入队列缓冲区,进行步骤S12;若读取结果为I帧,则将所述I帧写入新视频文件,进行步骤S12;
S12、判断所述队列缓冲区是否为空,若非空,则进行S13,若为空,则进行S14;
S13、将队列缓冲区内容按写入所述队列缓冲区的先后顺序,依次写入所述新视频文件,清空队列缓冲区;
S14、判断是否已经读取到原视频文件尾部,若是,则保存新视频文件,预处理结束;若否,继续进行S11。
3.根据权利要求2所述的一种视频倒放的方法,其特征在于,在S13中从队列缓冲区头部取出缓冲区中数据,并将所述数据写入新视频文件。
4.根据权利要求1所述的一种视频倒放的方法,其特征在于,所述I帧是一种自带全部信息的独立帧,无需参考其它数据便可独立进行编解码;所述P帧需要依赖与所述P帧相关的I帧进行编解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510303283.1A CN105025357B (zh) | 2015-06-05 | 2015-06-05 | 一种视频倒放的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510303283.1A CN105025357B (zh) | 2015-06-05 | 2015-06-05 | 一种视频倒放的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105025357A CN105025357A (zh) | 2015-11-04 |
CN105025357B true CN105025357B (zh) | 2018-06-08 |
Family
ID=54415003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510303283.1A Active CN105025357B (zh) | 2015-06-05 | 2015-06-05 | 一种视频倒放的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105025357B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105898626A (zh) * | 2015-12-11 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 用于生成倒播视频的方法、装置及播放设备 |
CN106331718A (zh) * | 2016-08-31 | 2017-01-11 | 浙江大华技术股份有限公司 | 一种视频倒放方法及装置 |
CN106507204B (zh) * | 2016-12-07 | 2020-03-17 | 腾讯科技(上海)有限公司 | 一种视频倒放方法和装置 |
CN108184161B (zh) * | 2017-12-26 | 2021-01-01 | 努比亚技术有限公司 | 一种视频播放方法、移动终端及计算机可读存储介质 |
CN110351553B (zh) * | 2018-04-08 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 视频倒播、视频倒播数据处理方法、装置和计算机设备 |
CN111447486A (zh) * | 2020-04-07 | 2020-07-24 | 上海熙菱信息技术有限公司 | 一种历史码流正向推送的倒放方法 |
CN113973225A (zh) * | 2020-07-22 | 2022-01-25 | 阿里巴巴集团控股有限公司 | 视频倒播方法和装置,计算机存储介质和电子设备 |
CN112911389B (zh) * | 2021-01-18 | 2022-09-06 | 浙江大华技术股份有限公司 | 一种视频播放切换方法、电子设备和计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000021294A1 (en) * | 1998-10-05 | 2000-04-13 | Panasonic Technologies, Inc. | Algorithm for fast forward and fast rewind of mpeg streams |
CN102332284A (zh) * | 2011-08-29 | 2012-01-25 | 上海文广科技(集团)有限公司 | 适用于数字媒体播出的多媒体数据处理方法及其处理系统 |
CN103974014A (zh) * | 2014-05-06 | 2014-08-06 | 浙江宇视科技有限公司 | 一种视频倒退回放方法及装置 |
CN104185982A (zh) * | 2012-02-29 | 2014-12-03 | 远升科技股份有限公司 | 视频处理方法和实施所述方法的视频设备 |
CN104602117A (zh) * | 2015-01-31 | 2015-05-06 | 华为技术有限公司 | 一种倍速播放视频的方法及装置 |
-
2015
- 2015-06-05 CN CN201510303283.1A patent/CN105025357B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000021294A1 (en) * | 1998-10-05 | 2000-04-13 | Panasonic Technologies, Inc. | Algorithm for fast forward and fast rewind of mpeg streams |
CN102332284A (zh) * | 2011-08-29 | 2012-01-25 | 上海文广科技(集团)有限公司 | 适用于数字媒体播出的多媒体数据处理方法及其处理系统 |
CN104185982A (zh) * | 2012-02-29 | 2014-12-03 | 远升科技股份有限公司 | 视频处理方法和实施所述方法的视频设备 |
CN103974014A (zh) * | 2014-05-06 | 2014-08-06 | 浙江宇视科技有限公司 | 一种视频倒退回放方法及装置 |
CN104602117A (zh) * | 2015-01-31 | 2015-05-06 | 华为技术有限公司 | 一种倍速播放视频的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105025357A (zh) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105025357B (zh) | 一种视频倒放的方法 | |
CN106231348B (zh) | 一种gop数据的回放方法、装置和系统 | |
CN110366033A (zh) | 一种视频播放方法、装置、设备及存储介质 | |
US6642966B1 (en) | Subliminally embedded keys in video for synchronization | |
US9832147B2 (en) | Email sending and receiving method and terminal | |
EP4329323A3 (en) | Dynamic conditionaladvertisement insertion | |
CN104394456B (zh) | 一种嵌入式环境下音视频解码的方法及装置 | |
BRPI0409996A (pt) | aparelho para reprodução de dados de multimìdia, método de recepção de dados de áudio, método de cálculo de uma localização de dados de áudio, mìdia de gravação na qual se encontram gravados meta-dados de áudio, mìdia passìvel de leitura em computador tendo gravado na mesma um programa passìvel de leitura em computador para execução de um método de recepção de dados de áudio, e mìdia passìvel de leitura em computador tendo gravado na mesma um programa passìvel de leitura em computador para execução de um método para cálculo de uma localização de dados de áudio | |
EP1195996A3 (en) | Apparatus, method and computer program product for decoding and reproducing moving images, time control method and multimedia information receiving apparatus | |
RU2006131586A (ru) | Декодер текстовых субтитров и способ декодирования потоков текстовых субтитров | |
SG148170A1 (en) | Storage medium storing text-based subtitle data including style information, and apparatus and method of playing back the storage medium | |
CN104703027B (zh) | 视频帧的解码方法和装置 | |
SG150541A1 (en) | Storage medium for storing text-based subtitle data including style information, and apparatus and method reproducing thereof | |
WO2006071937A3 (en) | System and method for efficient use of memory device bandwidth | |
EP1679706A4 (en) | PLAYBACK DEVICE, PLAYER DEVICE CONTROL METHOD, CONTENT RECORDING MEDIUM, DATA STRUCTURE, CONTROL PROGRAM, AND THE CONTROL PROGRAM SAVING THE COMPUTER READABLE RECORDING MEDIUM | |
CN108093293A (zh) | 一种视频渲染方法及系统 | |
KR20020064776A (ko) | Mpeg-4 인코더 및 그 인코더의 출력 코딩된 신호 | |
CN103716573A (zh) | 一种视频回放的方法和设备 | |
US20150189120A1 (en) | Method of Combining Image Files and Other Files | |
CN103745682B (zh) | 一种异步级联的方法 | |
CN109511008A (zh) | 一种基于对象存储支持视音频文件内容追加的方法 | |
US8369456B2 (en) | Data processing apparatus and method and encoding device | |
KR20080095726A (ko) | 패킷 생성과 처리에 관한 방법 및 그 장치 | |
CN102340705A (zh) | 一种获取关键帧的系统及方法 | |
EP1635566A3 (en) | Decode control apparatus, decode control method, computer program, and recording medium |
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 |