CN111356002A - 一种视频播放方法及视频播放器 - Google Patents
一种视频播放方法及视频播放器 Download PDFInfo
- Publication number
- CN111356002A CN111356002A CN201811584644.4A CN201811584644A CN111356002A CN 111356002 A CN111356002 A CN 111356002A CN 201811584644 A CN201811584644 A CN 201811584644A CN 111356002 A CN111356002 A CN 111356002A
- Authority
- CN
- China
- Prior art keywords
- cached
- video
- video frame
- frame
- memory block
- 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
- 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
- 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/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- 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, rendering scenes according to MPEG-4 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, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
-
- 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/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
Abstract
本发明提供了一种视频播放方法及视频播放器,通过将进行视频解码后所获得的待缓存视频帧缓存到可用图像内存块,并将缓存后的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,以便判断其是否满足依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,若满足,则立即显示被缓存视频帧;可见,对视频解码后获得的待缓存视频帧进行缓存操作,以延迟显示时间,能够同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动,进而提高视频播放质量,同时,将依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,作为判定被缓存视频帧能否被立即显示的标准,能够有效避免被缓存视频帧数量过多的问题发生。
Description
技术领域
本发明涉及视频播放领域,更具体的说,是涉及一种视频播放方法及视频播放器。
背景技术
随着互联网的迅速发展,网络实时视频已经被广泛应用于诸如体育赛事网络直播,视频会议系统,视频通讯工具,安防监控等领域。而视频播放器作为人们观看网络实时视频的工具,其视频播放质量的优劣决定了用户视频观看体验的好坏。
目前,基于视频播放器进行视频播放的方法主要是将获取得到的网络实时视频数据存入抖动消除缓存器,以消除网络实时视频数据的网络抖动,之后再将消除了网络抖动的网络实时视频数据组装成视频帧,并送至解码器进行解码,最后渲染显示,以播放给用户观看。然而,采用现有的视频播放方法,只能通过抖动消除缓存器缓存网络实时视频数据的方式来消除网络实时视频数据的网络抖动,而无法消除因解码器解码不同视频帧所需的耗时相差较大所导致的解码抖动,从而导致视频播放质量较差,影响用户观看体验。
发明内容
有鉴于此,本发明提供了一种视频播放方法及视频播放器,同时消除了网络抖动和解码抖动,进而提高了视频播放质量。
为实现上述目的,本发明提供如下技术方案:
一种视频播放方法,包括:
在接收到网络视频数据时,对所述网络视频数据进行视频解码,获得待缓存视频帧;
将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号,所述缓存序号是按照所述待缓存视频帧缓存到所述可用图像内存块的先后顺序而生成的,所述可用图像内存块从空闲队列获取;
判断所述被缓存视频帧是否满足预设显示条件,所述预设显示条件是依据所述被缓存视频帧的帧数及缓存序号而设定的;
若所述被缓存视频帧满足所述预设显示条件,显示所述被缓存视频帧。
优选地,所述判断所述被缓存视频帧是否满足预设显示条件,包括:
判断所述被缓存视频帧是否满足第一条件,所述第一条件为第一视频帧未显示,且所述被缓存视频帧的帧数小于第一预设视频帧阈值,所述第一视频帧为最小的缓存序号对应的被缓存视频帧;
若所述被缓存视频帧不满足所述第一条件,判断所述被缓存视频帧的帧数是否满足第二条件,所述第二条件为所述被缓存视频帧的帧数大于或等于所述第一预设视频帧阈值;
相应的,所述若所述被缓存视频帧满足所述预设显示条件,显示所述被缓存视频帧,具体为:若所述被缓存视频帧的帧数满足所述第二条件,显示所述被缓存视频帧。
优选地,在判断出所述被缓存视频帧的帧数不满足所述第二条件之后,还包括:
将所述第一视频帧标记为已显示,并显示所述被缓存视频帧。
优选地,在所述将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号之后,还包括:
判断所述被缓存视频帧的帧数是否达到第二预设视频帧阈值,所述第二预设视频帧阈值大于所述第一预设视频帧阈值;
若所述被缓存视频帧的帧数达到所述第二预设视频帧阈值,显示所述被缓存视频帧;
若所述被缓存视频帧的帧数未达到所述第二预设视频帧阈值,返回执行所述判断所述被缓存视频帧是否满足第一条件。
优选地,在接收到网络视频数据时,对所述网络视频数据进行视频解码,获得待缓存视频帧之后,还包括:
当所述空闲队列不存在所述可用图像内存块时,生成新图像内存块,并将所述新图像内存块作为所述可用图像内存块,返回执行所述将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号。
优选地,在所述显示所述被缓存视频帧之后,还包括:
对所述可用图像内存块进行数据清除,并将数据清除后的可用图像内存块推入所述空闲队列。
一种视频播放器,包括:
视频解码器,用于在接收到网络视频数据时,对所述网络视频数据进行视频解码,获得待缓存视频帧;
图像缓存器,用于将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号,所述缓存序号是按照所述待缓存视频帧缓存到所述可用图像内存块的先后顺序而生成的,所述可用图像内存块从空闲队列获取;
图像派发器,用于判断所述被缓存视频帧是否满足预设显示条件,所述预设显示条件是依据所述被缓存视频帧的帧数及缓存序号而设定的;
图像渲染器,用于若所述被缓存视频帧满足所述预设显示条件,显示所述被缓存视频帧。
优选地,所述图像派发器判断所述被缓存视频帧是否满足预设显示条件,具体包括:
判断所述被缓存视频帧是否满足第一条件,所述第一条件为第一视频帧未显示,且所述被缓存视频帧的帧数小于第一预设视频帧阈值,所述第一视频帧为最小的缓存序号对应的被缓存视频帧;
若所述被缓存视频帧不满足所述第一条件,判断所述被缓存视频帧的帧数是否满足第二条件,所述第二条件为所述被缓存视频帧的帧数大于或等于所述第一预设视频帧阈值;
相应的,所述图像渲染器,还用于若所述被缓存视频帧的帧数满足所述第二条件,显示所述被缓存视频帧。
优选地,所述图像缓存器还用于:
在将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号之后,判断所述被缓存视频帧的帧数是否达到第二预设视频帧阈值,所述第二预设视频帧阈值大于所述第一预设视频帧阈值;
相应的,所述图像渲染器,还用于若所述被缓存视频帧的帧数达到所述第二预设视频帧阈值,显示所述被缓存视频帧;
所述图像派发器,还用于若所述被缓存视频帧的帧数未达到所述第二预设视频帧阈值,判断所述被缓存视频帧是否满足第一条件。
优选地,所述图像缓存器还用于:
在所述视频解码器接收到网络视频数据,对所述网络视频数据进行视频解码,获得待缓存视频帧,且当所述空闲队列不存在所述可用图像内存块时,生成新图像内存块,并将所述新图像内存块作为所述可用图像内存块,将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种视频播放方法及视频播放器,通过将进行视频解码后所获得的待缓存视频帧缓存到可用图像内存块,并将缓存后的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,以便判断其是否满足依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,若满足,则立即显示被缓存视频帧;可见,对视频解码后获得的待缓存视频帧进行缓存操作,以延迟显示时间,能够同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动,进而提高视频播放质量,同时,将依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,作为判定被缓存视频帧能否被立即显示的标准,能够有效避免被缓存视频帧数量过多的问题发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种视频播放方法的方法流程图;
图2为本发明实施例提供的另一种视频播放方法的方法流程图;
图3为本发明实施例提供的另一种视频播放方法的方法流程图;
图4为本发明实施例提供的另一种视频播放方法的方法流程图;
图5为本发明实施例提供的一种视频播放器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种视频播放方法,请参见附图1,所述方法具体包括以下步骤:
S101:在接收到网络视频数据时,对网络视频数据进行视频解码,获得待缓存视频帧;
具体的,接收到的网络视频数据是以帧为单位的,且当一帧网络视频数据较大时,网络视频数据的发送端会将一帧网络视频数据进行拆分,以确保网络传输效率;相应的,在接收到网络视频数据时,若该网络视频数据经过拆分,则会先对其进行组装,以获得完整的一帧网络视频数据,进而再对其进行视频解码操作;若该网络视频数据未经过拆分,则直接对其进行视频解码操作。
视频解码后获得的待缓存视频帧也是以帧为单位,且待缓存视频帧的个数至少为一帧。其中,视频解码后获得的待缓存视频帧的数据格式一般为YUV格式。
S102:将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,缓存序号是按照待缓存视频帧缓存到可用图像内存块的先后顺序而生成的,可用图像内存块从空闲队列获取;
具体的,空闲队列内预先设置有多个可用图像内存块,每个可用图像内存块用于缓存一帧待缓存视频帧,从而避免了对用于缓存待缓存视频帧的内存块的重复申请和释放,以加快缓存速度。
被缓存视频帧的帧数是指已缓存到可用图像内存块的待缓存视频帧的总个数。被缓存视频帧的缓存序号是按照待缓存视频帧缓存到可用图像内存块的先后顺序而生成的。举例说明,待缓存视频帧包括“视频帧A”、“视频帧B”和“视频帧C”,故在顺序将“视频帧A”、“视频帧B”和“视频帧C”分别缓存到可用图像内存块“a”、“b”、“c”后,获得被缓存视频帧“X”、“Y”“Z”,被缓存视频帧的帧数为“3”;其中,被缓存视频帧“X”为缓存到可用图像内存块“a”的“视频帧A”,缓存序号为“1”;被缓存视频帧“Y”为缓存到可用图像内存块“b”的“视频帧B”,缓存序号为“2”;被缓存视频帧“Z”为缓存到可用图像内存块“c”的“视频帧C”,缓存序号为“3”。
S103:判断被缓存视频帧是否满足预设显示条件,预设显示条件是依据被缓存视频帧的帧数及缓存序号而设定的,若是,则执行S104,若否,则执行S105;
具体的,预设显示条件是依据被缓存视频帧的帧数及缓存序号而预先设定的,主要用于在确保同时消除了网络抖动和解码抖动的基础上,限制被缓存视频帧的帧数,以避免因被缓存视频帧的帧数过多所导致的视频帧延迟显示时间过长的问题。
S104:显示被缓存视频帧;
具体的,在判断出被缓存视频帧满足预设显示条件时,证明当前已缓存的多帧被缓存视频帧所累积的延迟时间值,既可以同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动,又不会发生因被缓存视频帧的帧数过多所导致的视频帧延迟显示时间过长的问题,此时,立即将被缓存视频帧进行显示,实现了流畅的视频播放效果。
被缓存视频帧的显示方式可以是对被缓存视频帧进行渲染。
需要说明的是,本发明实施例的执行主体可为视频播放器,且视频播放器处于播放状态下。
S105:结束。
本发明实施例公开了一种视频播放方法,通过将进行视频解码后所获得的待缓存视频帧缓存到可用图像内存块,并将缓存后的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,以便判断其是否满足依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,若满足,则立即显示被缓存视频帧;可见,对视频解码后获得的待缓存视频帧进行缓存操作,以延迟显示时间,能够同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动,进而提高视频播放质量,同时,将依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,作为判定被缓存视频帧能否被立即显示的标准,能够有效避免被缓存视频帧数量过多的问题发生。
可选的,在上述附图1所对应实施例中的S104之后,还包括:
对可用图像内存块进行数据清除,并将数据清除后的可用图像内存块推入空闲队列。
需要说明的是,还可以直接将可用图像内存块推入空闲队列,并在下一次获得待缓存视频帧时,令当前获得的待缓存视频帧直接覆盖该可用图像内存块在上一次缓存的待缓存视频帧,以实现对当前待缓存视频帧的缓存操作。
本发明实施例中,在被缓存视频帧进行显示之后,对用于缓存被缓存视频帧的可用图像内存块进行数据清除,并将数据清除后的可用图像内存块再推入空闲队列,提高了可用图像内存块的重复使用率。
在上述附图1所对应实施例的基础上,本发明实施例公开了另一种视频播放方法,请参见附图2,所述方法具体包括以下步骤:
S201:在接收到网络视频数据时,对网络视频数据进行视频解码,获得待缓存视频帧。
S202:将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,缓存序号是按照待缓存视频帧缓存到可用图像内存块的先后顺序而生成的,可用图像内存块从空闲队列获取。
S203:判断被缓存视频帧是否满足第一条件,第一条件为第一视频帧未显示,且被缓存视频帧的帧数小于第一预设视频帧阈值,第一视频帧为最小的缓存序号对应的被缓存视频帧,若否,则执行S204,若是,则结束;
具体的,第一预设视频帧阈值是指确保同时消除网络抖动和解码抖动所需缓存的被缓存视频帧的帧数。
在判断出被缓存视频帧满足第一条件,即被缓存视频帧满足“第一视频帧未显示,且被缓存视频帧的帧数小于第一预设视频帧阈值”时,证明视频播放器还未开始播放视频帧,且当前已缓存的多帧被缓存视频帧所累积的延迟时间值,无法同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动,则直接结束。
S204:判断被缓存视频帧的帧数是否满足第二条件,第二条件为被缓存视频帧的帧数大于或等于第一预设视频帧阈值,若是,则执行S205,若否,则执行S206;
具体的,在判断出被缓存视频帧不满足第一条件,即被缓存视频帧满足“第一视频帧未显示,被缓存视频帧的帧数大于或等于第一预设视频帧阈值”、“第一视频帧显示,被缓存视频帧的帧数大于或等于第一预设视频帧阈值”、“第一视频帧显示,被缓存视频帧的帧数小于第一预设视频帧阈值”三种情况中的任意一种时,再对该被缓存视频帧的帧数是否满足第二条件进行判断。
S205:显示被缓存视频帧。
具体的,在判断出被缓存视频帧满足第二条件,即被缓存视频帧满足“第一视频帧未显示,被缓存视频帧的帧数大于或等于第一预设视频帧阈值”、“第一视频帧显示,被缓存视频帧的帧数大于或等于第一预设视频帧阈值”两种情况中的任意一种时,立即显示当前已缓存的多帧被缓存视频帧,从而在确保同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动的基础上,对被缓存视频帧的帧数进行限制,以避免因被缓存视频帧的帧数过多所导致的视频帧延迟显示时间过长的问题。
S206:将第一视频帧标记为已显示,并显示被缓存视频帧;
具体的,在判断出被缓存视频帧不满足第二条件,即被缓存视频帧满足“第一视频帧显示,被缓存视频帧的帧数小于第一预设视频帧阈值”这一情况时,可将第一视频帧标记为已显示,以证明视频播放器已开始播放视频帧,且播放过程存在延迟显示时间,此时,也可立即显示当前已缓存的多帧被缓存视频帧。
需要说明的是,当第一视频帧标记为已显示时,可在下一次接收到网络视频数据,并对其依次进行视频解码、缓存操作之后,对生成的被缓存视频帧直接进行显示。
本发明实施例公开了一种视频播放方法,通过判断被缓存视频帧是否满足第一条件,若不满足,则再判断该被缓存视频帧是否满足第二条件,若满足,则显示被缓存视频帧,若不满足,则在将第一视频帧标记为已显示时,显示被缓存视频帧;可见,对被缓存视频帧是否满足第一条件和第二条件依次进行判断,能够在确保同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动的基础上,对被缓存视频帧的帧数进行限制,以避免因被缓存视频帧的帧数过多所导致的视频帧延迟显示时间过长的问题。
在上述附图2所对应实施例的基础上,本发明实施例公开了另一种视频播放方法,请参见附图3,所述方法具体包括以下步骤:
S301:在接收到网络视频数据时,对网络视频数据进行视频解码,获得待缓存视频帧。
S302:将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,缓存序号是按照待缓存视频帧缓存到可用图像内存块的先后顺序而生成的,可用图像内存块从空闲队列获取。
S303:判断被缓存视频帧的帧数是否达到第二预设视频帧阈值,第二预设视频帧阈值大于第一预设视频帧阈值,若否,则执行S304,若是,则执行S305;
具体的,第二预设视频帧阈值可以是依据视频播放器所能缓存的最大视频帧数所预先设定的阈值,第二预设视频帧阈值小于视频播放器所能缓存的最大视频帧数,且大于第一预设视频帧阈值。
S304:判断被缓存视频帧是否满足第一条件,第一条件为第一视频帧未显示,且被缓存视频帧的帧数小于第一预设视频帧阈值,第一视频帧为最小的缓存序号对应的被缓存视频帧,若否,则执行S306,若是,则结束。
S305:显示被缓存视频帧;
具体的,在判断出被缓存视频帧的帧数达到第二预设视频帧阈值时,证明当前已缓存的被缓存视频帧的帧数累积过多,此时可立即显示当前已缓存的多帧被缓存视频帧,从而提高视频帧显示速度和播放实时性。
S306:判断被缓存视频帧的帧数是否满足第二条件,第二条件为被缓存视频帧的帧数大于或等于第一预设视频帧阈值,若是,则执行S307,若否,则执行S308。
S307:显示被缓存视频帧。
S308:将第一视频帧标记为已显示,并显示被缓存视频帧。
本发明实施例公开了一种视频播放方法,通过在将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号之后,判断被缓存视频帧的帧数是否达到第二预设视频帧阈值,若达到,则立即显示被缓存视频帧,在同时消除了网络抖动和解码抖动的基础上,有效防止了缓存的待缓存视频帧的数量超过缓存上限,同时提高了视频帧的播放实时性。
在上述附图1所对应实施例的基础上,本发明实施例公开了另一种视频播放方法,请参见附图4,所述方法具体包括以下步骤:
S401:在接收到网络视频数据时,对网络视频数据进行视频解码,获得待缓存视频帧。
S402:当空闲队列不存在可用图像内存块时,生成新图像内存块,并将新图像内存块作为可用图像内存块,将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号。
S403:判断被缓存视频帧是否满足预设显示条件,预设显示条件是依据被缓存视频帧的帧数及缓存序号而设定的,若是,则执行S104,若否,则执行S405。
S404:显示被缓存视频帧。
S405:结束。
本发明实施例公开了一种视频播放方法,通过在空闲队列不存在可用图像内存块时,生成新图像内存块,作为可用图像内存块,以便将待缓存视频帧缓存到该可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,可以有效避免因空闲队列内不存在可用图像内存块而导致无法对待缓存视频帧进行缓存的问题,同时,直接生成新图像内存块,节省了内存块的获取时间,进而提高了缓存效率。
本发明实施例公开了一种视频播放器,请参见附图5,具体包括:
视频解码器501,用于在接收到网络视频数据时,对网络视频数据进行视频解码,获得待缓存视频帧;
图像缓存器502,用于将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,缓存序号是按照待缓存视频帧缓存到可用图像内存块的先后顺序而生成的,可用图像内存块从空闲队列获取;
图像派发器503,用于判断被缓存视频帧是否满足预设显示条件,预设显示条件是依据被缓存视频帧的帧数及缓存序号而设定的;
图像渲染器504,用于若被缓存视频帧满足预设显示条件,显示被缓存视频帧。
本发明实施例公开了一种视频播放器,通过图像缓存器502将视频解码器501进行视频解码后所获得的待缓存视频帧缓存到可用图像内存块,并将缓存后的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,以便图像派发器503判断其是否满足依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,若满足,则由图像渲染器504立即显示被缓存视频帧;可见,对视频解码后获得的待缓存视频帧进行缓存操作,以延迟显示时间,能够同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动,进而提高视频播放质量,同时,将依据被缓存视频帧的帧数及缓存序号而设定的预设显示条件,作为判定被缓存视频帧能否被立即显示的标准,能够有效避免被缓存视频帧数量过多的问题发生。
本发明实施例提供的各个器件的工作过程,请参照附图1所对应的方法流程图,具体工作过程不再赘述。
可选的,针对上述附图5所对应实施例中图像派发器503判断被缓存视频帧是否满足预设显示条件,具体包括:
判断被缓存视频帧是否满足第一条件,第一条件为第一视频帧未显示,且被缓存视频帧的帧数小于第一预设视频帧阈值,第一视频帧为最小的缓存序号对应的被缓存视频帧;
若被缓存视频帧不满足第一条件,判断被缓存视频帧的帧数是否满足第二条件,第二条件为被缓存视频帧的帧数大于或等于第一预设视频帧阈值;
相应的,图像渲染器504,还用于若被缓存视频帧的帧数满足第二条件,显示被缓存视频帧。
本发明实施例中,通过图像派发器503判断被缓存视频帧是否满足第一条件,若不满足,则再判断该被缓存视频帧是否满足第二条件,若满足,则图像渲染器504显示被缓存视频帧,若不满足,则在图像渲染器504将第一视频帧标记为已显示时,显示被缓存视频帧;可见,对被缓存视频帧是否满足第一条件和第二条件依次进行判断,能够在确保同时消除网络视频数据所带来的网络抖动以及解码所带来的解码抖动的基础上,对被缓存视频帧的帧数进行限制,以避免因被缓存视频帧的帧数过多所导致的视频帧延迟显示时间过长的问题。
本发明实施例提供的各个器件的工作过程,请参照附图2所对应的方法流程图,具体工作过程不再赘述。
可选的,上述附图5所对应实施例中的图像缓存器502,还用于在将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号之后,判断被缓存视频帧的帧数是否达到第二预设视频帧阈值,第二预设视频帧阈值大于第一预设视频帧阈值;
相应的,图像渲染器504,还用于若被缓存视频帧的帧数达到第二预设视频帧阈值,显示被缓存视频帧;
图像派发器503,还用于若被缓存视频帧的帧数未达到第二预设视频帧阈值,判断被缓存视频帧是否满足第一条件。
本发明实施例中,通过图像缓存器502在将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号之后,判断被缓存视频帧的帧数是否达到第二预设视频帧阈值,若达到,则图像渲染器504立即显示被缓存视频帧,在同时消除了网络抖动和解码抖动的基础上,有效防止了图像缓存器502中缓存的待缓存视频帧的数量超过图像缓存器502的缓存上限,同时提高了视频帧的播放实时性。
本发明实施例提供的各个器件的工作过程,请参照附图3所对应的方法流程图,具体工作过程不再赘述。
可选的,上述附图5所对应实施例中的图像缓存器502,还用于在视频解码器501接收到网络视频数据,对网络视频数据进行视频解码,获得待缓存视频帧,且当空闲队列不存在可用图像内存块时,生成新图像内存块,并将新图像内存块作为可用图像内存块,将待缓存视频帧缓存到可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号。
本发明实施例中,通过图像缓存器502在空闲队列不存在可用图像内存块时,生成新图像内存块,作为可用图像内存块,以便将待缓存视频帧缓存到该可用图像内存块,并将缓存到可用图像内存块的待缓存视频帧作为被缓存视频帧,记录被缓存视频帧的帧数及缓存序号,可以有效避免因空闲队列内不存在可用图像内存块而导致无法对待缓存视频帧进行缓存的问题,同时,直接生成新图像内存块,节省了内存块的获取时间,进而提高了缓存效率。
本发明实施例提供的各个器件的工作过程,请参照附图4所对应的方法流程图,具体工作过程不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种视频播放方法,其特征在于,包括:
在接收到网络视频数据时,对所述网络视频数据进行视频解码,获得待缓存视频帧;
将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号,所述缓存序号是按照所述待缓存视频帧缓存到所述可用图像内存块的先后顺序而生成的,所述可用图像内存块从空闲队列获取;
判断所述被缓存视频帧是否满足预设显示条件,所述预设显示条件是依据所述被缓存视频帧的帧数及缓存序号而设定的;
若所述被缓存视频帧满足所述预设显示条件,显示所述被缓存视频帧。
2.根据权利要求1所述的视频播放方法,其特征在于,所述判断所述被缓存视频帧是否满足预设显示条件,包括:
判断所述被缓存视频帧是否满足第一条件,所述第一条件为第一视频帧未显示,且所述被缓存视频帧的帧数小于第一预设视频帧阈值,所述第一视频帧为最小的缓存序号对应的被缓存视频帧;
若所述被缓存视频帧不满足所述第一条件,判断所述被缓存视频帧的帧数是否满足第二条件,所述第二条件为所述被缓存视频帧的帧数大于或等于所述第一预设视频帧阈值;
相应的,所述若所述被缓存视频帧满足所述预设显示条件,显示所述被缓存视频帧,具体为:若所述被缓存视频帧的帧数满足所述第二条件,显示所述被缓存视频帧。
3.根据权利要求2所述的视频播放方法,其特征在于,在判断出所述被缓存视频帧的帧数不满足所述第二条件之后,还包括:
将所述第一视频帧标记为已显示,并显示所述被缓存视频帧。
4.根据权利要求2所述的视频播放方法,其特征在于,在所述将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号之后,还包括:
判断所述被缓存视频帧的帧数是否达到第二预设视频帧阈值,所述第二预设视频帧阈值大于所述第一预设视频帧阈值;
若所述被缓存视频帧的帧数达到所述第二预设视频帧阈值,显示所述被缓存视频帧;
若所述被缓存视频帧的帧数未达到所述第二预设视频帧阈值,返回执行所述判断所述被缓存视频帧是否满足第一条件。
5.根据权利要求1所述的视频播放方法,其特征在于,在接收到网络视频数据时,对所述网络视频数据进行视频解码,获得待缓存视频帧之后,还包括:
当所述空闲队列不存在所述可用图像内存块时,生成新图像内存块,并将所述新图像内存块作为所述可用图像内存块,返回执行所述将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号。
6.根据权利要求1所述的视频播放方法,其特征在于,在所述显示所述被缓存视频帧之后,还包括:
对所述可用图像内存块进行数据清除,并将数据清除后的可用图像内存块推入所述空闲队列。
7.一种视频播放器,其特征在于,包括:
视频解码器,用于在接收到网络视频数据时,对所述网络视频数据进行视频解码,获得待缓存视频帧;
图像缓存器,用于将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号,所述缓存序号是按照所述待缓存视频帧缓存到所述可用图像内存块的先后顺序而生成的,所述可用图像内存块从空闲队列获取;
图像派发器,用于判断所述被缓存视频帧是否满足预设显示条件,所述预设显示条件是依据所述被缓存视频帧的帧数及缓存序号而设定的;
图像渲染器,用于若所述被缓存视频帧满足所述预设显示条件,显示所述被缓存视频帧。
8.根据权利要求7所述的视频播放器,其特征在于,所述图像派发器判断所述被缓存视频帧是否满足预设显示条件,具体包括:
判断所述被缓存视频帧是否满足第一条件,所述第一条件为第一视频帧未显示,且所述被缓存视频帧的帧数小于第一预设视频帧阈值,所述第一视频帧为最小的缓存序号对应的被缓存视频帧;
若所述被缓存视频帧不满足所述第一条件,判断所述被缓存视频帧的帧数是否满足第二条件,所述第二条件为所述被缓存视频帧的帧数大于或等于所述第一预设视频帧阈值;
相应的,所述图像渲染器,还用于若所述被缓存视频帧的帧数满足所述第二条件,显示所述被缓存视频帧。
9.根据权利要求8所述的视频播放器,其特征在于,所述图像缓存器还用于:
在将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号之后,判断所述被缓存视频帧的帧数是否达到第二预设视频帧阈值,所述第二预设视频帧阈值大于所述第一预设视频帧阈值;
相应的,所述图像渲染器,还用于若所述被缓存视频帧的帧数达到所述第二预设视频帧阈值,显示所述被缓存视频帧;
所述图像派发器,还用于若所述被缓存视频帧的帧数未达到所述第二预设视频帧阈值,判断所述被缓存视频帧是否满足第一条件。
10.根据权利要求7所述的视频播放器,其特征在于,所述图像缓存器还用于:
在所述视频解码器接收到网络视频数据,对所述网络视频数据进行视频解码,获得待缓存视频帧,且当所述空闲队列不存在所述可用图像内存块时,生成新图像内存块,并将所述新图像内存块作为所述可用图像内存块,将所述待缓存视频帧缓存到可用图像内存块,并将缓存到所述可用图像内存块的待缓存视频帧作为被缓存视频帧,记录所述被缓存视频帧的帧数及缓存序号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584644.4A CN111356002B (zh) | 2018-12-24 | 2018-12-24 | 一种视频播放方法及视频播放器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584644.4A CN111356002B (zh) | 2018-12-24 | 2018-12-24 | 一种视频播放方法及视频播放器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111356002A true CN111356002A (zh) | 2020-06-30 |
CN111356002B CN111356002B (zh) | 2022-05-17 |
Family
ID=71193888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811584644.4A Active CN111356002B (zh) | 2018-12-24 | 2018-12-24 | 一种视频播放方法及视频播放器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111356002B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005117445A1 (en) * | 2004-05-27 | 2005-12-08 | Vividas Technologies Pty Ltd | Adaptive decoding of video data |
CN102378065A (zh) * | 2011-10-19 | 2012-03-14 | 江西省南城县网信电子有限公司 | 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统 |
CN103179454A (zh) * | 2011-12-26 | 2013-06-26 | 深圳万兴信息科技股份有限公司 | 视频数据的处理方法和装置 |
WO2013159368A1 (zh) * | 2012-04-26 | 2013-10-31 | 青岛海信信芯科技有限公司 | 数据叠加显示合成方法和系统及显示设备 |
CN103747317A (zh) * | 2013-12-27 | 2014-04-23 | 高新兴科技集团股份有限公司 | 一种播放库在不稳定网络下的流畅播放控制方法 |
CN105472404A (zh) * | 2014-09-11 | 2016-04-06 | 成都鼎桥通信技术有限公司 | 一种视频业务中的数据处理方法 |
CN108347645A (zh) * | 2018-01-19 | 2018-07-31 | 浙江大华技术股份有限公司 | 一种视频帧解码显示的方法及装置 |
CN108696771A (zh) * | 2017-04-11 | 2018-10-23 | 上海谦问万答吧云计算科技有限公司 | 一种视频播放方法及装置 |
-
2018
- 2018-12-24 CN CN201811584644.4A patent/CN111356002B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005117445A1 (en) * | 2004-05-27 | 2005-12-08 | Vividas Technologies Pty Ltd | Adaptive decoding of video data |
CN102378065A (zh) * | 2011-10-19 | 2012-03-14 | 江西省南城县网信电子有限公司 | 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统 |
CN103179454A (zh) * | 2011-12-26 | 2013-06-26 | 深圳万兴信息科技股份有限公司 | 视频数据的处理方法和装置 |
WO2013159368A1 (zh) * | 2012-04-26 | 2013-10-31 | 青岛海信信芯科技有限公司 | 数据叠加显示合成方法和系统及显示设备 |
CN103747317A (zh) * | 2013-12-27 | 2014-04-23 | 高新兴科技集团股份有限公司 | 一种播放库在不稳定网络下的流畅播放控制方法 |
CN105472404A (zh) * | 2014-09-11 | 2016-04-06 | 成都鼎桥通信技术有限公司 | 一种视频业务中的数据处理方法 |
CN108696771A (zh) * | 2017-04-11 | 2018-10-23 | 上海谦问万答吧云计算科技有限公司 | 一种视频播放方法及装置 |
CN108347645A (zh) * | 2018-01-19 | 2018-07-31 | 浙江大华技术股份有限公司 | 一种视频帧解码显示的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111356002B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618179B (zh) | 超高清视频直播的快速起播方法及装置 | |
WO2017107649A1 (zh) | 一种视频传输方法和装置 | |
WO2016131223A1 (zh) | 一种视频帧丢帧方法及视频发送装置 | |
WO2017092343A1 (zh) | 一种视频数据的检测方法和装置 | |
WO2017067489A1 (zh) | 机顶盒音视频同步的方法及装置、存储介质 | |
CN104081760A (zh) | 播放视频的方法、终端和系统 | |
CN108055566A (zh) | 音视频同步的方法、装置、设备及计算机可读存储介质 | |
CN106998485B (zh) | 视频直播方法及装置 | |
CN109660805B (zh) | 解码播放中音视频同步优化方法、存储介质、设备及系统 | |
US20180192090A1 (en) | Method of implementing audio and video live broadcast and server | |
CN106604064A (zh) | 一种快速开播方法及装置 | |
CN107071549A (zh) | 单解码器下多播放器快速切换方法、装置及存储介质 | |
CN109040830B (zh) | 直播播放卡顿的预测方法、切换方法及装置 | |
CN104822008A (zh) | 视频同步方法及装置 | |
CN113727185B (zh) | 视频帧播放方法及系统 | |
CN101931775A (zh) | 一种录像方法及装置 | |
CN108924574B (zh) | 录播系统中的丢包处理方法、装置、设备及存储介质 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN104053002A (zh) | 视频解码方法和视频解码装置 | |
CN113259779B (zh) | 一种视频处理方法、装置、设备及存储介质 | |
CN114827663A (zh) | 分布式直播插帧系统及方法 | |
CN111356002B (zh) | 一种视频播放方法及视频播放器 | |
CN110351576B (zh) | 一种在工业场景下进行实时视频流快速显示的方法及其系统 | |
CN112995720A (zh) | 一种音视频同步方法和装置 | |
CN110300326B (zh) | 一种视频卡顿的检测方法、装置、电子设备及存储介质 |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A video playback method and video player Effective date of registration: 20220920 Granted publication date: 20220517 Pledgee: Shenzhen hi tech investment small loan Co.,Ltd. Pledgor: HYTERA COMMUNICATIONS Corp.,Ltd. Registration number: Y2022980015798 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |