CN110149546A - 移动终端及其基于录屏的视频补帧方法、计算机存储介质 - Google Patents

移动终端及其基于录屏的视频补帧方法、计算机存储介质 Download PDF

Info

Publication number
CN110149546A
CN110149546A CN201910299952.0A CN201910299952A CN110149546A CN 110149546 A CN110149546 A CN 110149546A CN 201910299952 A CN201910299952 A CN 201910299952A CN 110149546 A CN110149546 A CN 110149546A
Authority
CN
China
Prior art keywords
video frame
video
screen
picture
memory cache
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.)
Pending
Application number
CN201910299952.0A
Other languages
English (en)
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.)
Guangzhou Huya Information Technology Co Ltd
Original Assignee
Guangzhou Huya Information 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 Guangzhou Huya Information Technology Co Ltd filed Critical Guangzhou Huya Information Technology Co Ltd
Priority to CN201910299952.0A priority Critical patent/CN110149546A/zh
Publication of CN110149546A publication Critical patent/CN110149546A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本申请公开了一种移动终端及其基于录屏的视频补帧方法、计算机存储介质,该视频补帧方法包括:将录屏API生成的视频帧写入内存缓存列表;在设定时间内,根据内存缓存列表中的视频帧数量,判断屏幕画面状态;当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧;当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。通过上述方式,能够在录制视频中视频帧返回不恒定时进行补帧,以防止画面跳跃的问题。

Description

