CN113923456B - 视频处理方法及装置 - Google Patents

视频处理方法及装置 Download PDF

Info

Publication number
CN113923456B
CN113923456B CN202111164726.5A CN202111164726A CN113923456B CN 113923456 B CN113923456 B CN 113923456B CN 202111164726 A CN202111164726 A CN 202111164726A CN 113923456 B CN113923456 B CN 113923456B
Authority
CN
China
Prior art keywords
frame
video
gop
decoding
decoded
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
Application number
CN202111164726.5A
Other languages
English (en)
Other versions
CN113923456A (zh
Inventor
李林超
林炳河
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gaoding Xiamen Technology Co Ltd
Original Assignee
Gaoding Xiamen Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Gaoding Xiamen Technology Co Ltd filed Critical Gaoding Xiamen Technology Co Ltd
Priority to CN202111164726.5A priority Critical patent/CN113923456B/zh
Publication of CN113923456A publication Critical patent/CN113923456A/zh
Application granted granted Critical
Publication of CN113923456B publication Critical patent/CN113923456B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Abstract

本公开涉及一种视频处理方法及装置。所述方法包括:获取待处理视频;按照倒序依次对所述待处理视频的每个GOP进行处理;其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码。本公开的视频处理方法和装置,通过对待处理视频的GOP依次进行编解码,有效减少内存占用,避免因内存不足而出现OOM问题。

Description

视频处理方法及装置
技术领域
本公开一般地涉及计算机技术领域。更具体地,本公开涉及一种视频处理方法及装置。
背景技术
目前市面上很多工具和软件都可以提供视频倒放功能,但是现有的视频倒放技术效率较低,且占用内存较大,很容易引起OOM(out-of-memory)的问题,继而引起系统崩溃。
现有技术常通过ffmpeg实现视频倒放,倒放前将视频中所有的帧数据一次性保存在内存中开辟的队列中,然后逆序该队列以达到视频倒放的效果。如此占用较大内存,易引起OOM的问题。此外,另有部分应用软件采用文件处理技术来生成一个中间文件,逆序读取该中间文件达到倒放效果。该种方法同样存在上述类似的问题。
而且,上述方法均需首先将视频进行解码,然后将解码获得的帧数据按照逆序进行存储,最后将逆序存储的帧数据进行编码,解码、存储、编码过程依次进行,使得视频处理时间较长,效率较低。
因此如何获得一种效率较高且占用内存较小的视频处理方法以实现视频倒放为现有技术中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种视频处理方法及装置。
根据本公开的第一方面,本公开提供了一种视频处理方法,其中,所述方法包括:获取待处理视频;按照倒序依次对所述待处理视频的每个GOP进行处理;其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码。
可选地,所述对GOP进行解码,并按照倒序将解码获得的视频帧进行存储包括:判断加载待解码GOP所需占用的内存空间与剩余内存空间的大小关系;在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至帧缓存队列;在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至临时文件。
可选地,所述加载所述待解码GOP所需占用的内存空间的获得方法包括:根据所述待解码GOP的时长及所述待处理视频的帧率获得所述待解码GOP的总帧数;根据所述总帧数及所述待处理视频的分辨率和色彩格式获得加载所述待解码GOP所需占用的内存空间。
可选地,所述对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至帧缓存队列包括:从所述待解码GOP的关键帧开始进行逐帧解码并逐帧存储,每解码获得一帧视频帧,均从帧队列的头部存入所述帧缓存队列,直至所述待解码GOP解码完毕,且解码获得的最后一帧视频帧存入所述帧缓存队列的头部。
可选地,所述获取所述视频帧并进行编码包括:按照从头部到尾部的顺序获取所述帧缓存队列中所有视频帧,并进行编码。
可选地,所述对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至临时文件包括:从所述待解码GOP的关键帧开始进行逐帧解码并逐帧存储,每解码获得一帧视频帧,均从文件头写入所述临时文件,直至所述待解码GOP解码完毕,且解码获得的最后一帧视频帧写入所述临时文件的文件头。
可选地,所述获取所述视频帧并进行编码包括:按照从文件头到文件尾的顺序获取所述临时文件中所有视频帧,并进行编码。
根据本公开的第二方面,本公开提供了一种视频处理装置,其中,所述装置包括:获取模块,其配置为用于获取待处理视频;解码模块,其配置为用于对所述待处理视频的GOP进行解码;存储模块,其配置为按照倒序将解码获得的视频帧进行存储;编码模块,其配置为用于获取所述视频帧并进行编码。
可选地,所述解码模块用于对待解码GOP进行逐帧解码;所述存储模块包括判断子单元,所述判断子单元用于判断加载所述待解码GOP所需占用的内存空间与剩余内存空间的大小关系;所述存储模块用于采取如下方式将解码获得的视频帧进行存储:在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,按照倒序将解码获得的视频帧存储至帧缓存队列;在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,按照倒序将解码获得的视频帧存储至临时文件。
可选地,所述判断子单元用于采取如下方式获得加载所述待解码GOP所需占用的内存空间:根据所述待解码GOP的时长及所述待处理视频的帧率获得所述待解码GOP的总帧数;根据所述总帧数及所述待处理视频的分辨率和色彩格式获得加载所述待解码GOP所需占用的内存空间。
可选地,所述解码模块用于从所述待解码GOP的关键帧开始进行逐帧解码;所述存储模块用于将解码获得的视频帧进行逐帧存储,每帧视频帧均从帧队列的头部存入所述帧缓存队列。
可选地,所述编码模块用于采取如下方式获取所述视频帧并进行编码:按照从头部到尾部的顺序获取所述帧缓存队列中所有视频帧,并进行编码。
可选地,所述解码模块用于从所述待解码GOP的关键帧开始进行逐帧解码;所述存储模块用于将解码获得的视频帧进行逐帧存储,每帧视频帧均从文件头写入所述临时文件。
可选地,所述编码模块用于采取如下方式获取所述视频帧并进行编码:按照从文件头到文件尾的顺序获取所述临时文件中所有视频帧,并进行编码。
根据本公开的第三方面,本公开提供了一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现上述本公开的第一方面的方法。
根据本公开的第四方面,本公开提供了一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现上述本公开的第一方面的方法。
本公开的视频处理方法和装置,通过对待处理视频的各个GOP依次进行编解码,有效减少内存占用,避免因内存不足而出现OOM问题;此外,通过合理控制GOP的解码线程与编码线程,进一步减少了视频编解码的总耗时,有效提高了视频处理效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本公开的一个实施例的视频处理方法的流程图;
图2是示出根据本公开的一个实施例的视频处理装置的示意性框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
下面结合附图来详细描述本公开的具体实施方式。
本公开提供了一种视频处理方法。参照图1,图1是示出根据本公开的一个实施例的视频处理方法的流程图。如图1中所示,所述方法包括以下步骤S101-S102。步骤S101:获取待处理视频。步骤S102:按照倒序依次对所述待处理视频的每个GOP进行处理;其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码。
本实施例的视频处理方法和装置,通过对GOP依次进行编解码,有效减少内存占用,避免因内存不足而出现OOM问题。
在步骤S101中,可以获取待处理视频。
根据本公开的实施例,为了对视频进行处理,首先应获取待处理视频。待处理视频可以是由用户上传,也可以是由相关人员编辑生成,在此不做特别限定。
在步骤S102中,可以按照倒序依次对所述待处理视频的每个GOP进行处理;其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码。
目前大多数视频文件采用h264/h265的编码格式,为了提高压缩率,设定了I/P/B三种帧类型:I帧(Intra coded frames)即关键帧,记录了一帧图像所有的信息;P帧(Predicted frames)和B帧(Bi-directional predicted frames)记录了相对I帧的变化,其中,P帧为前向预测帧,表示跟前一帧的差别;B帧为双向内插帧,表示前后帧差别。没有I帧,P帧和B帧则无法解码。为了不影响编码后的视频质量,提出了GOP(Group of Pictures)的定义,即画面组,GOP内存放的是一组连续的画面,每个GOP的第一帧为关键帧,意味着每个GOP可以独立解码。对于场景变化比较大的情况,如果GOP很大则会出现画面质量降低的问题,则可以根据画面场景自动添加IDR帧来保证画面质量不会降低。
根据本公开的实施例,首先获取待处理视频的GOP。具体地,打开待处理视频,读取帧率FPS(Frames Per Second)、宽、高等信息之后对其进行解码;然后对解码后的视频数据进行解封装,从第一帧开始逐帧判断是否是关键帧,如果是关键帧则将这一关键帧保存在一个数组中,直到读到下一个关键帧,则获得一个GOP。以此类推,直至读到文件末尾(EOF)判断完所有的视频帧,获得待处理视频的所有GOP。GOP的获取方法不限于上述方法,可采用任何公知的其它方法,在此不再赘述。
在获取到待处理视频的GOP后,可以按照倒序从最后一个GOP开始进行解码,解码GOP获得的视频帧按照倒序进行存储,然后顺次获取该GOP的所有视频帧并进行编码;依次类推,直至第一个GOP解码后获得的所有视频帧编码完成。
优选地,所述对GOP进行解码,并按照倒序将解码获得的视频帧进行存储包括:判断加载待解码GOP所需占用的内存空间与剩余内存空间的大小关系;在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至帧缓存队列;在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至临时文件。
其中,所述加载所述待解码GOP所需占用的内存空间的获得方法包括:根据所述待解码GOP的时长及所述待处理视频的帧率获得所述待解码GOP的总帧数;根据所述总帧数及所述待处理视频的分辨率和色彩格式获得加载所述待解码GOP所需占用的内存空间。
具体地,以待处理视频的最后一个GOP为例,加载该最后一个GOP所需占用的内存空间的获得方法包括:计算待处理视频的最后一个关键帧距离文件末尾的时长,并根据该最后一个GOP的时长及该待处理视频的帧率FPS计算出该最后一个GOP内的总帧数(GOP内总帧数=GOP时长/FPS),然后根据计算的总帧数及该待处理视频的分辨率和色彩格式计算出加载该最后一个GOP所占用的内存大小(以分辨率1920*1080、色彩格式为YUV420P、帧率30fps的视频为例,加载时长为10s的GOP所占用的内存大小=1920*1080*1.5*10*1000/30=1036.8M)。按照上述方法,可计算获得加载待处理视频中任一个GOP所需占用的内存空间大小。
判断加载待解码GOP所需占用的内存空间与剩余内存空间的大小关系,若剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数(例如可以设置为1.2倍),则将解码该GOP获得的视频帧按照倒序存储至帧缓存队列;否则存储至临时文件。预设倍数可根据实际需要设置,以保证剩余内存不会导致设备产生OOM的问题为准。
优选地,所述按照倒序将解码获得的视频帧进行存储包括:从所述待解码GOP的关键帧开始进行逐帧解码并逐帧存储,每解码获得一帧视频帧,均从帧队列的头部存入所述帧缓存队列,直至所述待解码GOP解码完毕,且解码获得的最后一帧视频帧存入所述帧缓存队列的头部;或者,从所述待解码GOP的关键帧开始进行逐帧解码并逐帧存储,每解码获得一帧视频帧,均从文件头写入所述临时文件,直至所述待解码GOP解码完毕,且解码获得的最后一帧视频帧写入所述临时文件的文件头。
需要说明的是,解码每一个GOP之前均对加载当前待解码GOP所需占用的内存空间与当前剩余内存空间的大小关系进行判断,从而根据判断结果选择上述两种存储方式之一对解码GOP获得的视频帧进行存储。
与不同的存储方式相对应,所述获取所述视频帧并进行编码包括:按照从头部到尾部的顺序获取所述帧缓存队列中所有视频帧,并进行编码;或者,按照从文件头到文件尾的顺序获取所述临时文件中所有视频帧,并进行编码。
具体地,在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数(例如1.2倍)的情况下,从该待解码GOP的关键帧位置处开始解码,解码获得的每一帧视频帧均从帧队列的头部存入帧缓存队列中,如此,帧缓存队列中的视频帧的顺序与解码的视频帧的顺序相反。在解码GOP并对获得的视频帧进行存储的过程中,编码线程处于等待取帧状态,在当前GOP尚未解码完成的情况下,编码线程的取帧状态为false,直到当前GOP解码完成,解码线程通知帧缓存队列当前GOP解码完成,编码线程开始取帧,取完帧缓存队列中所有的视频帧之后,编码线程的取帧状态重新为false,等待下一个GOP的解码。
在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数(例如1.2倍)的情况下,创建一个临时文件,从该待解码GOP的关键帧位置处开始解码,首先将文件指针通过fseek移动到文件头的位置,随后将解码获得的视频帧写进文件中,继续解码下一帧,重复以上步骤,以使解码GOP获得的每一帧视频帧均从文件头写入该临时文件,从而保证了临时文件中保存的视频帧的顺序和解码的视频帧的顺序相反,当前GOP解码完成后,通知编码线程取数据,编码线程取数据时打开该临时文件,顺序地读取该临时文件,如此读取的视频帧的顺序为倒序的视频帧,当编码线程取帧结束后取帧状态变为false,等到下一个GOP解码。
可以理解的是,下一个GOP的解码线程可以与当前GOP的编码线程并行,如此可以有效缩短视频处理的时间,提高视频处理效率。
当关键帧数组里面的所有帧被解码完成之后,向帧缓存队列放入一帧空帧,以通知编码线程结束编码,编码线程获取该空帧编码后刷出帧缓存队列内所有帧,写MP4文件尾,完成整体编码工作。
本实施例的视频处理方法,将待处理视频的GOP按照倒序进行处理,仅当前GOP解码获得的视频帧存储于帧缓存队列或临时文件,有效降低了内存空间的占用;此外,除第一个GOP外,其余GOP的编码线程可以与GOP的解码线程并行处理,有效缩短了视频处理时间,提高了视频处理效率。
本公开还提供了一种视频处理装置。该装置用于执行以上结合图1所描述的视频处理方法实施例中的步骤。
参照图2,图2是示出根据本公开的一个实施例的视频处理装置100的示意性框图。该装置100包括获取模块101、解码模块102、存储模块103和编码模块104。该获取模块101配置为用于获取待处理视频。该解码模块102配置为用于对所述待处理视频的GOP进行解码。该存储模块103配置为用于按照倒序将解码获得的视频帧进行存储。该编码模块104配置为用于获取所述视频帧并进行编码。
根据本公开的实施例,解码模块102用于对待解码GOP进行逐帧解码;存储模块103包括判断子单元,所述判断子单元用于判断加载所述待解码GOP所需占用的内存空间与剩余内存空间的大小关系;存储模块103用于采取如下方式将解码获得的视频帧进行存储:在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,按照倒序将解码获得的视频帧存储至帧缓存队列;在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,按照倒序将解码获得的视频帧存储至临时文件。
其中,所述判断子单元用于采取如下方式获得加载所述待解码GOP所需占用的内存空间:根据所述待解码GOP的时长及所述待处理视频的帧率获得所述待解码GOP的总帧数;根据所述总帧数及所述待处理视频的分辨率和色彩格式获得加载所述待解码GOP所需占用的内存空间。
优选地,对应于剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况,解码模块102用于从所述待解码GOP的关键帧开始进行逐帧解码;存储模块103用于将解码获得的视频帧进行逐帧存储,每帧视频帧均从帧队列的头部存入所述帧缓存队列;编码模块104用于采取如下方式获取所述视频帧并进行编码:按照从头部到尾部的顺序获取所述帧缓存队列中所有视频帧,并进行编码。
另一种优选实施例,对应于剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况,解码模块102用于从所述待解码GOP的关键帧开始进行逐帧解码;存储模块103用于将解码获得的视频帧进行逐帧存储,每帧视频帧均从文件头写入所述临时文件;编码模块104用于采取如下方式获取所述视频帧并进行编码:按照从文件头到文件尾的顺序获取所述临时文件中所有视频帧,并进行编码。
可以理解的是,解码模块102例如可以是解码线程,存储模块103例如可以是帧缓冲队列和/或临时文件,编码模块104例如可以是编码线程。
关于以上参照图2描述的实施例中的视频处理装置,其中各个模块执行操作的具体方式已经在结合图1所描述的视频处理方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供了一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如下步骤:获取待处理视频;按照倒序依次对所述待处理视频的每个GOP进行处理;其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码。
可以理解的是,所述处理器执行所述计算机程序时实现的步骤与上述方法中的各个步骤的实现方式基本一致,具体方式已经在有关视频处理方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在另一方面中,本公开提供一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现如下步骤:获取待处理视频;按照倒序依次对所述待处理视频的每个GOP进行处理;其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码。
可以理解的是,所述处理器执行所述计算机程序时实现的步骤与上述方法中的各个步骤的实现方式基本一致,具体方式已经在有关视频处理方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”和“第二”、等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (6)

1.一种视频处理方法,其中,所述方法包括:
获取待处理视频;
按照倒序依次对所述待处理视频的每个GOP进行处理;
其中,每个GOP的处理方法包括:对GOP进行解码,并按照倒序将解码获得的视频帧进行存储;获取所述视频帧并进行编码;
所述对GOP进行解码,并按照倒序将解码获得的视频帧进行存储包括:
判断加载待解码GOP所需占用的内存空间与剩余内存空间的大小关系;
在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至帧缓存队列;
在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至临时文件;
所述加载所述待解码GOP所需占用的内存空间的获得方法包括:
根据所述待解码GOP的时长及所述待处理视频的帧率获得所述待解码GOP的总帧数;
根据所述总帧数及所述待处理视频的分辨率和色彩格式获得加载所述待解码GOP所需占用的内存空间;
所述获取所述视频帧并进行编码包括:
按照从头部到尾部的顺序获取所述帧缓存队列中所有视频帧,并进行编码;
对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至帧缓存队列包括:
从所述待解码GOP的关键帧开始进行逐帧解码并逐帧存储,每解码获得一帧视频帧,均从帧队列的头部存入所述帧缓存队列,直至所述待解码GOP解码完毕,且解码获得的最后一帧视频帧存入所述帧缓存队列的头部;
所述对所述待解码GOP进行逐帧解码,并按照倒序将解码获得的视频帧存储至临时文件包括:
从所述待解码GOP的关键帧开始进行逐帧解码并逐帧存储,每解码获得一帧视频帧,均从文件头写入所述临时文件,直至所述待解码GOP解码完毕,且解码获得的最后一帧视频帧写入所述临时文件的文件头;
当关键帧数组里面的所有帧被解码完成之后,向帧缓存队列放入一帧空帧,以通知编码线程结束编码,编码线程获取该空帧编码后刷出帧缓存队列内所有帧,写 MP4 文件尾,完成整体编码工作。
2.根据权利要求1所述的视频处理方法,其中,所述获取所述视频帧并进行编码包括:
按照从文件头到文件尾的顺序获取所述临时文件中所有视频帧,并进行编码。
3.一种视频处理装置,其中,所述装置包括:
获取模块,其配置为用于获取待处理视频;
解码模块,其配置为用于对所述待处理视频的GOP进行解码;
存储模块,其配置为用于按照倒序将解码获得的视频帧进行存储;
编码模块,其配置为用于获取所述视频帧并进行编码;
所述解码模块用于对待解码GOP进行逐帧解码;所述存储模块包括判断子单元,所述判断子单元用于判断加载所述待解码GOP所需占用的内存空间与剩余内存空间的大小关系;所述存储模块用于采取如下方式将解码获得的视频帧进行存储:
所述解码模块用于从所述待解码GOP的关键帧开始进行逐帧解码;
在剩余内存空间大于或等于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,按照倒序将解码获得的视频帧存储至帧缓存队列,所述存储模块用于将解码获得的视频帧进行逐帧存储,每帧视频帧均从帧队列的头部存入所述帧缓存队列;
在剩余内存空间小于加载所述待解码GOP所需占用的内存空间的预设倍数的情况下,按照倒序将解码获得的视频帧存储至临时文件,所述存储模块配置为用于将解码获得的视频帧进行逐帧存储,每帧视频帧均从文件头写入所述临时文件;
所述判断子单元用于采取如下方式获得加载所述待解码GOP所需占用的内存空间:
根据所述待解码GOP的时长及所述待处理视频的帧率获得所述待解码GOP的总帧数;
根据所述总帧数及所述待处理视频的分辨率和色彩格式获得加载所述待解码GOP所需占用的内存空间;
所述编码模块用于采取如下方式获取所述视频帧并进行编码:
按照从头部到尾部的顺序获取所述帧缓存队列中所有视频帧,并进行编码;
当关键帧数组里面的所有帧被解码完成之后,向帧缓存队列放入一帧空帧,以通知编码线程结束编码,编码线程获取该空帧编码后刷出帧缓存队列内所有帧,写 MP4 文件尾,完成整体编码工作。
4.根据权利要求3所述的视频处理装置,其中,所述编码模块用于采取如下方式获取所述视频帧并进行编码:
按照从文件头到文件尾的顺序获取所述临时文件中所有视频帧,并进行编码。
5.一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1或2所述的方法。
6.一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现如权利要求1或2所述的方法。
CN202111164726.5A 2021-09-30 2021-09-30 视频处理方法及装置 Active CN113923456B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111164726.5A CN113923456B (zh) 2021-09-30 2021-09-30 视频处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111164726.5A CN113923456B (zh) 2021-09-30 2021-09-30 视频处理方法及装置

Publications (2)

Publication Number Publication Date
CN113923456A CN113923456A (zh) 2022-01-11
CN113923456B true CN113923456B (zh) 2022-12-13

Family

ID=79237835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111164726.5A Active CN113923456B (zh) 2021-09-30 2021-09-30 视频处理方法及装置

Country Status (1)

Country Link
CN (1) CN113923456B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115866350B (zh) * 2022-11-28 2024-04-12 重庆紫光华山智安科技有限公司 视频倒放方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020019140A1 (zh) * 2018-07-23 2020-01-30 深圳市大疆创新科技有限公司 视频处理方法、终端设备、机器可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007312002A (ja) * 2006-05-17 2007-11-29 Toshiba Corp Mpegビデオ再生装置、およびmpegビデオ再生方法
US20100008642A1 (en) * 2008-07-14 2010-01-14 Mediatek Inc. Video apparatus and method thereof
CN101931808B (zh) * 2010-07-26 2013-08-07 华为技术有限公司 文件逆序播放方法及装置
CN105898626A (zh) * 2015-12-11 2016-08-24 乐视网信息技术(北京)股份有限公司 用于生成倒播视频的方法、装置及播放设备
EP3376766B1 (en) * 2017-03-14 2019-01-30 Axis AB Method and encoder system for determining gop length for encoding video
CN109819317A (zh) * 2019-01-07 2019-05-28 北京奇艺世纪科技有限公司 一种视频处理方法、装置、终端和存储介质
CN109889895A (zh) * 2019-03-13 2019-06-14 浙江大华技术股份有限公司 视频播放方法、装置、存储介质及电子装置
CN111464864B (zh) * 2020-04-02 2022-12-06 Oppo广东移动通信有限公司 倒序视频获取方法、装置、电子设备以及存储介质
CN112019856A (zh) * 2020-08-27 2020-12-01 上海七牛信息技术有限公司 一种用于智能手机的视频倒转方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020019140A1 (zh) * 2018-07-23 2020-01-30 深圳市大疆创新科技有限公司 视频处理方法、终端设备、机器可读存储介质

Also Published As

Publication number Publication date
CN113923456A (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
US7418190B2 (en) Accelerated access to frames from a compressed digital video stream without keyframes
JP3244629B2 (ja) シーン変化点検出方法
US8184700B2 (en) Image decoder
US7733379B2 (en) Composite still-image creating device capable of creating a still image from moving images
US9319682B2 (en) Moving image encoding apparatus, control method therefor, and non-transitory computer readable storage medium
CN113923456B (zh) 视频处理方法及装置
US8165217B2 (en) Image decoding apparatus and method for decoding prediction encoded image data
US20100086280A1 (en) Method for smoothly playing a video stream in reverse
US8300701B2 (en) Offspeed playback in a video editing system of video data compressed using long groups of pictures
JP2001086462A (ja) 動画像記録装置及び動画像再生装置
CN115866350B (zh) 视频倒放方法、装置、电子设备及存储介质
CN107623852B (zh) 一种对数字视频信号进行编码及降帧的方法及装置
TW571588B (en) Modifying video signals by converting non-intra pictures
JP5078538B2 (ja) 画像再生装置,およびその処理方法およびそのプログラム
JP4154799B2 (ja) 圧縮動画像編集装置および記憶媒体
US7999853B2 (en) Moving image reproducing apparatus and processing method therefor
JP5264526B2 (ja) 画像送信装置、画像送信方法及びプログラム
JP2007109329A (ja) 画像データ記録装置、画像データ再生装置、画像データ記録方法、プログラム及び記録媒体
JP3134672B2 (ja) 映像信号のコマ送り再生処理装置
JP2821395B2 (ja) 画像編集システム
CN114615549B (zh) 流媒体seek方法、客户端、存储介质和移动设备
JP2009100104A (ja) 動画像再生装置,およびその処理方法およびそのプログラム
CN116980606A (zh) 视频编码方法、视频解码方法、编码器、解码器以及介质
JP4250406B2 (ja) 記録方法、記録システム、プログラム及びコンピュータ読み取り可能な記録媒体
JP4796186B2 (ja) 可変長データのメモリ格納方法、および可変長データ記憶装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant