CN111225171A - 一种视频录制方法、装置、终端设备及计算机存储介质 - Google Patents
一种视频录制方法、装置、终端设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111225171A CN111225171A CN202010060381.8A CN202010060381A CN111225171A CN 111225171 A CN111225171 A CN 111225171A CN 202010060381 A CN202010060381 A CN 202010060381A CN 111225171 A CN111225171 A CN 111225171A
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- video frame
- processed
- image group
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种视频录制方法、装置、终端设备及计算机存储介质,该方法包括:在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。采用本发明实施例,能够避免出现录像延迟的现象,保证录像文件的完整性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种视频录制方法、装置、终端设备及计算机存储介质。
背景技术
在安防视频监控领域,各视频监控产品厂家均会提供客户端软件,方便用户随时查看实时监控、录像回放并对设备进行控制。客户端软件一般运行在移动终端,如笔记本电脑、手机,软件通过HTTP(Hyper Text Transfer Protocol,超文本传输协议)、RTSP(RealTime Streaming Protocol,实时流传输协议)等协议获取原始视频码流,使用FFMpeg(FastForward Mpeg)音视频解码库或终端硬件解码器对码流进行解码,得到YUV数据用于画面播放。其中,原始视频码流来自监控设备如IPC(IP Camera,网络摄像机)、IPC接入的NVR(Network Vi deo Recorder,网络硬盘录像机)或者设备所接入的平台软件等,一般使用如H.264、H.265等常见的视频编码方式进行编码。在播放实时预览或录像回放时,通过软件可以对正在播放的视频进行录制。
目前,录制正在播放的视频流方式主要为:在接收到视频录制请求时,等待至最近的I帧来临,在接收到I帧时才开始将送入如VLC(Video Lan Client)等视频播放器解码的视频帧同时输出写入到录像文件。但发明人在实施本发明的过程中发现,由于H.264、H.265编码方式是每隔一段时间才编码生成一个I帧,而在采用现有技术录制正在播放的视频流的过程中,有着等待I帧的过程,在接收到视频录制请求时,不能保证立刻开始录制,有可能会造成录像延迟,并导致所录制的录像文件缺失重要的视频信息,无法保证所录制的录像文件的完整性。
发明内容
本发明实施例提供一种视频录制方法、装置、终端设备及计算机存储介质,能够避免出现录像延迟的现象,保证录像文件的完整性。
为了实现上述目的,本发明实施例提供了一种视频录制方法,包括:
在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;
当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
作为上述方案的改进,所述的视频录制方法还包括步骤:
在检测到视频播放开启时,创建所述缓存模块。
作为上述方案的改进,所述的视频录制方法还包括步骤:
当接收到结束录像请求时,将已输出的所述最新缓存的图像组和所述最新缓存的图像组对应的音频数据恢复至所述缓存模块中。
作为上述方案的改进,所述在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中,具体为:
在接收到视频录制请求之前,以替换的方式将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中。
作为上述方案的改进,通过以下步骤将当前播放的视频帧所在的图像组实时缓存至缓存模块中:
S111、读取播放器的缓冲区中存储的第一个视频帧,并将所述第一个视频帧作为待处理视频帧;
S112、判断所述缓存模块的视频缓存单元中是否存在已缓存的视频帧,若是则跳转至步骤S114,若否则跳转至步骤S113;
S113、取出所述待处理视频帧,并判断所述待处理视频帧的类型是否为I帧,若是则将所述待处理视频帧存储至所述视频缓存单元并跳转至步骤S111,若否则丢弃所述待处理视频帧并跳转至步骤S111;
S114、获取当前播放时间;
S115、判断所述待处理视频帧所对应的时间是否小于或等于所述当前播放时间,若是则跳转至步骤S116,若否则跳转至步骤S111;
S116、取出所述待处理视频帧,根据所述待处理视频帧的类型,对所述待处理视频帧进行相应的缓存处理,并跳转至步骤S111。
作为上述方案的改进,所述根据所述待处理视频帧的帧类型,对所述待处理视频帧进行相应的缓存处理,具体包括:
当判断到所述待处理视频帧的类型为非I帧且为非虚拟I帧时,判断所述视频缓存单元中是否存在类型为I帧的视频帧,若是则将所述待处理视频帧拷贝至所述视频缓存单元,若否则丢弃所述待处理视频帧;
当判断到所述待处理视频帧的类型为I帧时,清除所述视频缓存单元内已缓存的视频帧,将所述待处理视频帧拷贝至所述视频缓存单元中,并将视频缓存时间更新为所述待处理视频帧所对应的时间;
当判断到所述待处理视频帧的类型为虚拟I帧时,清除所述视频缓存单元内类型为非I帧的视频帧,将类型为I帧的视频帧标记为仅解码,将所述待处理视频帧拷贝至所述视频缓存单元中,并将所述视频缓存时间更新为所述待处理视频帧所对应的时间。
作为上述方案的改进,通过以下步骤将当前播放的视频帧所在的图像组对应的音频数据实时缓存至缓存模块中:
S121、取出播放器的缓冲区中存储的第一个音频帧,并拷贝至所述缓存模块的音频缓存单元中;
S122、获取视频缓存时间;
S123、判断所述音频缓存单元中的第一个音频帧所对应的时间是否小于或等于所述视频缓存时间,若是则跳转至步骤S124,若否则跳转至步骤S121;
S124、丢弃所述音频缓存单元中的第一个音频帧,对所述音频缓存单元中的音频帧的位置信息进行更新,并跳转至步骤S123。
本发明实施例还提供了一种视频录制装置,包括:
缓存模块,用于在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;
录制模块,用于当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
本发明实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意一项所述的视频录制方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任意一项所述的视频录制方法。
与现有技术相比,本发明实施例提供的一种视频录制方法、装置、终端设备及计算机存储介质,在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;当接收到视频录制请求时,先将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,再将后续播放的音视频数据写入至所述录像文件中,从而实现对正在播放的视频的录制。通过上述方式,在接收到视频录制请求时,能立刻录制到当前正在播放的视频帧,无需等待新的I帧,能够避免出现录像延迟的现象,从而使得所录制的录像文件不会缺失视频信息,保证了录像文件的完整性。
附图说明
图1本发明提供的视频录制方法的一个实施例的流程示意图。
图2是本发明提供的视频录制方法的另一个实施例的流程示意图。
图3是本发明实施例提供的视频数据缓存方式的流程示意图。
图4是本发明实施例提供的视频缓存单元内视频帧变化的示意图。
图5是本发明实施例提供的音频数据缓存方式的流程示意图。
图6是本发明提供的视频录制装置的一个实施例的结构示意图。
图7是本发明提供的终端设备的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的视频录制方法的一个实施例的流程示意图。
本发明实施例提供的视频录制方法,应用于对正在播放的视频流进行录制的情况,包括步骤S1至步骤S2,具体如下:
S1、在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧。
其中,可以是预先设定一缓存模块,以在接收到视频录制请求之前,将包括在当前播放的视频帧之前且离该当前播放的视频帧最近的I帧(帧内编码帧)和该当前播放的视频帧的GOP(Group of Pictures)图像组,以及该图像组对应的音频数据实时缓存至缓存模块中,从而使得缓存模块中保存最近一个GOP的视频数据以及这个GOP时间内的音频数据,并且缓存模块保存的数据可直接解码播放,无需重新编码,且画面连续。
在一个可选的实施方式中,播放器将收到的视频流进行解析后,会将解码后的音视频数据存储至其内的缓冲区中。在接收到视频录制请求之前,可以是实时从播放器的缓冲区中获取当前播放的视频帧所在的图像组和该图像组对应的音频数据,以缓存至缓存模块中。
需要说明的是,缓存模块用于存储音视频数据的缓存,其可以是在检测视频开始播放时创建,也可以是预先设定,在此不做限定。优选地,在检测到视频播放开启时,创建所述缓存模块。
S2、当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
其中,当接收到视频录制请求时,将最新缓存的图像组和最新缓存的图像组对应的音频数据从缓存模块中取出,并写入至预先新建的录像文件中,再将后续播放的音视频数据写入至包含有最新缓存的图像组及其对应的音频数据的录像文件中,从而实现对正在播放的视频流的录制。可以理解的,根据H.264压缩原理,需要以I帧开头才能保证录像文件的视频帧能够被正常解码,而录像文件先写入包含有I帧的最新缓存的图像组,从而确保了在接收到视频录制请求时,无需等待新的I帧,即可立刻录制到当前正在播放的视频帧,保证了录像文件的完整性。
本发明实施例提供的视频录制方法,在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;当接收到视频录制请求时,先将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,再将后续播放的音视频数据写入至所述录像文件中,从而实现对正在播放的视频的录制。通过上述方式,在接收到视频录制请求时,能立刻录制到当前正在播放的视频帧,无需等待新的I帧,能够避免出现录像延迟的现象,从而使得所录制的录像文件不会缺失视频信息,保证了录像文件的完整性。
参见图2,是本发明提供的视频录制方法的另一个实施例的流程示意图。
本实施例与图1中的实施例的区别在于在步骤S2之后,还包括步骤S3:
S3、当接收到结束录像请求时,将已输出的所述最新缓存的图像组和所述最新缓存的图像组对应的音频数据恢复至所述缓存模块中。
在本实施例中,为避免短时间重复开启录像时,缓存内数据拷贝异常,即结束录像时缓存内的数据还未拷贝结束,通过当接收到结束录像请求时,先将已输出至录像文件的最新缓存的图像组和该最新缓存的图像组对应的音频数据恢复至缓存模块中:视频缓存恢复到I帧所在位置,音频缓存位置恢复到第一个音频帧位置,从而使得短时间内重复开启录制均能录到有效画面。
在一个可选的实施方式中,在接收到视频录制请求之前,以替换的方式将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中。也即,每播放到一个新的I帧,即一个新图像组的起始帧时,清空缓存模块内的视频数据,开始缓存新图像组的视频数据,并且,由于此时视频缓存时间更新了,音频缓存同样会按照新的时间做数据丢弃,以实现用当前播放的视频帧所在的图像组和该图像组对应的音频数据替换已存储的上一个播放的视频帧所在的图像组和该图像组对应的音频数据的方式进行缓存,从而使得缓存模块中存储的数据是最近一个GOP的视频数据以及这个GOP时间内的音频数据。
具体的,参见图3,通过以下步骤将当前播放的视频帧所在的图像组实时缓存至缓存模块中:
S111、读取播放器的缓冲区中存储的第一个视频帧,并将所述第一个视频帧作为待处理视频帧;
S112、判断所述缓存模块的视频缓存单元中是否存在已缓存的视频帧,若是则跳转至步骤S114,若否则跳转至步骤S113;
S113、取出所述待处理视频帧,并判断所述待处理视频帧的类型是否为I帧,若是则将所述待处理视频帧存储至所述视频缓存单元并跳转至步骤S111,若否则丢弃所述待处理视频帧并跳转至步骤S111;
S114、获取当前播放时间;
S115、判断所述待处理视频帧所对应的时间是否小于或等于所述当前播放时间,若是则跳转至步骤S116,若否则跳转至步骤S111;
S116、取出所述待处理视频帧,根据所述待处理视频帧的类型,对所述待处理视频帧进行相应的缓存处理,并跳转至步骤S111。
可以理解的,播放器的缓冲区中存储的第一个视频帧被取出后,原来的第二个视频帧相应地变为新的第一个视频帧。
在本实施例中,为了保证播放和缓存同步进行,并避免重复拷贝。当待处理视频帧所对应的时间小于或等于当前播放时间时,说明当前播放的视频帧还没有进行缓存,则进行相应的缓存处理;若待处理视频帧所对应的时间大于当前播放时间,说明当前还未播放至该待处理视频帧,则此时不取出待处理视频帧,而是跳转至S111,以等待播放时间更新,直到判断到待处理视频帧时间小于或等于当前播放时间,才取出待处理视频帧进行相应缓存处理。
其中,根据所述待处理视频帧的帧类型,对所述待处理视频帧进行相应的缓存处理,具体包括:
当判断到所述待处理视频帧的类型为非I帧且为非虚拟I帧时,判断所述视频缓存单元中是否存在类型为I帧的视频帧,若是则将所述待处理视频帧拷贝至所述视频缓存单元,若否则丢弃所述待处理视频帧;
当判断到所述待处理视频帧的类型为I帧时,清除所述视频缓存单元内已缓存的视频帧,将所述待处理视频帧拷贝至所述视频缓存单元中,并将视频缓存时间更新为所述待处理视频帧所对应的时间;
当判断到所述待处理视频帧的类型为虚拟I帧时,清除所述视频缓存单元内类型为非I帧的视频帧,将类型为I帧的视频帧标记为仅解码,将所述待处理视频帧拷贝至所述视频缓存单元中,并将所述视频缓存时间更新为所述待处理视频帧所对应的时间。
需要说明的是,上述的类型为I帧的待处理视频帧包括SPS(Sequence Para meterSet,序列参数集)、PPS(Picture Parameter Set,图像参数集)、VPS(Vi deo ParameterSet,视频参数集)。在一个可选的实施方式中,视频缓存时间可以是用于同步音频数据的缓存,从而使得缓存模块内缓存的音频数据是在所缓存的图像组时间范围内的音频。
参见图4,图4是本发明实施例提供的视频缓存单元内视频帧变化的示意图。
结合图4,可对上述具体实施过程进行进一步描述。在对非智能编码的视频流进行缓存的过程中,在待处理视频帧为P帧时,若视频缓存单元中存在类型为I帧的视频帧,则将待处理视频帧拷贝至视频缓存单元;在待处理视频帧为I帧时,清除视频缓存单元内已缓存的视频帧,再将该待处理视频帧拷贝至视频缓存单元中。在对智能编码的视频流进行缓存的过程中,在待处理视频帧为P帧时,若视频缓存单元中存在类型为I帧的视频帧,则将待处理视频帧拷贝至视频缓存单元;在待处理视频帧为虚拟I(virtutal I)帧时,清除视频缓存单元内类型为非I帧的视频帧(也即I帧之后的视频帧),并将待处理视频帧拷贝至视频缓存单元中;在待处理视频帧为I帧时,清除视频缓存单元内已缓存的视频帧,再将该待处理视频帧拷贝至视频缓存单元中。通过以上方式,无论是对非智能编码的视频流还是对智能编码的视频流,均可进行缓存,以实现对非智能编码的视频流或对智能编码的视频流的无录像延迟的录制。
具体的,参见图5,通过以下步骤将当前播放的视频帧所在的图像组对应的音频数据实时缓存至缓存模块中:
S121、取出播放器的缓冲区中存储的第一个音频帧,并拷贝至所述缓存模块的音频缓存单元中;
S122、获取视频缓存时间;
S123、判断所述音频缓存单元中的第一个音频帧所对应的时间是否小于或等于所述视频缓存时间,若是则跳转至步骤S124,若否则跳转至步骤S121;
S124、丢弃所述音频缓存单元中的第一个音频帧,对所述音频缓存单元中的音频帧的位置信息进行更新,并跳转至步骤S123。
可以理解的,播放器的缓冲区中存储的第一个音频帧被取出后,原来的第二个音频帧相应地变为新的第一个音频帧。
在本实施例中,为了保证音频和视频同步,从播放器的缓冲区中取出存储的第一个音频帧后,直接拷贝到音频缓存单元,再根据视频缓存时间判断是否需要丢弃音频缓存中的音频帧,从而使得音频与视频同步,并且,在丢弃音频缓存单元内数据后更新第一个音频帧位置信息。
本发明实施例还提供了一种视频录制装置,能够实施上述视频录制方法的所有流程。
参见图6,是本发明提供的视频录制装置的一个实施例的结构示意图。
本发明实施例提供的视频录制装置,包括:
缓存模块21,用于在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;
录制模块22,用于当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
该视频录制装置对正在播放的视频进行录制的原理与上述实施例相同,在此不再赘述。
本发明实施例提供的视频录制装置,在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;当接收到视频录制请求时,先将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,再将后续播放的音视频数据写入至所述录像文件中,从而实现对正在播放的视频的录制。通过上述方式,在接收到视频录制请求时,能立刻录制到当前正在播放的视频帧,无需等待新的I帧,能够避免出现录像延迟的现象,从而使得所录制的录像文件不会缺失视频信息,保证了录像文件的完整性。
参见图7,是本发明提供的终端设备的一个实施例的结构示意图。
本发明实施例提供的一种终端设备,包括处理器31、存储器32以及存储在所述存储器32中且被配置为由所述处理器31执行的计算机程序,所述处理器31执行所述计算机程序时实现如上任一实施例所述的视频录制方法。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任一实施例所述的视频录制方法。
所述处理器31执行所述计算机程序时实现上述视频录制方法实施例中的步骤,例如图1所示的视频录制方法的所有步骤。或者,所述处理器31执行所述计算机程序时实现上述视频录制装置实施例中各模块/单元的功能,例如图6所示的视频录制装置的各模块的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器32中,并由所述处理器31执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。例如,所述计算机程序可以被分割成缓存模块和录制模块,各模块具体功能如下:缓存模块,用于在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;录制模块,用于当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
所述终端设备可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,所述示意图仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器31是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器32可用于存储所述计算机程序和/或模块,所述处理器31通过运行或执行存储在所述存储器32内的计算机程序和/或模块,以及调用存储在存储器32内的数据,实现所述终端设备的各种功能。所述存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种视频录制方法,其特征在于,包括:
在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;
当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
2.如权利要求1所述的视频录制方法,其特征在于,还包括步骤:
在检测到视频播放开启时,创建所述缓存模块。
3.如权利要求1所述的视频录制方法,其特征在于,还包括步骤:
当接收到结束录像请求时,将已输出的所述最新缓存的图像组和所述最新缓存的图像组对应的音频数据恢复至所述缓存模块中。
4.如权利要求1所述的视频录制方法,其特征在于,所述在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中,具体为:
在接收到视频录制请求之前,以替换的方式将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中。
5.如权利要求4所述的视频录制方法,其特征在于,通过以下步骤将当前播放的视频帧所在的图像组实时缓存至缓存模块中:
S111、读取播放器的缓冲区中存储的第一个视频帧,并将所述第一个视频帧作为待处理视频帧;
S112、判断所述缓存模块的视频缓存单元中是否存在已缓存的视频帧,若是则跳转至步骤S114,若否则跳转至步骤S113;
S113、取出所述待处理视频帧,并判断所述待处理视频帧的类型是否为I帧,若是则将所述待处理视频帧存储至所述视频缓存单元并跳转至步骤S111,若否则丢弃所述待处理视频帧并跳转至步骤S111;
S114、获取当前播放时间;
S115、判断所述待处理视频帧所对应的时间是否小于或等于所述当前播放时间,若是则跳转至步骤S116,若否则跳转至步骤S111;
S116、取出所述待处理视频帧,根据所述待处理视频帧的类型,对所述待处理视频帧进行相应的缓存处理,并跳转至步骤S111。
6.如权利要求5所述的视频录制方法,其特征在于,所述根据所述待处理视频帧的帧类型,对所述待处理视频帧进行相应的缓存处理,具体包括:
当判断到所述待处理视频帧的类型为非I帧且为非虚拟I帧时,判断所述视频缓存单元中是否存在类型为I帧的视频帧,若是则将所述待处理视频帧拷贝至所述视频缓存单元,若否则丢弃所述待处理视频帧;
当判断到所述待处理视频帧的类型为I帧时,清除所述视频缓存单元内已缓存的视频帧,将所述待处理视频帧拷贝至所述视频缓存单元中,并将视频缓存时间更新为所述待处理视频帧所对应的时间;
当判断到所述待处理视频帧的类型为虚拟I帧时,清除所述视频缓存单元内类型为非I帧的视频帧,将类型为I帧的视频帧标记为仅解码,将所述待处理视频帧拷贝至所述视频缓存单元中,并将所述视频缓存时间更新为所述待处理视频帧所对应的时间。
7.如权利要求4所述的视频录制方法,其特征在于,通过以下步骤将当前播放的视频帧所在的图像组对应的音频数据实时缓存至缓存模块中:
S121、取出播放器的缓冲区中存储的第一个音频帧,并拷贝至所述缓存模块的音频缓存单元中;
S122、获取视频缓存时间;
S123、判断所述音频缓存单元中的第一个音频帧所对应的时间是否小于或等于所述视频缓存时间,若是则跳转至步骤S124,若否则跳转至步骤S121;
S124、丢弃所述音频缓存单元中的第一个音频帧,对所述音频缓存单元中的音频帧的位置信息进行更新,并跳转至步骤S123。
8.一种视频录制装置,其特征在于,包括:
缓存模块,用于在接收到视频录制请求之前,将当前播放的视频帧所在的图像组和所述图像组对应的音频数据实时缓存至缓存模块中;其中,所述图像组的起始帧是在所述当前播放的视频帧之前且离所述当前播放的视频帧最近的I帧;
录制模块,用于当接收到视频录制请求时,将所述缓存模块中最新缓存的图像组和所述最新缓存的图像组对应的音频数据输出并写入录像文件中,并将后续播放的音视频数据写入至所述录像文件中。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述的视频录制方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1-7中任意一项所述的视频录制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010060381.8A CN111225171B (zh) | 2020-01-19 | 2020-01-19 | 一种视频录制方法、装置、终端设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010060381.8A CN111225171B (zh) | 2020-01-19 | 2020-01-19 | 一种视频录制方法、装置、终端设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111225171A true CN111225171A (zh) | 2020-06-02 |
CN111225171B CN111225171B (zh) | 2022-10-14 |
Family
ID=70831621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010060381.8A Active CN111225171B (zh) | 2020-01-19 | 2020-01-19 | 一种视频录制方法、装置、终端设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111225171B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732177A (zh) * | 2020-12-28 | 2021-04-30 | 深圳市华宝电子科技有限公司 | 一种视频存储方法、装置、设备及存储介质 |
CN113542545A (zh) * | 2021-05-28 | 2021-10-22 | 青岛海信移动通信技术股份有限公司 | 电子设备及录像方法 |
CN115589450A (zh) * | 2022-09-01 | 2023-01-10 | 荣耀终端有限公司 | 一种视频录制的方法和装置 |
CN115604540A (zh) * | 2022-09-01 | 2023-01-13 | 荣耀终端有限公司(Cn) | 视频获取方法及装置 |
CN116684659A (zh) * | 2023-08-02 | 2023-09-01 | 苏州浪潮智能科技有限公司 | Bmc芯片的视频输出控制模块、方法、设备和服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016100A (ja) * | 2006-07-04 | 2008-01-24 | Sony Corp | 再生装置及び再生方法 |
CN107800988A (zh) * | 2017-11-08 | 2018-03-13 | 青岛海信移动通信技术股份有限公司 | 一种视频录制的方法及装置、电子设备 |
CN110099238A (zh) * | 2019-05-31 | 2019-08-06 | 杭州涂鸦信息技术有限公司 | 一种视频帧数据的封装方法、智能终端以及存储装置 |
CN110324698A (zh) * | 2018-03-28 | 2019-10-11 | 努比亚技术有限公司 | 一种视频录制方法、终端及计算机可读存储介质 |
-
2020
- 2020-01-19 CN CN202010060381.8A patent/CN111225171B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016100A (ja) * | 2006-07-04 | 2008-01-24 | Sony Corp | 再生装置及び再生方法 |
CN107800988A (zh) * | 2017-11-08 | 2018-03-13 | 青岛海信移动通信技术股份有限公司 | 一种视频录制的方法及装置、电子设备 |
CN110324698A (zh) * | 2018-03-28 | 2019-10-11 | 努比亚技术有限公司 | 一种视频录制方法、终端及计算机可读存储介质 |
CN110099238A (zh) * | 2019-05-31 | 2019-08-06 | 杭州涂鸦信息技术有限公司 | 一种视频帧数据的封装方法、智能终端以及存储装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732177A (zh) * | 2020-12-28 | 2021-04-30 | 深圳市华宝电子科技有限公司 | 一种视频存储方法、装置、设备及存储介质 |
CN112732177B (zh) * | 2020-12-28 | 2024-03-26 | 深圳市华宝电子科技有限公司 | 一种视频存储方法、装置、设备及存储介质 |
CN113542545A (zh) * | 2021-05-28 | 2021-10-22 | 青岛海信移动通信技术股份有限公司 | 电子设备及录像方法 |
CN113542545B (zh) * | 2021-05-28 | 2024-03-26 | 青岛海信移动通信技术有限公司 | 电子设备及录像方法 |
CN115589450A (zh) * | 2022-09-01 | 2023-01-10 | 荣耀终端有限公司 | 一种视频录制的方法和装置 |
CN115604540A (zh) * | 2022-09-01 | 2023-01-13 | 荣耀终端有限公司(Cn) | 视频获取方法及装置 |
CN115604540B (zh) * | 2022-09-01 | 2023-11-14 | 荣耀终端有限公司 | 视频获取方法、电子设备及介质 |
CN115589450B (zh) * | 2022-09-01 | 2024-04-05 | 荣耀终端有限公司 | 一种视频录制的方法和装置 |
CN116684659A (zh) * | 2023-08-02 | 2023-09-01 | 苏州浪潮智能科技有限公司 | Bmc芯片的视频输出控制模块、方法、设备和服务器 |
CN116684659B (zh) * | 2023-08-02 | 2024-02-23 | 苏州浪潮智能科技有限公司 | Bmc芯片的视频输出控制模块、方法、设备和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111225171B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111225171B (zh) | 一种视频录制方法、装置、终端设备及计算机存储介质 | |
US8660181B2 (en) | Method of compressing video data and a media player for implementing the method | |
US9055272B2 (en) | Moving image reproduction apparatus, information processing apparatus, and moving image reproduction method | |
JP2001346205A (ja) | 信号の誤りを隠蔽する方法 | |
CN111447455A (zh) | 直播视频流回放处理方法、装置及计算设备 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN112423140A (zh) | 视频播放方法、装置、电子设备和存储介质 | |
CN111436009A (zh) | 一种实时视频流传送、显示方法以及传送和播放系统 | |
US10674188B2 (en) | Playback apparatus, method of controlling playback apparatus, playback method and server apparatus | |
CN114268830A (zh) | 云导播同步方法、装置、设备及存储介质 | |
US8300701B2 (en) | Offspeed playback in a video editing system of video data compressed using long groups of pictures | |
JP2010154006A (ja) | プログレッシブダウンロード再生用プログラム | |
CN105379281B (zh) | 用于使用图形处理器的视频解码的图片参考控制 | |
CN112804579B (zh) | 视频播放方法、装置、计算机设备和可读存储介质 | |
US9225931B2 (en) | Moving image data recording apparatus | |
JP7520555B2 (ja) | 撮像装置、記録方法、及びプログラム | |
US9025931B2 (en) | Recording apparatus, recording method, and program | |
JP2009100106A (ja) | 画像再生装置,およびその処理方法およびそのプログラム | |
US7999853B2 (en) | Moving image reproducing apparatus and processing method therefor | |
CN115134661B (zh) | 视频处理方法及视频处理应用 | |
CN110855619A (zh) | 播放音视频数据的处理方法、装置、存储介质及终端设备 | |
CN111866422B (zh) | 录像数据上传方法、装置、设备及计算机可读存储介质 | |
JP2012060297A (ja) | プログレッシブダウンロード再生方法及び再生用プログラム | |
JP7458848B2 (ja) | ユーザ端末及びプログラム | |
JP2007122502A (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 |