移动终端及其基于录屏的视频补帧方法、计算机存储介质
技术领域
本申请涉及视频处理技术领域,特别是涉及一种移动终端及其基于录屏的视频补帧方法、计算机存储介质。
背景技术
IOS(原名iPhone OS,自IOS 4后改名为IOS)是为一些移动设备所开发的专有移动操作系统,所支持的设备包括iPhone、iPod touch和iPad。
ReplayKit是IOS对屏幕进行直播推出的框架,ReplayKit框架作用是从屏幕录制或流式传输视频,以及来自应用和麦克风的音频。使用ReplayKit框架,用户可以从屏幕录制视频,从应用程序和麦克风录制音频。
由于ReplayKit每秒返回的视频帧数量不恒定,会出现视频帧漏掉导致画面跳跃的问题。
发明内容
为解决上述问题,本申请提供了一种移动终端及其基于录屏的视频补帧方法、计算机存储介质,能够在视频帧返回不恒定时进行补帧,以防止画面跳跃的问题。
本申请采用的一个技术方案是:将录屏API生成的视频帧写入内存缓存列表;在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态;当所述屏幕画面状态处于画面完全静止状态时,则重复发送所述内存缓存列表表头的视频帧;当所述屏幕画面状态处于第一画面状态时,则按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧。
其中,所述重复发送所述内存缓存列表表头的视频帧的步骤,进一步包括:保存初始获取的第一视频帧;创建定时器;利用所述定时器按照预设频率重复发送所述第一视频帧。
其中,所述按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧的步骤,进一步包括:将初始获取的第一视频帧写入所述内存缓存列表,其中,所述内存缓存列表的列表头中至少保存有所述第一视频帧;按照时序获取所述录屏产生的第二视频帧时,将所述第一视频帧存储到所述内存缓存列表中除列表头外的列表位置,并将所述第二视频帧插入所述内存缓存列表的列表头。
其中,所述按照预设频率发送所述内存缓存列表的列表头对应的所述第二视频帧的步骤,包括:创建定时器;利用所述定时器按照所述预设频率发送所述内存缓存列表的列表头对应的所述第一视频帧和所述第二视频帧;其中,所述预设频率为每秒30次。
其中,所述利用所述定时器按照所述预设频率发送所述内存缓存列表的列表头对应的所述第一视频帧或所述第二视频帧的步骤之后,还包括:判断所述内存缓存列表中的视频帧的数量是否大于或等于2;若是,则删除所述内存缓存列表中除列表头外的列表位置的视频帧。
其中,所述第一画面状态为画面非完全静止状态;所述在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态的步骤,进一步包括:计算录屏产生的所述视频帧数量;判断所述视频帧数量是否大于1且小于预设视频帧数量;若是,则确定所述屏幕画面状态处于所述画面非完全静止状态。
其中,所述判断屏幕画面状态的步骤,进一步包括:计算录屏产生的所述视频帧数量;判断所述视频帧数量是否为1;若是,则确定所述屏幕画面状态处于画面完全静止状态。
本申请采用的另一个技术方案是:提供一种移动终端,所述移动终端包括:获取模块,用于将录屏API生成的视频帧写入内存缓存列表;处理模块,用于在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态;视频帧发送模块,用于当所述屏幕画面状态处于画面完全静止状态时,则重复发送所述内存缓存列表表头的视频帧;所述视频帧发送模块,还用于当所述屏幕画面状态处于第一画面状态时,则按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧。
本申请采用的另一个技术方案是:提供一种移动终端,该移动终端包括处理器、存储器以及显示屏;其中,显示屏用于显示画面,存储器用于存储程序数据,处理器用于执行程序数据以实现如上述的视频补帧方法。
本申请采用的另一个技术方案是:提供一种计算机存储介质,其特征在于,计算机存储介质存储有程序数据,程序数据在被处理器执行时,用以实现如上述的视频补帧方法。
本申请提供的一种录屏中的视频补帧方法包括:将录屏API生成的视频帧写入内存缓存列表;在设定时间内,根据内存缓存列表中的视频帧数量,判断屏幕画面状态;当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧;当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。通过在录制视频中出现视频帧返回不恒定的情况时,对视频帧进行补帧处理,使得最终的视频能够连续播放,而不会出现由于漏掉视频帧导致的画面跳跃的问题,为视频录制、网络直播等产品提供底层技术支持。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请基于录屏API的视频补帧方法第一实施例的流程示意图;
图2是图1中完全静止状态的视频补帧方法的流程示意图;
图3是本申请基于录屏API的视频补帧方法第二实施例的流程示意图;
图4是本申请基于录屏API的视频补帧方法第三实施例的流程示意图;
图5是本申请基于录屏API的视频补帧方法第四实施例的流程示意图;
图6是本申请移动终端第一实施例的结构示意图;
图7是本申请移动终端第二实施例的结构示意图;
图8是本申请计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参阅图1,图1是本申请基于录屏API的视频补帧方法第一实施例的流程示意图,本实施例的视频补帧方法应用于一种具有视频帧收发功能和处理功能的移动终端或者电子设备。
S101:将录屏API生成的视频帧写入内存缓存列表。
其中,本申请的移动终端可以搭载IOS操作系统,并可以通过IOS操作系统上的ReplayKit框架从屏幕录制或流式传输视频,以从直播屏幕录制视频。
具体地,移动终端通过ReplayKit(直播录屏)开发工具箱的数据返回视频帧,其中,视频帧,即RPSampleBufferTypeVideo,为裸视频帧数据内容。移动终端可以通过ReplayKit的线程读取和写入视频帧,并在将视频帧插入视频线程安全列表后,迅速返回,做到不阻塞ReplayKit的线程。
其中,视频帧至少包括初始获取的第一视频帧,第一视频帧可以为初始获取的CVPixelBuffer视频帧。
进一步地,移动终端至少将录屏API初始生成的第一视频帧写入内存缓存列表。
S102:在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态。
其中,移动终端比较在设定时间内从ReplayKit开发工具箱获取到的视频帧数量与预设数量,设定时间可以设置为1秒或者其它时间。若移动终端获取的视频帧数量大于或等于预设数量,则判断录制的屏幕处于非静止状态。
例如,当移动终端检测到ReplayKit开发工具箱每秒返回30个CVPixelBuffer视频帧时,则移动终端判断录制的屏幕处于非静止状态。具体地,移动终端的屏幕每秒刷新60次,在每2次刷新的过程中,屏幕上出现一个或多个像素在RGB分量出现变动,则移动终端判断屏幕每帧都处于画面非静止状态。
若获取的视频帧数量小于预设数量,则判断录制的屏幕处于画面静止状态,其中,画面静止状态还包括画面非完全静止状态和画面完全静止状态。因此移动终端还需要继续判断录制屏幕的状态。
其中,移动终端进一步判断视频帧的数量是否为1。若移动终端获取的视频帧数量为1,则判断录制的屏幕处于画面完全静止状态,进入步骤S103。
例如,当移动终端检测到ReplayKit开发工具箱每秒只返回1个CVPixelBuffer视频帧时,则移动终端判断录制的屏幕处于完全静止状态。具体地,移动终端的屏幕每秒刷新60次,在这60次中,不存在任何视频帧数据在RGB分量上的变化,则移动终端判断屏幕处于画面完全静止状态。
若移动终端获取的视频帧大于1,且小于预设数量,则判断录制的屏幕处于画面非完全静止状态,进入步骤S104。
例如,当移动终端检测到ReplayKit开发工具箱每秒返回2~29个CVPixelBuffer视频帧时,则移动终端判断录制的屏幕处于非完全静止状态。具体地,移动终端的屏幕每秒刷新60次,每两次刷新认为是1组,所以每秒存在30组视频帧数据;则在30组视频帧数据中,若存在一组或多组视频帧数据在RGB分量上保持不变,则移动终端判断屏幕处于画面非完全静止状态。
S103:当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧。
其中,在ReplayKit开发工具箱启动时,若录屏画面处于画面完全静止状态,移动终端仍然会触发第一CVPixelBuffer视频帧数据。具体请参阅图2,图2是图1中画面完全静止状态的视频补帧方法的流程示意图。
如图2所示,当移动终端判断录屏画面处于画面完全静止状态时,移动终端将第一CVPixelBuffer视频帧数据保存至内存,即内存缓存列表中。移动终端创建定时器,并将定时器设置为每秒轮询30次,每次轮询都重复发送内存中的第一CVPixelBuffer视频帧数据。其中,定时器的每秒轮询次数也可以设置为其它次数,在此不再赘述。
在现有技术中,当录屏画面处于画面完全静止状态时,移动终端发送第一CVPixelBuffer视频帧数据后,由于没有获取到其它视频帧数据,移动终端无法继续发送视频帧数据,导致录制的视频无法连续播放,从而出现由于漏掉视频帧导致的画面跳跃问题。
而采用图2中的视频补帧方法能够使得在录屏画面处于画面完全静止状态时,移动终端重复发送第一CVPixelBuffer视频帧数据,使得录制的视频能够连续播放第一帧视频,解决画面跳跃问题。
S104:当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。
其中,第一画面状态可以为画面非完全静止状态。在ReplayKit开发工具箱启动时,若录屏画面处于画面非完全静止状态时,移动终端按照视频帧写入内存缓存列表的时序,获取并保存每次录屏产生的视频帧中最新的第二视频帧,以发送最新的第二视频帧数据。
在本实施例中,移动终端在设定时间内获取录屏产生的视频帧;在设定时间内,根据内存缓存列表中的视频帧数量,判断屏幕画面状态;当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧;当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。通过在录制视频中出现视频帧返回不恒定的情况时,对视频帧进行补帧处理,使得最终的视频能够连续播放,而不会出现由于漏掉视频帧导致的画面跳跃的问题,为视频录制、网络直播等产品提供底层技术支持。
对于图1所示实施例中的步骤S104,本申请进一步提出了另一种具体的方法。具体请参阅图3,图3是本申请基于录屏API的视频补帧方法第二实施例的流程示意图。
具体地在上述步骤S104中,移动终端在录屏画面处于画面非完全静止状态时,发送视频帧中最新的第二视频帧。进一步地,由于ReplayKit属于IOS系统的Extension模块,最大允许内存为50M,在500毫秒内产生的裸视频数据需要的内存远远超过50M。因此,移动终端还需要及时清理已经发送完成的视频帧数据。为了解决由于漏掉视频帧导致的画面跳跃的问题,本实施例的视频补帧方法具体提出了以下方法:
S201:将初始获取的第一视频帧写入内存缓存列表,其中,内存缓存列表的列表头中至少保存有第一视频帧。
其中,在录屏画面非完全静止时,ReplayKit每秒会返回2~29次CVPixelBuffer视频帧。移动终端将ReplayKit返回的CVPixelBuffer视频帧写入内存缓存列表中,首先将ReplayKit启动时的第一帧CVPixelBuffer视频帧保存在列表的列表头位置。
S202:按照时序获取录屏产生的第二视频帧时,将第一视频帧存储到内存缓存列表中除列表头外的列表位置,并将第二视频帧插入内存缓存列表的列表头。
其中,如果检测到ReplayKit后续有其它视频帧返回,则移动终端根据返回时间将对应的CVPixelBuffer视频帧依次插入内存缓存列表。
具体地,ReplayKit启动时,保存在内存缓存列表的列表头的视频帧即第一视频帧。当移动终端发送完列表头的第一视频帧后,移动终端继续接收ReplayKit返回CVPixelBuffer视频帧。当移动终端接收到新的CVPixelBuffer视频帧时,将新的CVPixelBuffer视频帧插入列表头的位置,替代第一视频帧的位置,第一视频帧在内存缓存列表中的位置向后移。
在步骤S202中,第二视频帧即当前录屏产生的最新的CVPixelBuffer视频帧,移动终端将第二视频帧插入内存缓存列表的列表头位置。
S203:利用定时器按照预设频率发送内存缓存列表的列表头对应的第一视频帧或第二视频帧。
其中,移动终端创建定时器,并将定时器设置为每秒轮询30次,每次轮询均从列表头中读取第一个CVPixelBuffer视频帧,并发送其对应的视频帧数据。其中,列表头的第一个CVPixelBuffer视频帧即上述步骤S202中的第二视频帧。
由于每一帧视频帧所占的内存都比较大,保存多个视频帧所需要内存会过多占用移动终端的内存空间;甚至还可能由于移动终端的内存空间不足,导致无法保存ReplayKit返回的新的CVPixelBuffer视频帧。因此,移动终端为及时清理内存中的视频帧数据,还需要执行下述步骤S204和步骤S205。
S204:判断内存缓存列表中的视频帧的数量是否大于或等于2。
其中,每次发送列表头的CVPixelBuffer视频帧后,移动终端均可以获取内存缓存列表中保存的视频帧数量,并判断保存的视频帧数量是否大于或等于2。若否,则说明内存缓存列表中只有列表头位置保存有视频帧,其余位置不存在视频帧,此时,移动终端不需要清理内存缓存列表中的视频帧。若是,则进入步骤S205。
S205:删除内存缓存列表中除列表头外的列表位置的视频帧。
其中,移动终端保存内存缓存列表中列表头对应的第二视频帧,确保列表头中至少保存有一个元素,并删除内存缓存列表中除第二视频帧以外的其它视频帧,以清理移动终端的内存空间。
在本实施例中,当在录屏画面处于画面非完全静止状态时,移动终端根据定时器设置的预设频率获取并发送列表头中最新的第二视频帧,以保证录制视频的每一帧视频帧均为对应时间内列表头中最新的第二视频帧;进一步地,在每次发送最新的第二视频帧后,移动终端还可以判断内存缓存列表中的元素个数,即视频帧帧数;若内存缓存列表中的元素个数大于或等于2,则删除内存缓存列表中除列表头的元素外的其它元素,以确保列表中有且仅有一个元素。
对于图1所示实施例中的步骤S103,本申请进一步提出了另一种具体的方法。具体请参阅图4,图4是本申请基于录屏API的视频补帧方法第三实施例的流程示意图。
如图4所示,本实施例的视频补帧方法具体提出了以下方法:
S301:计算录屏产生的视频帧数量。
其中,移动终端持续获取录屏产生的视频帧,并计算1秒内获取的视频帧的数量。
S302:判断视频帧数量是否大于1且小于预设视频帧数量。
其中,在终端屏幕每帧都处于非静止状态时,ReplayKit每秒返回30个CVPixelBuffer视频帧数据。移动终端将预设视频帧数量设置为30帧,若在1秒内移动终端从ReplayKit获取的视频帧数量少于30帧,则进入步骤S303。
S303:确定屏幕画面状态处于画面非完全静止状态。
其中,移动终端确定屏幕画面状态处于画面非完全静止状态。此时,终端屏幕每秒刷新60次,每2次刷新认为是1组,所以每秒存在30组视频帧,则30组视频帧中,存在一组或多组视频帧在RGB分量上保持不变。
对于图1所示实施例中的步骤S102,本申请进一步提出了另一种具体的方法。具体请参阅图5,图5是本申请基于录屏API的视频补帧方法第四实施例的流程示意图。
如图5所示,本实施例的视频补帧方法具体提出了以下方法:
S401:计算录屏产生的视频帧数量。
其中,移动终端持续获取录屏产生的视频帧,并计算1秒内产生的视频帧的数量。
S402:判断视频帧数量是否为1。
其中,移动终端判断1秒内从ReplayKit获取到的视频帧的矢量是否为1。
S403:确定屏幕画面状态处于画面完全静止状态。
其中,移动终端确定屏幕画面状态处于画面非完全静止状态。此时,终端屏幕每秒刷新60次,在这60次中,不存在任何数据RGB分量上的变化。
为实现上述实施例的视频补帧方法,本申请还提供了一种移动终端,具体参阅图6,图6是本申请移动终端第一实施例的结构示意图,该移动终端60包括获取模块61以及视频帧发送模块62。
其中,获取模块61,用于将录屏API生成的视频帧写入内存缓存列表。
处理模块62,用于在设定时间内,根据内存缓存列表中的视频帧数量,判断屏幕画面状态。
视频帧发送模块63,用于当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧;视频帧发送模块63,还用于当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。
参阅图7,图7是本申请移动终端第二实施例的结构示意图,该移动终端70包括处理器71、存储器72以及显示屏73。
该移动终端70可以是以IOS为操作系统的终端,如手机、平板电脑、智能穿戴设备等等,其中,该显示屏73可以是液晶显示屏(LCD),也可以是有机发光二极管显示屏(OLED),其用于显示视频画面,如移动终端70中App的操作界面,或者系统的操作界面。
其中,存储器72中存储有程序数据,处理器71用于执行该程序数据以实现以下的方法步骤:将录屏API生成的视频帧写入内存缓存列表;在设定时间内,根据内存缓存列表中的视频帧数量,判断屏幕画面状态;当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧;当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。
可选的,处理器71在执行该程序数据时,还用于实现以下的方法步骤:保存初始获取的第一视频帧;创建定时器;利用定时器按照预设频率重复发送第一视频帧。
可选的,处理器71在执行该程序数据时,还用于实现以下的方法步骤:将初始获取的第一视频帧写入内存缓存列表,其中,内存缓存列表的列表头中至少保存有第一视频帧;按照时序获取录屏产生的第二视频帧时,将第一视频帧存储到内存缓存列表中除列表头外的列表位置,并将第二视频帧插入内存缓存列表的列表头。
可选的,处理器71在执行该程序数据时,还用于实现以下的方法步骤:创建定时器;利用定时器按照预设频率发送内存缓存列表的列表头对应的第一视频帧和第二视频帧;其中,预设频率为每秒30次。
可选的,处理器71在执行该程序数据时,还用于实现以下的方法步骤:判断内存缓存列表中的视频帧的数量是否大于或等于2;若是,则删除内存缓存列表中除列表头外的列表位置的视频帧。
可选的,处理器71在执行该程序数据时,还用于实现以下的方法步骤:计算录屏产生的视频帧数量;判断视频帧数量是否大于1且小于预设视频帧数量;若是,则确定屏幕画面状态处于画面非完全静止状态。
可选的,处理器71在执行该程序数据时,还用于实现以下的方法步骤:判断视频帧数量是否为1;若是,则确定屏幕画面状态处于画面完全静止状态。
参阅图8,图8是本申请计算机存储介质一实施例的结构示意图,该计算机存储介质80中存储有程序数据81,该程序数据81在被处理器执行时,用以实现以下的方法步骤:
在设定时间内获取录屏产生的视频帧;将录屏API生成的视频帧写入内存缓存列表;在设定时间内,根据内存缓存列表中的视频帧数量,判断屏幕画面状态;当屏幕画面状态处于画面完全静止状态时,则重复发送内存缓存列表表头的视频帧;当屏幕画面状态处于第一画面状态时,则按照视频帧写入内存缓存列表的时序发送视频帧。
本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种基于录屏API的视频补帧方法,其特征在于
将录屏API生成的视频帧写入内存缓存列表;
在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态;
当所述屏幕画面状态处于画面完全静止状态时,则重复发送所述内存缓存列表表头的视频帧;
当所述屏幕画面状态处于第一画面状态时,则按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧。
2.根据权利要求1所述的视频补帧方法,其特征在于,所述重复发送所述内存缓存列表表头的视频帧的步骤,进一步包括:
保存初始获取的第一视频帧;
创建定时器;
利用所述定时器按照预设频率重复发送所述第一视频帧。
3.根据权利要求1所述的视频补帧方法,其特征在于,所述按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧的步骤,进一步包括:
将初始获取的第一视频帧写入所述内存缓存列表,其中,所述内存缓存列表的列表头中至少保存有所述第一视频帧;
按照时序获取所述录屏产生的第二视频帧时,将所述第一视频帧存储到所述内存缓存列表中除列表头外的列表位置,并将所述第二视频帧插入所述内存缓存列表的列表头。
4.根据权利要求3所述的视频补帧方法,其特征在于,所述按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧的步骤,进一步包括:
创建定时器;
利用所述定时器按照所述预设频率发送所述内存缓存列表的列表头对应的所述第一视频帧或所述第二视频帧;
其中,所述预设频率为每秒30次。
5.根据权利要求4所述的视频补帧方法,其特征在于,所述利用所述定时器按照所述预设频率发送所述内存缓存列表的列表头对应的所述第一视频帧或所述第二视频帧的步骤之后,还包括:
判断所述内存缓存列表中的视频帧的数量是否大于或等于2;
若是,则删除所述内存缓存列表中除列表头外的列表位置的视频帧。
6.根据权利要求1所述的视频补帧方法,其特征在于,所述第一画面状态为画面非完全静止状态;
所述在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态的步骤,进一步包括:
计算录屏产生的所述视频帧数量;
判断所述视频帧数量是否大于1且小于预设视频帧数量;
若是,则确定所述屏幕画面状态处于所述画面非完全静止状态。
7.根据权利要求1所述的视频补帧方法,其特征在于,所述判断屏幕画面状态的步骤,进一步包括:
计算录屏产生的所述视频帧数量;
判断所述视频帧数量是否为1;
若是,则确定所述屏幕画面状态处于画面完全静止状态。
8.一种移动终端,其特征在于,所述移动终端包括:
获取模块,用于将录屏API生成的视频帧写入内存缓存列表;
处理模块,用于在设定时间内,根据所述内存缓存列表中的视频帧数量,判断屏幕画面状态;
视频帧发送模块,用于当所述屏幕画面状态处于画面完全静止状态时,则重复发送所述内存缓存列表表头的视频帧;
所述视频帧发送模块,还用于当所述屏幕画面状态处于第一画面状态时,则按照所述视频帧写入所述内存缓存列表的时序发送所述视频帧。
9.一种移动终端,其特征在于,所述移动终端包括处理器、存储器以及显示屏;其中,所述显示屏用于显示画面,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如权利要求1~7任一项所述的视频补帧方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有程序数据,所述程序数据在被处理器执行时,用于实现如权利要求1~7任一项所述的视频补帧方法。
CN201910299952.0A 2019-04-15 2019-04-15 移动终端及其基于录屏的视频补帧方法、计算机存储介质 Pending CN110149546A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910299952.0A CN110149546A (zh) 2019-04-15 2019-04-15 移动终端及其基于录屏的视频补帧方法、计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910299952.0A CN110149546A (zh) 2019-04-15 2019-04-15 移动终端及其基于录屏的视频补帧方法、计算机存储介质

