CN108924574B - 录播系统中的丢包处理方法、装置、设备及存储介质 - Google Patents

录播系统中的丢包处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108924574B
CN108924574B CN201810862484.9A CN201810862484A CN108924574B CN 108924574 B CN108924574 B CN 108924574B CN 201810862484 A CN201810862484 A CN 201810862484A CN 108924574 B CN108924574 B CN 108924574B
Authority
CN
China
Prior art keywords
frame
coding frame
packet loss
current
current coding
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
CN201810862484.9A
Other languages
English (en)
Other versions
CN108924574A (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.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shirui Electronics Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shirui Electronics 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 Shiyuan Electronics Thecnology Co Ltd, Guangzhou Shirui Electronics Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201810862484.9A priority Critical patent/CN108924574B/zh
Publication of CN108924574A publication Critical patent/CN108924574A/zh
Application granted granted Critical
Publication of CN108924574B publication Critical patent/CN108924574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Abstract

本发明公开了录播系统中的丢包处理方法、装置、设备及存储介质。该方法包括:从缓存队列中读取当前编码帧,并在判定符合解码条件时对当前编码帧进行解码;当确定当前编码帧解码后存在可输出图像时,判定当前编码帧是否存在丢包;若存在,则禁止当前编码帧的图像输出,清除缓存队列中满足清除要求的编码帧,返回执行编码帧的读取操作。利用该方法,能够在网络拥塞丢包时,禁止丢包编码数据帧的图像输出,并快速清除缓存队列中容易导致花屏扩大化的相关联编码帧,从而快速保证正常编码帧的图像输出,由此缩短因丢包而导致花屏画面的显示时间并避免了花屏画面范围的不断扩大,从而保证图象正常显示的快速恢复,更好提升了录播视频的显示效果。

Description

录播系统中的丢包处理方法、装置、设备及存储介质
技术领域
本发明涉及视频处理技术领域,尤其涉及录播系统中的丢包处理方法、装置、设备及存储介质。
背景技术
录播系统可以把现场摄录的视频、音频、电子设备的图像信号(包含电脑、视频展台等)进行整合同步录制,生成标准化的流媒体文件,用来对外直播、存储、后期编辑及点播。目前,随着人们对教育信息化重视程度的不断提升,适用于日常教学录制的常态化录播系统逐渐得到较广泛应用。
现有的常态化录播系统通常包括多台网络摄像机和一台录播主机,网络摄像机能够采集录制现场的原视频频码流,并形成H.264码流数据通过以太网传输给录播主机,录播主机则实时对H.264码流数据进行解码及图像输出显示。
在实现本发明过程中,发明人发现常态化录播系统存在下述缺陷:网络传输H.264码流数据时,由于网络问题可能出现H.264码流数据帧丢包的情况,但因录播主机解码的容错性,该码流数据帧仍会有图像输出,却因丢包而出现花屏,且根据H.264码流数据的帧序列特点,录播主机解码的下一码流数据帧为P帧时将参考上一码数数据帧的数据信息,由此将进一步扩大花屏现象,从而影响录播视频的显示效果。而现有的录播主机解码机制中尚不存在解决上述问题的处理策略。
发明内容
本发明实施例提供了录播系统中的丢包处理方法、装置、设备及存储介质,能够快速恢复录播过程中因丢包导致的录播图像的花屏显示。
第一方面,本发明实施例提供了一种录播系统中的丢包处理方法,包括:
从缓存队列中读取当前编码帧,并在判定符合解码条件时对所述当前编码帧进行解码;
当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;
若存在丢包,则禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,返回执行编码帧的读取操作。
第二方面,本发明实施例提供了一种录播系统中的丢包处理装置,包括:
编码帧读取模块,用于从缓存队列中读取当前编码帧;
第一执行模块,用于在判定符合解码条件时对所述当前编码帧进行解码;
丢包判定模块,用于当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;
丢包处理模块,用于当所述当前编码帧存在丢包时,禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,并重新通过编码帧读取模块进行编码帧读取。
第三方面,本发明实施例提供了一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的录播系统中的丢包处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的录播系统中的丢包处理方法。
在上述录播系统中的丢包处理方法、装置、设备及存储介质中,首先从缓存队列中读取当前编码帧,并在判定符合解码条件时对当前编码帧进行解码;然后当确定当前编码帧解码后存在可输出图像时,判定当前编码帧是否存在丢包;最终当确定存在丢包时,禁止当前编码帧图像输出,并清除缓存队列中满足清楚要求的编码帧,最终再返回执行编码帧的读取操作。上述技术方案,能够在网络拥塞丢包时,禁止丢包编码数据帧的图像输出,并快速清除缓存队列中容易导致花屏扩大化的相关联编码帧,从而快速保证正常编码帧的图像输出,由此减少了因丢包所导致花屏画面的显示时间并避免了花屏画面范围的不断扩大,从而保证图象正常显示的快速恢复,更好提升了录播视频的显示效果。
附图说明
图1为本发明实施例一提供的一种录播系统中的丢包处理方法的流程示意图;
图2为本发明实施例二提供的一种录播系统中的丢包处理方法的流程示意图;
图3为本发明实施例三提供的一种录播系统中的丢包处理装置的结构框图;
图4为本发明实施例四提供的一种计算机设备的硬件结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种录播系统中的丢包处理方法的流程示意图,该方法适用于采用常态化录播系统进行录播时对出现的丢包进行处理的情况,该方法可以由录播系统中的丢包处理装置执行,其中该装置可以由软件和/或硬件实现,并具体可集成在常态化录播系统中的录播主机上。
可以理解的是,本实施例所提供录播系统中的丢包处理方法,具体适用于常态化录播系统进行录播的过程中,具体地,在录播过程中,网络摄像机可以对捕获的图像信息进行H.264编码,并实时将编码后的码流数据帧通过以太网的形式传输给录播主机并缓存至录播主机上设定的缓存队列中。在现有技术方案中,对于录播主机而言,将从缓存队列中顺序读取编码帧,并直接对所读取编码帧进行解码,且只要确定所解码的编码帧存在可输出图像时直接进行图像输出,并不对编码帧进行丢包判定,由此若编码帧中存在丢包数据,则实时显示的图像中将出现花屏现象,由此影响录播的显示效果。采用本实施例提供的丢包处理方法,可以有效的提高录播过程中的录播显示效果。
可以知道的是,本实施例同样相当于对基于H.264编码的编码帧进行的处理,本实施例给出有关H.264编码所形成码流的相关介绍,具体地,H.264码流数据具有帧序列的形式体现,每个帧序列均可看作由一个关键帧(帧内编码帧,简称I帧)和一定数量的参考帧(帧间预测帧)组成,其中,所述帧内编码帧(关键帧,可以理解为对一帧画面信息的完整编码,后续只需要依靠关键帧自身的编码信息就可完成解码;所述帧间预测帧(参考帧),可理解为在上一编码帧的基础上仅对发生变化的部分画面信息进行编码,后续需要依靠上一编码帧的编码信息完成解码。与帧内编码帧相比,帧间预测帧通常占用更少的编码数据位,但其不足在于,由于帧间预测帧对上一编码帧(可能是帧内编码帧或帧间预测帧)有着复杂的依赖性,因此对传输错误非常敏感。此外,在H.264编码中,一组帧序列的帧数可用GOP表示,如GOP=30,则可认为该帧序列由1个帧内编码帧和29个帧间预测帧组成。在本实施例中,可认为网络摄像机以帧序列形式向录播主机进行码流传输,且传输的码流数据缓存至缓存队列中。
如图1所示,本发明实施例一提供的一种录播系统中的丢包处理方法,包括如下操作:
本实施例提供的丢包处理方法具体可认为由常态化录播系统中的录播主机执行。
S101、从缓存队列中读取当前编码帧,并在判定符合解码条件时对所述当前编码帧进行解码。
具体地,本步骤首先从缓存队列中顺序读取编码帧,并记为当前编码帧,根据缓存队列的数据结构特征,可知本步骤总是从缓存队列的队首进行编码帧读取,其中,本实施例的缓存队列可以是一个环形队列,由此保证缓存队列长度的可变性。
在本实施例中,对所读取当前编码帧进行编码前,增加了解码条件的判定操作,具体地,本实施例可以将解码条件设定为一个判定变量,通过判定变量的赋值来确定是否能够进行解码,此外,本实施例也可以采用其他的方式,如直接设定与编码帧关联的判定条件,以通过对编码帧的分析检测确定是否能够进行解码,其中,本实施例中的解码方式属于H.264编码的常规解码方式,这里不再详述。本实施例设定的解码条件,具体可用来对待解码的编码帧的筛选,由此筛选出有效的编码帧,以仅对有效编码帧进行解码,从而节省解码时间。
S102、当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包。
需要说明的是,根据H.264的编码特点,所形成的码流数据帧中并不是所有的编码帧都可以有图像输出,一般可认为只有遇到帧内编码帧以及帧间预测帧包含图像信息且所包含信息能够解码形成图像时才会有图像输出,示例性地,编码形成的编码帧还可以有不包含图像信息的帧数据,对于这种形式的帧数据,解码后仍不存在图像输出。
在本实施例中,本步骤可以确定解码后的当前编码帧能够输出图像信息时,才对当前编码帧进行丢包与否的判定,可以理解的是,对于解码后不存在可输出图像的当前编码帧,本实施例可直接对其进行丢弃并重新返回S101再次进行编码帧的读取。
可以知道的是,对于一个当前编码帧而言,往往可以包括一定数量的数据包,本实施例可以根据H.264编码过程中提供的相关状态检测的实现算法检测当前编码帧中是否存在丢包。
进一步地,判定所述当前编码帧是否存在丢包,包括:获取对所述当前编码帧进行码流检测后返回的状态检测结果;如果所述状态检测结果为码流错误,则确定所述当前编码帧存在丢包,否则,确定所述当前编码帧不存在丢包。
具体地,本实施例中的丢包判定实际相当于对采用H.264编码中提供的状态检测算法对当前编码帧进行状态检测后所返回状态检测结果的获取,一般地,状态检测算法中具体采用一个数据结构来表示各种可能出现的检测状态,由此基于状态检测算法完成编码帧的状态检测后,可以获取一个状态返回值(本实施例称为状态检测结果),本步骤根据所获取状态返回值的具体信息,可以确定当前编码帧中是否存在丢包。示例性地,当状态返回值为码流错误时,本实施就判定当前编码帧中存在丢包,否则,就确定当前编码帧中不存在丢包。
S103、若存在丢包,则禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,并重新返回执行S101。
在本实施例中,本步骤具体给出了丢包的具体处理方式,即,首先禁止当前编码帧的图像输出,并及时清除缓存队列中需要清除的编码帧,然后可直接丢弃该当前编码帧,重新返回S101读取新的当前编码帧。其中,本步骤对缓存队列中编码帧的清除操作,其目的在于对缓存队列中仍有可能存在丢包的编码帧或依赖于当前编码帧进行解码的编码帧进行的清理,由此相当于清除了缓存队列中多余的垃圾编码帧,从而实现对有效编码帧的快速读取,以此来避免花屏画面的显示,快速恢复录播过程中因丢包而产生的花屏。
本步骤具体可根据设定的清除要求进行编码帧清除,本实施例中的清除要求可基于上述清除编码帧所要达到的目的来设定,如设定清除要求为清除当前编码帧之后设定量有可能存在丢包的编码帧,又如,设定清除要求为清除当前编码帧之后所有需要依赖上一编码帧进行解码的编码帧,又或者,直接对缓存列表进行清空处理等。
进一步地,所述清除所述缓存队列中满足清除要求的编码帧,包括:
如果确定所述缓存队列中的队首编码帧为非帧内编码帧,则清除所述队首编码帧,并重复执行直至确定新的队首编码帧为帧内编码帧。
具体地,采用上述策略进行编码帧清除,可以实现对缓存队列中当前编码帧之后新的帧内编码帧之前的所有非帧内编码帧的有效清除,从而保证下一次读取的编码帧为帧内编码帧,根据帧内编码帧的特性可知,由于该种类型帧保留了完成的编码信息,在不依赖其他帧的情况下就可以实现图像显示,能够用于花屏画面的快速恢复。
可以知道的是,根据缓存队列的数据结构特性,可以仅对处于队首的编码帧(可称为队首编码帧)进行确定及清除,然后重复执行上述确定及清除的操作,直至位于队首的编码帧为帧内编码帧。
或者,所述清除所述缓存队列中满足清除要求的编码帧,包括:清空所述缓存队列中缓存的所有编码帧;相应的,在从缓存队列中读取当前编码帧之前,本实施例优化包括:如果所述缓存队列为空,则停止编码帧读取,直至网络摄像机向所述缓存队列输入新的编码帧。
需要说明的是,编码帧中出现丢包往往由网络传输拥塞导致,由此可认为一定时间内缓存缓存列表中的编码帧有可能均存在丢包的问题,为保证有效编码帧的快速获取,本实施例可优选直接清空缓存队列中当前缓存的所有编码帧。此外,考虑到H.264编码所形成编码序列的特点(一个帧内编码帧后总是跟很多数量的帧间预测帧)及缓存队列的队列长度,很可能出现整个缓存队列中全部为非帧内编码帧的情况,由此也可优选的采用直接清空缓存队列的手段。需要注意的是,采用该种手段进行清除时,很可能存在缓存队列在一定时间内为空的情况,该种情况时,本实施例可优选的停止缓存队列的编码帧读取,直至检测到缓存队列中由网络摄像机输入了新的编码帧。
本发明实施例一提供的一种录播系统中的丢包处理方法,首先从缓存队列中读取当前编码帧,并在判定符合解码条件时对当前编码帧进行解码;然后当确定当前编码帧解码后存在可输出图像时,判定当前编码帧是否存在丢包;最终当确定存在丢包时,禁止当前编码帧图像输出,并清除缓存队列中满足清楚要求的编码帧,最终再返回执行编码帧的读取操作。利用该方法,能够在网络拥塞丢包时,禁止丢包编码数据帧的图像输出,并快速清楚缓存队列中容易导致花屏扩大化的相关联编码帧,从而快速保证正常编码帧的图像输出,由此减少了因丢包所导致花屏画面的显示时间并避免了花屏画面范围的不断扩大,从而保证图象正常显示的快速恢复,更好提升了录播视频的显示效果。
实施例二
图2为本发明实施例二提供的一种录播系统中的丢包处理方法的流程示意图,本实施例以上述实施例为基础进行优化,在本实施例中,进一步将所述解码条件优选为:所设定错码判定变量的当前赋值为假;或者,所设定错码判定变量的当前赋值为真且所述当前编码帧为帧内编码帧;其中,所述错码判定变量的初始赋值为假。
进一步地,当判定所述当前编码帧存在丢包时,在返回执行编码帧的读取操作之前,本实施例还优化增加了:将所述错码判定变量赋值为真,并向网络摄像机发送输入帧内编码帧的请求指令,以使所述网络摄像机在接收到所述请求指令后编码生成新的帧内编码帧并输入至所述缓存队列。
同时,本实施例还优化包括:若不存在丢包,则将所述错码判定变量赋值为假,显示所述当前编码帧的图像输出,并返回执行编码帧的读取操作。
在上述优化的基础上,本实施例在从缓存队列中读取当前编码帧之后,还具体包括了:如果所述错码判定变量为真且所述当前编码帧为非帧内编码帧,则返回执行编码帧的读取操作。
如图2所示,本发明实施例二提供的一种录播系统中的丢包处理方法,具体包括如下操作:
S201、从缓存队列中读取当前编码帧。
示例性的,首先基于本步骤从缓存队列中读取编码帧,并记为当前编码帧。可以理解的是,如果缓存队列为空,则可先停止进行本步骤的操作,等待网络摄像机端输入基于H.264编码的码流数据帧。
S202、判定所设定错码判定变量的当前赋值是否为真,若是,则执行S203;若否,则执行S204。
具体地,本实施例可以在基于提供的丢包处理方法进行丢包处理之前,首先设定一个用于进行解码判定的判定变量,本实施例将该判定变量优选记为错码判定变量,并对其进行初始化赋值为假,该错码判定变量具体可理解为用于表示已读取的且进行了丢包判定的编码帧中是否存在丢包错码的情况,当错码判定变量的当前赋值为假时,可认为上次读取的编码帧中不存在丢包错码,反之,当错码判定变量的当前赋值为真时,可认为上次读取的编码帧中存在丢包错码。
本实施例可基于本步骤中错码判定变量的当前赋值,来判定是否符合解码条件,如,在错码判定变量的当前赋值为假时,可直接执行S204对当前编码帧进行解码;又如,在错码判定变量的当前赋值为真时,可执行S203进一步判定是否满足解码条件。
S203、判定当前编码帧是否为帧内编码帧,若是,则执行S204;若否,则返回执行S201。
具体地,基于上述S202的判定,确定错码判定变量的当前赋值为真后,需要进一步对所读取的当前编码帧进行检测,确定该当前编码帧是否为帧内编码帧,若是,则相当于满足解码条件,从而执行S204;若否,则无需进行后续的解码及丢包判定,可直接返回S201进行新的当前编码帧的读取。
S204、对当前编码帧进行解码。
S205、判定解码后的当前编码帧是否存在可输出图像,若是,则执行S206;若否,则返回执行S201。
示例性的,根据H.264编码的编码特点,可知缓存队列中缓存有不包含图像信息的编码帧,对这些编码帧解码后并不会存在可输出图像,此外,如果一个包含图像信息的编码帧在网络传输时丢失太多的图像信息,进行解码时同样无法获得可输出图像,本实施例对于无法输出图像的编码帧可直接进行丢弃处理,并重新返回S201的编码读取操作;反之,在确定解码后的当前编码帧存在可输出图像时,则可进一步执行S206。
S206、判定当前编码帧是否存在丢包,若是,则执行S207;若否,则执行S209。
本步骤具体对当前编码帧进行丢包判定,并由此确定后续的执行步骤,如,存在丢包时,可执行S207及S208;又如,不存在丢包时,则可直接执行S209。
S207、禁止当前编码帧的图像输出,并清除缓存队列中满足清除要求的编码帧。
具体地,若当前编码帧存在丢包时,为避免花屏画面的显示,则可直接禁止当前编码帧所对应图像信息的输出,同时,为快速恢复录播画面的正常显示,本步骤进一步对缓存队列中的编码帧按照清除要求进行相应的清除,本实施例为保证后续所读取编码帧的有效性,优选的采用清空缓存列表中缓存的所有编码帧来作为清除要求。
S208、将错码判定变量赋值为真,向网络摄像机发送输出帧内编码帧的请求指令,以使网络摄像机在接收到所述请求指令后编码生成新的帧内编码帧并输入至所述缓存队列,并返回执行S201。
执行上述S207之后,接着可基于本步骤修改错码判定变量的赋值,以确保错码判定变量的当前赋值为真,由此表明该次读取的编码帧中存在丢包错码的情况,同时,向网络摄像机发送输入帧内编码帧的请求指令,从而获得网络摄像机输入至缓存队列的帧内编码帧。
需要说明的是,对于常态化录播系统中的网络摄像机而言,在录播过程中,网络摄像机对采集的视频信息基于H.264编码以正常帧序列的形式编码形成码流数据,但当网络摄像机接收到录播主机端在进行丢包处理时发送的用于出入帧内编码帧的请求指令时,则立即停止之前的正常帧序列编码,然后实时编码形成一个帧内编码帧并经过以太网传输至录播主机的缓存队列中。
可以理解的是,网络摄像机端可以直接调用集成在自身中的帧内编码帧的编码申请函数,以此申请编码形成一个帧内编码帧,在此之后,可返回执行S201的编码帧读取,可以知道的是,若读取时检测到缓存队列为空,则可停止读取等待有新的编码帧输入后再继续执行S201,从而实现丢包处理的循环执行。
S209、将所述错码判定变量赋值为假,显示所述当前编码帧的图像输出,并返回执行S201。
具体地,若当前编码帧不存在丢包时,也可在错码判定变量的当前赋值不为假时将其修改为假,以用于表明该次读取的编码帧中不存在丢包错码,同时将当前编码帧对应的可输出图像正常输出显示,之后可返回S201再次读取新的编码帧,从而实现丢包处理的循环执行。
需要说明的是,可认为只要常态化录播系统处于工作状态,则本实施例提供的丢包处理方法便可一直循环执行。
本发明实施例二提供的一种录播系统中的丢包处理方法,首先具体化了一个错码判定变量来限定进行解码的当前编码帧,由此实现了仅对有效编码帧的快速解码,从而缩短了录播过程中编码帧解码的解码时间,同时,设定在出现网络拥塞丢包时进行禁止丢包编码数据帧的图像输出、快速清除缓存队列、向网络摄像机发送输入帧内编码帧申请等一系列操作,从而快速保证了正常编码帧的图像输出,由此减少了因丢包所导致花屏画面的显示时间并避免了花屏画面范围的不断扩大,从而保证图象正常显示的快速恢复,更好提升了录播视频的显示效果。
实施例三
图3为本发明实施例三提供的一种录播系统中的丢包处理装置的结构框图。该装置适用于采用常态化录播系统进行录播时对出现的丢包进行处理的情况,该装置其中该装置可以由软件和/或硬件实现,并具体可集成在常态化录播系统中的录播主机上。如图3所示,该装置包括:编码帧读取模块31、第一执行模块32、丢包判定模块33以及丢包处理模块34。
其中,编码帧读取模块31,用于从缓存队列中读取当前编码帧;
第一执行模块32,用于在判定符合解码条件时对所述当前编码帧进行解码;
丢包判定模块33,用于当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;
丢包处理模块34,用于当所述当前编码帧存在丢包时,禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,并重新通过编码帧读取模块31进行编码帧读取。
在常态化录播过程中,该装置首先通过编码帧读取模块31从缓存队列中读取当前编码帧,然后通过第一执行模块32在判定符合解码条件时对当前编码帧进行解码,之后通过丢包判定模块33当确定当前编码帧解码后存在可输出图像时,判定当前编码帧是否存在丢包,最终,通过丢包处理模块34在当前编码帧存在丢包时,静止当前编码帧的图像输出,清除缓存队列中满足清除要求的编码帧,并重新通过编码帧读取模块进行编码帧读取。
本发明实施例三提供的一种录播系统中的丢包处理装置,能够在网络拥塞丢包时,禁止丢包编码数据帧的图像输出,并快速清除缓存队列中容易导致花屏扩大化的相关联编码帧,从而快速保证正常编码帧的图像输出,由此减少了因丢包所导致花屏画面的显示时间并避免了花屏画面范围的不断扩大,从而保证图象正常显示的快速恢复,更好提升了录播视频的显示效果。
进一步地,所述解码条件,包括:所设定错码判定变量的当前赋值为假;或者,所设定错码判定变量的当前赋值为真且所述当前编码帧为帧内编码帧;其中,所述错码判定变量的初始赋值为假。
进一步地,丢包处理模块34,在重新通过编码帧读取模块31进行编码帧读取之前,还用于:将所述错码判定变量赋值为真,并向网络摄像机发送输入帧内编码帧的请求指令,以使所述网络摄像机在接收到所述请求指令后编码生成新的帧内编码帧并输入至所述缓存队列。
进一步地,该装置还优化包括了:图像显示模块35,用于当所述当前编码帧不存在丢包时,将所述错码判定变量赋值为假,显示所述当前编码帧的图像输出,并重新通过编码帧读取模块31进行编码帧读取。
在上述优化的基础上,该装置还优化包括了:第二执行模块36,用于在从缓存队列中读取当前编码帧之后,如果所述错码判定变量为真且所述当前编码帧为非帧内编码帧,则重新通过编码帧读取模块31进行编码帧读取。
在本实施例中,所述清除所述缓存队列中满足清除要求的编码帧,具体可包括:如果确定所述缓存队列中的队首编码帧为非帧内编码帧,则清除所述队首编码帧,并重复执行直至确定新的队首编码帧为帧内编码帧。
在本实施例中,所述清除所述缓存队列中满足清除要求的编码帧,具体包括:清空所述缓存队列中缓存的所有编码帧;
相应的,该装置还包括了第三执行模块37,用于在从缓存队列中读取当前编码帧之前,如果所述缓存队列为空,则停止编码帧读取,直至网络摄像机向所述缓存队列输入新的编码帧。
进一步地,丢包判定模块33,具体用于:
当确定所述当前编码帧解码后存在可输出图像时,获取对所述当前编码帧进行码流检测后返回的状态检测结果;如果所述状态检测结果为码流错误,则确定所述当前编码帧存在丢包,否则,确定所述当前编码帧不存在丢包。
实施例四
图4为本发明实施例四提供的一种计算机设备的硬件结构示意图,如图4所示,本发明实施例四提供的计算机设备,包括:处理器41和存储装置42。该计算机设备中的处理器可以是一个或多个,图4中以一个处理器41为例,所述计算机设备中的处理器41和存储装置42可以通过总线或其他方式连接,图4中以通过总线连接为例。
可以理解的是,该计算机设备属于具体可以是常态化录播系统中的录播主机,可以对常态化录播系统中网络摄像机传输的码流数据进行解码并显示。
该计算机设备中的存储装置42作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中录播系统中的丢包处理方法对应的程序指令/模块(例如,附图3所示的录播系统中的丢包处理装置中的模块,包括:编码帧读取模块31、第一执行模块32、丢包判定模块33以及丢包处理模块34,还包括:图像显示模块35、第二执行模块36以及第三执行模块37)。处理器41通过运行存储在存储装置42中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例中录播系统中的丢包处理方法。
存储装置42可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等(如上述实施例中的设定的错码判定变量的赋值信息等)。此外,存储装置42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
并且,当上述计算机设备所包括一个或者多个程序被所述一个或者多个处理器41执行时,程序进行如下操作:
从缓存队列中读取当前编码帧,并在判定符合解码条件时对所述当前编码帧进行解码;当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;若存在丢包,则禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,返回执行编码帧的读取操作。
此外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被控制装置执行时实现本发明实施例一或实施例二提供的录播系统中的丢包处理方法,该方法包括:从缓存队列中读取当前编码帧,并在判定符合解码条件时对所述当前编码帧进行解码;当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;若存在丢包,则禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,返回执行编码帧的读取操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种录播系统中的丢包处理方法,其特征在于,包括:
从缓存队列中读取当前编码帧,并在判定符合解码条件时对所述当前编码帧进行解码;
当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;
若存在丢包,则禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,返回执行编码帧的读取操作;
其中,所述解码条件,包括:
所设定错码判定变量的当前赋值为假;或者,所设定错码判定变量的当前赋值为真且所述当前编码帧为帧内编码帧;所述错码判定变量的初始赋值为假;
所述清除所述缓存队列中满足清除要求的编码帧,包括:
如果确定所述缓存队列中的队首编码帧为非帧内编码帧,则清除所述队首编码帧,并重复执行直至确定新的队首编码帧为帧内编码帧。
2.根据权利要求1所述的方法,其特征在于,当判定所述当前编码帧存在丢包时,在返回执行编码帧的读取操作之前,还包括:
将所述错码判定变量赋值为真,并向网络摄像机发送输入帧内编码帧的请求指令,以使所述网络摄像机在接收到所述请求指令后编码生成新的帧内编码帧并输入至所述缓存队列。
3.根据权利要求1所述的方法,其特征在于,还包括:
若不存在丢包,则将所述错码判定变量赋值为假,显示所述当前编码帧的图像输出,并返回执行编码帧的读取操作。
4.根据权利要求1-3任一所述的方法,其特征在于,所述从缓存队列中读取当前编码帧之后,还包括:
如果所述错码判定变量为真且所述当前编码帧为非帧内编码帧,则返回执行编码帧的读取操作。
5.根据权利要求1所述的方法,其特征在于,所述清除所述缓存队列中满足清除要求的编码帧,包括:
清空所述缓存队列中缓存的所有编码帧;
相应的,所述从缓存队列中读取当前编码帧之前,还包括:
如果所述缓存队列为空,则停止编码帧读取,直至网络摄像机向所述缓存队列输入新的编码帧。
6.根据权利要求1所述的方法,其特征在于,所述判定所述当前编码帧是否存在丢包,包括:
获取对所述当前编码帧进行码流检测后返回的状态检测结果;
如果所述状态检测结果为码流错误,则确定所述当前编码帧存在丢包,否则,确定所述当前编码帧不存在丢包。
7.一种录播系统中的丢包处理装置,其特征在于,包括:
编码帧读取模块,用于从缓存队列中读取当前编码帧;
第一执行模块,用于在判定符合解码条件时对所述当前编码帧进行解码,其中,所述解码条件为所设定错码判定变量的当前赋值为假;或者,所设定错码判定变量的当前赋值为真且所述当前编码帧为帧内编码帧;所述错码判定变量的初始赋值为假;
丢包判定模块,用于当确定所述当前编码帧解码后存在可输出图像时,判定所述当前编码帧是否存在丢包;
丢包处理模块,用于当所述当前编码帧存在丢包时,禁止所述当前编码帧的图像输出,清除所述缓存队列中满足清除要求的编码帧,并重新通过编码帧读取模块进行编码帧读取;
丢包处理模块执行清除所述缓存队列中满足清除要求的编码帧的步骤包括:
如果确定所述缓存队列中的队首编码帧为非帧内编码帧,则清除所述队首编码帧,并重复执行直至确定新的队首编码帧为帧内编码帧。
8.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的录播系统中的丢包处理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的录播系统中的丢包处理方法。
CN201810862484.9A 2018-08-01 2018-08-01 录播系统中的丢包处理方法、装置、设备及存储介质 Active CN108924574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810862484.9A CN108924574B (zh) 2018-08-01 2018-08-01 录播系统中的丢包处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810862484.9A CN108924574B (zh) 2018-08-01 2018-08-01 录播系统中的丢包处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108924574A CN108924574A (zh) 2018-11-30
CN108924574B true CN108924574B (zh) 2021-07-06

Family

ID=64393913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810862484.9A Active CN108924574B (zh) 2018-08-01 2018-08-01 录播系统中的丢包处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108924574B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519598A (zh) * 2019-08-23 2019-11-29 香港乐蜜有限公司 视频解码方法、装置及设备
CN111131210B (zh) 2019-12-16 2021-09-17 维沃移动通信有限公司 数据处理方法及电子设备
CN112312204B (zh) * 2020-09-30 2022-05-24 新华三大数据技术有限公司 一种视频流数据分片的组包方法及装置
CN113596556B (zh) * 2021-07-02 2023-07-21 咪咕互动娱乐有限公司 视频传输方法、服务器及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104757A (en) * 1998-05-15 2000-08-15 North Carolina State University System and method of error control for interactive low-bit rate video transmission
JP2007288604A (ja) * 2006-04-18 2007-11-01 Toshiba Corp 映像伝送システム及び映像伝送方法
CN101068210A (zh) * 2007-06-20 2007-11-07 中兴通讯股份有限公司 多媒体数据传输方法
CN102740064A (zh) * 2012-06-15 2012-10-17 福建星网视易信息系统有限公司 对讲系统中流媒体传输的组包方法
CN103124380A (zh) * 2012-11-16 2013-05-29 佳都新太科技股份有限公司 一种基于h264的实时流媒体丢包处理方案
CN104703053A (zh) * 2015-03-11 2015-06-10 青岛海尔智能家电科技有限公司 一种视频传输过程中丢包处理方法、装置和系统
CN107302523A (zh) * 2017-05-26 2017-10-27 中国科学院西安光学精密机械研究所 一种传输流丢包引起马赛克的解决方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104757A (en) * 1998-05-15 2000-08-15 North Carolina State University System and method of error control for interactive low-bit rate video transmission
JP2007288604A (ja) * 2006-04-18 2007-11-01 Toshiba Corp 映像伝送システム及び映像伝送方法
CN101068210A (zh) * 2007-06-20 2007-11-07 中兴通讯股份有限公司 多媒体数据传输方法
CN102740064A (zh) * 2012-06-15 2012-10-17 福建星网视易信息系统有限公司 对讲系统中流媒体传输的组包方法
CN103124380A (zh) * 2012-11-16 2013-05-29 佳都新太科技股份有限公司 一种基于h264的实时流媒体丢包处理方案
CN104703053A (zh) * 2015-03-11 2015-06-10 青岛海尔智能家电科技有限公司 一种视频传输过程中丢包处理方法、装置和系统
CN107302523A (zh) * 2017-05-26 2017-10-27 中国科学院西安光学精密机械研究所 一种传输流丢包引起马赛克的解决方法

Also Published As

Publication number Publication date
CN108924574A (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
CN108924574B (zh) 录播系统中的丢包处理方法、装置、设备及存储介质
JP6421422B2 (ja) 映像解析装置、監視装置、監視システムおよび映像解析方法
US9426477B2 (en) Method and apparatus for encoding surveillance video
WO2016131223A1 (zh) 一种视频帧丢帧方法及视频发送装置
US7346216B2 (en) Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, video encoding program, and video decoding program
US20100211690A1 (en) Block partitioning for a data stream
CN110267100A (zh) Flv视频的码率切换方法、装置、电子设备及存储介质
US8565315B2 (en) Image decoding device and image decoding method
US10681400B2 (en) Method and device for transmitting video
US9467639B2 (en) Video transmission apparatus and control method for video transmission apparatus
CN115134629A (zh) 视频传输方法、系统、设备及存储介质
CN110912922B (zh) 一种图像传输方法、装置、电子设备及存储介质
KR20230040872A (ko) 비디오 스트림의 전송을 제어하는 방법들 및 장치들
JP4610523B2 (ja) 動画処理装置
CN112911299B (zh) 一种视频码率控制方法、装置、电子设备和存储介质
JP6665913B2 (ja) 映像解析装置、監視装置、監視システムおよび映像解析方法
TWI700918B (zh) 具有初始化片段之視訊及音訊之寫碼
CN111083413B (zh) 一种图像显示方法、装置、电子设备及存储介质
KR100827152B1 (ko) Nal 유닛 에러 검출을 위한 효율적인 h.264 복호 방법및 장치
JP5672320B2 (ja) デコーダ装置
JP4373283B2 (ja) 映像音声復号方法、映像音声復号装置、映像音声復号プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
CN112135138A (zh) 视频码流丢包恢复方法、装置、设备及存储介质
CN117596391A (zh) 一种视频编码方法、装置、电子设备及存储介质
KR101640822B1 (ko) 영상 처리 장치 및 방법
CN115529474A (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