Publications (1)

Publication Number Publication Date
CN110149546A true CN110149546A (zh) 2019-08-20

Family

ID=67589667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910299952.0A Pending CN110149546A (zh) 2019-04-15 2019-04-15 移动终端及其基于录屏的视频补帧方法、计算机存储介质

Country Status (1)

Country Link
CN (1) CN110149546A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182302A (zh) * 2019-12-31 2020-05-19 歌尔股份有限公司 视频的图像编码方法、终端设备以及存储介质
CN112153453A (zh) * 2020-09-22 2020-12-29 王鹏 一种用于信息安全防护的显示系统
CN113055733A (zh) * 2021-03-15 2021-06-29 深圳乐播科技有限公司 稳定帧率视频数据的生成方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021507A (zh) * 2014-05-20 2014-09-03 武汉红树林科技有限公司 基于电子白板,屏幕录制编辑,手写板的微课制作方法及装置
CN105354247A (zh) * 2015-10-13 2016-02-24 武汉大学 一种支持存算联动的地理视频数据组织管理方法
CN105657311A (zh) * 2016-03-11 2016-06-08 深圳市极酷威视科技有限公司 一种视频录制方法及装置
CN106101737A (zh) * 2016-06-15 2016-11-09 南京云恩通讯科技有限公司 一种支持实时视频缓存多路读取的帧调整方法
JP2017135464A (ja) * 2016-01-25 2017-08-03 キヤノン株式会社 映像送信装置、映像送信システム、映像送信方法、及びプログラム
CN109040830A (zh) * 2017-06-08 2018-12-18 武汉斗鱼网络科技有限公司 直播播放卡顿的预测方法、切换方法及装置
CN109089131A (zh) * 2018-09-21 2018-12-25 广州虎牙信息科技有限公司 一种基于ios系统的录屏直播方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021507A (zh) * 2014-05-20 2014-09-03 武汉红树林科技有限公司 基于电子白板,屏幕录制编辑,手写板的微课制作方法及装置
CN105354247A (zh) * 2015-10-13 2016-02-24 武汉大学 一种支持存算联动的地理视频数据组织管理方法
JP2017135464A (ja) * 2016-01-25 2017-08-03 キヤノン株式会社 映像送信装置、映像送信システム、映像送信方法、及びプログラム
CN105657311A (zh) * 2016-03-11 2016-06-08 深圳市极酷威视科技有限公司 一种视频录制方法及装置
CN106101737A (zh) * 2016-06-15 2016-11-09 南京云恩通讯科技有限公司 一种支持实时视频缓存多路读取的帧调整方法
CN109040830A (zh) * 2017-06-08 2018-12-18 武汉斗鱼网络科技有限公司 直播播放卡顿的预测方法、切换方法及装置
CN109089131A (zh) * 2018-09-21 2018-12-25 广州虎牙信息科技有限公司 一种基于ios系统的录屏直播方法、装置、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182302A (zh) * 2019-12-31 2020-05-19 歌尔股份有限公司 视频的图像编码方法、终端设备以及存储介质
CN111182302B (zh) * 2019-12-31 2022-04-22 歌尔光学科技有限公司 视频的图像编码方法、终端设备以及存储介质
CN112153453A (zh) * 2020-09-22 2020-12-29 王鹏 一种用于信息安全防护的显示系统
CN112153453B (zh) * 2020-09-22 2023-11-28 王鹏 一种用于信息安全防护的显示系统
CN113055733A (zh) * 2021-03-15 2021-06-29 深圳乐播科技有限公司 稳定帧率视频数据的生成方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110149546A (zh) 移动终端及其基于录屏的视频补帧方法、计算机存储介质
CN107659825B (zh) 一种直播视频留存的方法、装置、服务器、主播端及介质
CN103856812B (zh) 一种视频播放方法及装置
CN105763919A (zh) 显示与视频同步的方法及装置
CN110062284B (zh) 视频播放方法、装置和电子设备
US9431059B2 (en) Information processing method and electronic device thereof
CN104618663B (zh) 视频处理方法、终端和系统
CN106331877A (zh) 弹幕播放方法及装置
CN105812885A (zh) 一种视频直播中的弹幕显示方法和系统
CN110297996A (zh) 基于h5页面的动画显示方法、装置、设备及存储介质
CN103618919B (zh) 网络电视加载视频的方法和装置
CN104618817B (zh) 一种播放网站视频的控制方法及装置
CN102364905B (zh) 数据再现方法、装置及移动终端
CN103458282A (zh) 视频直播方法及直播装置
CN103546698B (zh) 一种移动终端录制视频保存方法和装置
CN112203034B (zh) 帧率控制方法、装置以及电子设备
CN105828195A (zh) 一种播放器的挂起恢复方法和装置
CN108174267A (zh) 直播中互动信息的发送装置、方法及计算机可读存储介质
CN103731737B (zh) 一种视频信息更新方法及电子设备
CN105025358A (zh) 一种基于epg的视频播放方法及装置
CN105979344A (zh) 一种多媒体播放方法及播放器
CN110876078A (zh) 动画图片的处理方法、装置、存储介质和处理器
CN107786903A (zh) 视频交互方法及装置
CN105898398A (zh) 一种广告播放和投放的方法、装置和系统
CN104038842B (zh) 一种在cdn网络中预取点播节目信息的方法与设备

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190820

RJ01 Rejection of invention patent application after publication