CN116095362A - 视频编码、解码、传输方法、电子设备以及存储介质 - Google Patents
视频编码、解码、传输方法、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN116095362A CN116095362A CN202211743994.7A CN202211743994A CN116095362A CN 116095362 A CN116095362 A CN 116095362A CN 202211743994 A CN202211743994 A CN 202211743994A CN 116095362 A CN116095362 A CN 116095362A
- Authority
- CN
- China
- Prior art keywords
- video
- packet
- redundancy
- redundant
- transmitted
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000005540 biological transmission Effects 0.000 title claims abstract description 82
- 239000000284 extract Substances 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000007812 deficiency Effects 0.000 claims description 2
- 238000012937 correction Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 241000533950 Leucojum Species 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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 or rendering scenes according to encoded video stream 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 or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing 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
-
- 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44227—Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
-
- 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)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出一种视频编码方法、视频解码方法、视频传输方法、电子设备以及计算机存储介质。电子设备获取待传输视频,及其视频特性和网络状态信息;按照视频特性和网络状态信息,计算待传输视频的冗余度;获取丢包率,判断冗余度是否小于等于丢包率;若否,则按照冗余度对待传输视频进行编码,获取编码后的视频码流。通过上述方式,结合视频特性和网络情况采用适合冗余度的前向纠错对视频数据进行视频传输,提高视频传输的稳定性,克服了现有技术视频传输在网络波动较大的场景下时,易导致视频卡顿问题。
Description
技术领域
本申请涉及视频网络传输技术领域,特别是涉及一种视频编码方法、传输方法、电子设备以及计算机存储介质。
背景技术
在基于IP网络的视频通信系统中,网络丢包对视频实时通信质量有非常严重的影响。例如造成视频的马赛克、卡顿、跳秒等问题,造成非常差的用户体验。特别是在网络环境不好的情况下,丢包是经常出现的问题。为了改善这个问题,常用的方法有:丢包重传和前向纠错。
现有技术冗余率设置的问题,视频传输在网络波动较大的场景下时,若数据的冗余率等于网络丢包率时,易导致视频卡顿。
发明内容
为解决上述技术问题,本申请提出了一种视频编码方法、视频解码方法、视频传输方法、电子设备以及计算机存储介质。
为解决上述技术问题,本申请提出一种视频编码方法,包括:
获取待传输视频,及其视频特性和网络状态信息;
按照所述视频特性和所述网络状态信息,计算所述待传输视频的冗余度;
获取丢包率,判断所述冗余度是否小于等于所述丢包率;
若否,则按照所述冗余度对所述待传输视频进行编码,获取编码后的视频码流。
其中,所述视频编码方法,还包括:
在所述冗余度小于等于所述丢包率时,按照所述丢包率作为新的冗余度对所述待传输视频进行编码,并传输编码后的视频码流。
其中,所述按照所述冗余度对所述待传输视频进行编码,包括:
判断所述冗余度是否小于等于1/2;
若是,则按照所述冗余度对所述待传输视频进行编码;
若否,则按照1/2作为新的冗余度对所述待传输视频进行编码。
其中,所述视频特性包括视频帧率和视频码率,所述网络状态信息包括可用带宽;
所述按照所述视频特性和所述网络状态信息,计算所述待传输视频的冗余度,包括:
根据所述视频帧率和视频码率计算所述待传输视频的帧大小;
利用所述待传输视频的帧大小和所述可用带宽获取单帧视频传输时间,利用所述帧率以及所述单帧视频传输时间获取单帧冗余传输时间;
按照所述单帧冗余传输时间和所述可用带宽计算冗余大小;
基于所述冗余大小和所述帧大小,计算所述待传输视频的冗余度。
为解决上述技术问题,本申请提出一视频解码方法,包括:
获取视频码流,基于所述视频码流获取视频包和冗余包,其中,所述视频码流由上述的视频编码方法编码得到;
在所述视频包缺失视频数据时,从所述冗余包中提取所述视频包缺失的冗余视频数据;
对所述视频包以及所述冗余视频数据进行解码,获得传输视频。
其中,所述基于所述视频码流获取视频包和冗余包之后,所述视频解码方法包括:
在所述视频包存在丢包情况时,获取丢包信息;
将所述丢包信息传输到前端视频设备,以使所述前端视频设备获取所述丢包信息中的丢包率,所述丢包率用于计算冗余度。
其中,所述视频解码方法,还包括:
基于所述视频码流获取所述视频包,将所述视频包存入视频包缓存队列;
基于所述视频码流获取所述冗余包,将所述冗余包存入冗余包缓存队列;
基于所述视频包缓存队列中的视频包判断所述视频包是否缺失;
若是,从所述冗余包缓存队列提取所述视频包缺失的冗余视频数据,对所述视频包缓存队列中的视频包以及所述冗余视频数据进行解码,获得传输视频;
若否,对所述视频包缓存队列中的视频包进行解码,获得传输视频。
为解决上述技术问题,本申请还提出一种视频传输方法,所述视频传输方法应用于一种视频传输系统,其中,所述视频传输系统包括前端视频设备和后端拉流设备;所述视频传输方法包括:
所述前端视频设备获取待传输视频,及其视频特性;
所述后端拉流设备将网络状态信息传输至所述前端视频设备;
所述前端视频设备按照所述视频特性和所述网络状态信息,计算所述待传输视频的冗余度;
所述前端视频设备从所述网络状态信息获取丢包率,判断所述冗余度是否小于等于所述丢包率;
若否,则所述前端视频设备按照所述冗余度对所述待传输视频进行编码,获取编码后的视频码流,并将所述视频码流传输至所述后端拉流设备。
其中,所述将所述视频码流传输至所述后端拉流设备之后,视频传输方法还包括:
所述后端拉流设备获取视频码流,基于所述视频码流获取视频包和冗余包;
在所述视频包缺失视频数据时,所述后端拉流设备从所述冗余包中提取所述视频包缺失的冗余视频数据;
所述后端拉流设备对所述视频包以及所述冗余视频数据进行解码,获得传输视频。
为解决上述技术问题,本申请还提出一种电子设备,所述电子设备包括存储器以及与所述存储器耦接的处理器;
其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的视频编码方法、上述的视频解码方法,和/或上述的视频传输方法。
为解决上述技术问题,本申请还提出一种计算机存储介质,所述计算机存储介质用于存储程序数据,所述程序数据在被计算机执行时,用以实现上述的视频编码方法、上述的视频解码方法,和/或上述的视频传输方法。
与现有技术相比,本申请的有益效果是:电子设备获取待传输视频,及其视频特性和网络状态信息;按照视频特性和网络状态信息,计算待传输视频的冗余度;获取丢包率,判断冗余度是否小于等于丢包率;若否,则按照冗余度对待传输视频进行编码,获取编码后的视频码流。通过上述方式,结合视频特性和网络情况采用适合冗余度的前向纠错对视频数据进行视频传输,提高视频传输的稳定性,克服了现有技术视频传输在网络波动较大的场景下时,易导致视频卡顿问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1是本申请提供的视频编码方法的一实施例的流程示意图;
图2是本申请提供的视频编码方法根据视频特性结合网络状况设置冗余度传输示意图;
图3是本申请提供的视频编码方法的一实施例中步骤S12的子步骤流程示意图;
图4是本申请提供的视频编码方法的自适应前向纠错的流程示意图;
图5是本申请提供的视频解码方法的一实施例的流程示意图;
图6是本申请提供的视频解码方法的另一实施例的流程示意图;
图7是本申请提供的视频解码方法的后端处理流程示意图;
图8是本申请提供的视频传输系统的结构示意图;
图9是本申请提供的视频传输方法的一实施例的流程示意图;
图10是本申请提供的电子设备一实施例的结构示意图;
图11是本申请提供的计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请的视频编码方法、视频解码方法、视频传输方法应用于一种电子设备,其中,本申请的电子设备可以为服务器,也可以为本地终端,还可以为由服务器和本地终端相互配合的系统。相应地,电子设备包括的各个部分,例如各个单元、子单元、模块、子模块可以全部设置于服务器中,也可以全部设置于本地终端中,还可以分别设置于服务器和本地终端中。
进一步地,上述服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,例如用来提供分布式服务器的软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
具体请参阅图1和图2,图1是本申请提供的视频编码方法的一实施例的流程示意图;图2是本申请提供的视频编码方法根据视频特性结合网络状况设置冗余度传输示意图。
如图1所示,其具体步骤如下:
步骤S11:获取待传输视频,及其视频特性和网络状态信息。
其中,电子设备包括有一前端视频设备,该前端视频设备用于产生待传输视频,前端视频设备可以为视频监控或视频储存设备等任一可以获取视频的设备。
具体地,电子设备通过前端视频设备获取待传输视频,对待传输视频进行解析,获取待传输视频的视频特性。
进一步地,电子设备还包括通讯模块,电子设备可以通过通讯模块对网络状态信息的反馈,获取待传输视频所处的网络状态信息。
其中,视频特性包括但不限于待传输视频的帧率F、码率M,网络状态信息包括但不限于可用带宽W和丢包率P。
视频帧率F(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为视频每秒的显示帧数。
视频码率M为数据传输时单位时间传送的数据位数,是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。
可用带宽W为是指在一个固定的时间内(1秒),能通过的最大位数据。
丢包率P为是指测试中所丢失数据包数量占所发送数据组的比率。
步骤S12:按照视频特性和网络状态信息,计算待传输视频的冗余度。
具体地,电子设备根据视频特性和网络状态信息,根据预设规则,计算待传输视频的冗余度。具体请参见步骤S121-步骤S124。
如图2所示,假设网络可用带宽为8Mbps,码流大小为4Mbps,帧率为25fps,则每帧平均需要传输时间为20ms,为了不增加延时,剩余可用于传输时间为20ms;可以利用20ms可传输时间计算可发送冗余数据。即可在不增加延时的情况下,最大可实现1倍冗余度。能降低因网络波动导致的FEC解码恢复失败,造成视频卡顿问题。
进一步地,本申请提出步骤S121-步骤S124作为步骤S12的子步骤,作为预设规则计算待传输视频的冗余度。具体请参见图3和图4,图3是本申请提供的视频编码方法的一实施例中步骤S12的子步骤流程示意图;图4是本申请提供的视频编码方法的自适应前向纠错的流程示意图。
在本实施例中,视频特性包括视频帧率M和视频码率F,网络状态信息包括可用带宽W和丢包率P。
如图3所示,其具体步骤如下:
步骤S121:根据视频帧率和视频码率计算待传输视频的帧大小。
具体地,电子设备根据待传输视频的视频码率F和视频码率M计算待传输视频每帧的平均大小。具体公式如下:M/F
步骤S122:利用待传输视频的帧大小和可用带宽获取单帧视频传输时间,利用帧率以及单帧视频传输时间获取单帧冗余传输时间。
具体地,电子设备利用待传输视频的每帧的平均大小除以可用带宽,得到单帧视频传输时间,即电子设备传输1帧视频所需要的时间。具体公式如下:M/F/W。
进一步地,电子设备利用帧率得到帧间隔,电子设备将帧间隔与传输1帧视频所需要的时间作差,得到用于传输冗余数据的时间。具体公式如下:1/F-M/F/W。
步骤S123:按照单帧冗余传输时间和可用带宽计算冗余大小。
具体地,电子设备将单帧冗余传输时间与带宽相乘,计算可传输冗余数据的大小。具体公式如下:(1/F-M/F/W)*W。
步骤S124:基于冗余大小和帧大小,计算待传输视频的冗余度。
具体地,计算待传输视频的冗余度。具体公式如下:K=[(1/F-M/F/W)*W]/[(1/F-M/F/W)*W+M/F]。
通过步骤S121-步骤S124,根据视频特性和网络状态信息计算出冗余度,为视频纠错提供准确的冗余度。
步骤S13:获取丢包率,判断冗余度是否小于等于丢包率。
具体地,电子设备通过内设的通信模块,获取丢包率,对丢包率的数值进行解析,判断由步骤S121-步骤S124中计算得到的冗余度与丢包率的数值关系,若冗余度大于丢包率,则继续执行步骤S14。
在冗余度小于等于丢包率时,按照丢包率作为新的冗余度对待传输视频进行编码,并传输编码后的视频码流。
步骤S14:按照冗余度对待传输视频进行编码,获取编码后的视频码流。
具体地,当电子设备判断待传输视频的冗余度大于丢包率时,在本申请一实施例中,电子设备继续判断冗余度是否大于冗余度1/2,如图4所示,电子设备根据步骤S121-步骤S124的方法,当初步计算冗余度大于丢包率后,根据视频特性和网络信息继续判断冗余度是否小于等于1/2。
若冗余度小于等于1/2,则电子设备按照冗余度的数值对待传输视频进行编码。冗余度大于1/2,则电子设备按照1/2作为新的冗余度对待传输视频进行编码。
通过上述方式,能降低因网络波动导致的FEC解码恢复失败,造成视频卡顿问题。
本申请还提出一种视频解码方法,用于对获取最终的传输视频。具体请参见图5,图5是本申请提供的视频解码方法的一实施例的流程示意图。
如图5所示,其具体步骤如下:
步骤S21:获取视频码流,基于视频码流获取视频包和冗余包。
具体地,电子设备通过监控设备或视频储存设备获取视频码流,对视频码流进行解析,获取视频特性,根据视频特性获取该视频码流的视频包和冗余包。
其中,视频码流由步骤S11-步骤S14中的视频编码方法编码得到。
在本申请一实施例中,步骤S21之后还而可以包括以下步骤:
在视频包存在丢包情况时,获取丢包信息。将丢包信息传输到前端视频设备,以使前端视频设备获取丢包信息中的丢包率,丢包率用于计算冗余度。
具体地,电子设备检测到视频包存在丢包情况,例如视频不连续、缺失帧、雪花、卡顿等现象时,获取丢包信息。其中,丢包信息可以为缺失帧的视频数据还可以为缺失的视频包。
进一步地,电子设备将丢包信息通过通讯设备或任一能够传输数据的服务器将丢包信息传输到前端设备,前端设备包括FEC译码模块,通过对丢包信息进行解析,能够获取丢包信息中的丢包率。该丢包率用于计算冗余度,具体计算方式同步骤S121-步骤S124,此处不再过多赘述。
步骤S22:在视频包缺失视频数据时,从冗余包中提取视频包缺失的冗余视频数据。
具体地,电子设备对视频包进行解析,在视频包不连续或出现空白时,从冗余包中提取缺失的冗余视频数据,按照缺失的视频包的位置和原始视频的视频序列,将冗余视频数据编码为冗余包,进行重新编码。
步骤S23:对视频包以及冗余视频数据进行解码,获得传输视频。
具体地,电子设备对视频包和步骤S22提出到的冗余视频数据按照添加顺序进行解码,获取完整连续的传输视频。
通过步骤S21-步骤S23,结合视频特性和网络情况采用适合冗余度的前向纠错对视频数据进行视频传输,提高视频传输的稳定性,克服了现有技术视频传输在网络波动较大的场景下时,易导致视频卡顿问题。
为了进一步获取传输视频,本申请还提出一实施例,用于实现视频解码,具体请参见图6和图7,图6是本申请提供的视频解码方法的另一实施例的流程示意图;图7是本申请提供的视频解码方法的后端处理流程示意图。
如图6所示,其具体步骤如下:
步骤S31:基于视频码流获取视频包,将视频包存入视频包缓存队列。
具体地,视频传输系统包括前端视频设备和后端拉流设备,视频传输系统通过前端视频设备获取视频码流,首先判断是否反馈丢包信息,如果需要,则进行丢包信息反馈,进一步判断该视频流是否有丢包现象,若无,继续判断该视频流是否为视频包,若为视频包,则放入视频包缓存队列。若非视频包,则执行步骤S32。
进一步地,在本申请一实施例中,电子设备可以通过计算视频流中的数据信息或者编码信息判断视频流为视频包还是冗余包。
在本申请其他实施例中,还可以通过预设的模板信息数据比对判断视频流为视频包还是冗余包。
步骤S32:基于视频码流获取冗余包,将冗余包存入冗余包缓存队列。
具体地,电子设备将视频码流传输至冗余度计算模块,如步骤S121-步骤S124的计算方式获取冗余数据,通过FEC编码模块获取冗余包,将冗余包存入冗余包缓存队列。
步骤S33:基于视频包缓存队列中的视频包判断视频包是否缺失。
具体地,在本申请一实施例中,电子设备对视频缓存队列中的视频包进行解析,通过判断视频包的完整性和连续度进一步判断视频包中是否有缺失的视频包。
本申请其他实施例中,电子设备可以直接对视频包缓存队列中的视频包进行显示和播放,若出现卡顿、雪花、清晰度极低等情况,可以判断该视频包中有缺失的视频包。
电子设备通过任一方式检测到视频包缓存队列中的视频包有缺失时,则执行步骤S34。若视频包缓存队列中的视频包没有缺失,则继续执行步骤S35。
步骤S34:从冗余包缓存队列提取视频包缺失的冗余视频数据,对视频包缓存队列中的视频包以及冗余视频数据进行解码,获得传输视频。
具体地,当电子设备检测视频缓存队列中的视频包有视频包缺失的情况下,将冗余包缓存队列中的冗余数据添加至视频包中,对添加了冗余数据的视频包进行解码,获得完整、连续的传输视频。
步骤S35:对视频包缓存队列中的视频包进行解码,获得传输视频。
具体地,当视频包没有缺失时,电子设备直接对视频包进行解码,获得完整、连续的传输视频。
通过步骤S31-步骤S35,根据视频特性和网络传输信息进行冗余包的设置,根据冗余包缓存队列和视频包缓存队列进行解码,获取传输视频,提高视频的传输质量。
本申请还提出一种视频传输方法,该视频传输方法应用于一种视频传输系统,具体请结合图8参见图9,图9是本申请提供的视频传输方法的一实施例的流程示意图。图8是本申请提供的视频传输系统的结构示意图。
如图8所示,视频传输系统包括前端视频设备和后端拉流设备。
如图9所示,其具体步骤如下:
步骤S41:前端视频设备获取待传输视频,及其视频特性。
具体地,前端视频设备通过实时监控或调取存储记录,获取待传输视频,及其视频特性。
其中,前端视频设备可以为任一监控设备或视频录制设备。
其中,待传输视频的视频特性包括但不限于待传输视频的帧率、码率。
进一步地,前端视频设备还包括FEC冗余度计算模块和FEC编码模块。
步骤S42:后端拉流设备将网络状态信息传输至前端视频设备。
具体地,后端拉流设备通过通讯模块,将待传输视频所处的网络状态信息实时传输至前端视频设备。
其中,网络状态信息包括但不限于丢包率、探测带宽的大小。
步骤S43:前端视频设备按照视频特性和网络状态信息,计算待传输视频的冗余度。
具体地,前端视频设备设置有通讯模块和FEC冗余度计算模块,前端视频设备通过通讯模块获取由后端拉流设备反馈的网络状态信息,将网络状态信息、视频特性同时传输至FEC冗余度计算模块。通过FEC冗余度计算模块,计算待传输视频的冗余度。具体计算方式请参见步骤S21-步骤S24。
步骤S44:前端视频设备从网络状态信息获取丢包率,判断冗余度是否小于等于丢包率。
具体地,前端视频设备对网络状态信息进行解析,进一步获取丢包率,通过数值比较器或数值算法模块计算冗余度与丢包率的大小关系,若冗余度小于等于丢包率,则继续通过步骤S121-步骤S124的方法设置冗余度。若冗余度大于丢包率,则继续执行步骤S45。
步骤S45:前端视频设备按照冗余度对待传输视频进行编码,获取编码后的视频码流,并将视频码流传输至后端拉流设备。
具体地,当冗余度大于丢包率时,则将丢包率的数值设置为冗余度的数值,前端视频设备按照该数值对待传输视频进行编码,即将视频数据、冗余数据结合进行编码,进一步将视频码流传输至后端拉流设备。
步骤S46:后端拉流设备获取视频码流,基于视频码流获取视频包和冗余包。
具体地,后盾拉流设备获取视频码流,获取视频码流中的视频包和冗余包。其中,视频包中包括若干视频数据,冗余包中包括若干冗余数据。
进一步地,后端拉流设备还包括FEC译码模块。
步骤S47:在视频包缺失视频数据时,后端拉流设备从冗余包中提取视频包缺失的冗余视频数据。
具体地,当后端拉流设备出现卡顿、雪花等现象时,即视频包中确实视频数据的情况,后端拉流设备通过FEC译码模块对冗余包进行解析,从冗余包中获取视频包中缺失的数据。
步骤S48:后端拉流设备对视频包以及冗余视频数据进行解码,获得传输视频。
具体地,后端拉流设备进一步将步骤S47中获取的冗余视频数据和原视频包中的视频数据按照特定的排列顺序进行解码,获得传输视频。
通过步骤S41-步骤S47,据视频特性结合网络状况采用自适应冗余率的前向纠错方法对视频数据进行冗余,解决现有技术冗余率设置的问题,客服了视频传输在网络波动较大的场景下时,若数据的冗余度率等于网络丢包率时,易导致视频卡顿的问题。
为实现上述视频编码方法、视频解码方法和视频传输方法,本申请还提出了一种电子设备,具体请参阅图10,图10是本申请提供的电子设备一实施例的结构示意图。
本实施例的电子设备400包括处理器41、存储器42、输入输出设备43以及总线44。
该处理器41、存储器42、输入输出设备43分别与总线44相连,该存储器42中存储有程序数据,处理器41用于执行程序数据以实现上述实施例所述的视频编码方法、视频解码方法和视频传输方法。
在本申请实施例中,处理器41还可以称为CPU(Central Processing Unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(DSP,Digital Signal Process)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器41也可以是任何常规的处理器等。
本申请还提供一种计算机存储介质,请继续参阅图11,图11是本申请提供的计算机存储介质一实施例的结构示意图,该计算机存储介质500中存储有计算机程序51,该计算机程序51在被处理器执行时,用以实现上述实施例的视频编码方法、视频解码方法和视频传输方法。
本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,方式利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (11)
1.一种视频编码方法,其特征在于,所述视频编码方法包括:
获取待传输视频,及其视频特性和网络状态信息;
按照所述视频特性和所述网络状态信息,计算所述待传输视频的冗余度;
获取丢包率,判断所述冗余度是否小于等于所述丢包率;
若否,则按照所述冗余度对所述待传输视频进行编码,获取编码后的视频码流。
2.根据权利要求1所述的视频编码方法,其特征在于,
所述视频编码方法,还包括:
在所述冗余度小于等于所述丢包率时,按照所述丢包率作为新的冗余度对所述待传输视频进行编码,并传输编码后的视频码流。
3.根据权利要求1或2所述的视频编码方法,其特征在于,
所述按照所述冗余度对所述待传输视频进行编码,包括:
判断所述冗余度是否小于等于1/2;
若是,则按照所述冗余度对所述待传输视频进行编码;
若否,则按照1/2作为新的冗余度对所述待传输视频进行编码。
4.根据权利要求1所述的视频编码方法,其特征在于,
所述视频特性包括视频帧率和视频码率,所述网络状态信息包括可用带宽;
所述按照所述视频特性和所述网络状态信息,计算所述待传输视频的冗余度,包括:
根据所述视频帧率和视频码率计算所述待传输视频的帧大小;
利用所述待传输视频的帧大小和所述可用带宽获取单帧视频传输时间,利用所述帧率以及所述单帧视频传输时间获取单帧冗余传输时间;
按照所述单帧冗余传输时间和所述可用带宽计算冗余大小;
基于所述冗余大小和所述帧大小,计算所述待传输视频的冗余度。
5.一种视频解码方法,其特征在于,所述视频解码方法还包括:
获取视频码流,基于所述视频码流获取视频包和冗余包,其中,所述视频码流由权利要求1至4任一项所述的视频编码方法编码得到;
在所述视频包缺失视频数据时,从所述冗余包中提取所述视频包缺失的冗余视频数据;
对所述视频包以及所述冗余视频数据进行解码,获得传输视频。
6.根据权利要求5所述的视频解码方法,其特征在于,
所述基于所述视频码流获取视频包和冗余包之后,所述视频解码方法包括:
在所述视频包存在丢包情况时,获取丢包信息;
将所述丢包信息传输到前端视频设备,以使所述前端视频设备获取所述丢包信息中的丢包率,所述丢包率用于计算冗余度。
7.根据权利要求5所述的视频解码方法,其特征在于,
所述视频解码方法,还包括:
基于所述视频码流获取所述视频包,将所述视频包存入视频包缓存队列;
基于所述视频码流获取所述冗余包,将所述冗余包存入冗余包缓存队列;
基于所述视频包缓存队列中的视频包判断所述视频包是否缺失;
若是,从所述冗余包缓存队列提取所述视频包缺失的冗余视频数据,对所述视频包缓存队列中的视频包以及所述冗余视频数据进行解码,获得传输视频;
若否,对所述视频包缓存队列中的视频包进行解码,获得传输视频。
8.一种视频传输方法,其特征在于,所述视频传输方法应用于一种视频传输系统,其中,所述视频传输系统包括前端视频设备和后端拉流设备;所述视频传输方法包括:
所述前端视频设备获取待传输视频,及其视频特性;
所述后端拉流设备将网络状态信息传输至所述前端视频设备;
所述前端视频设备按照所述视频特性和所述网络状态信息,计算所述待传输视频的冗余度;
所述前端视频设备从所述网络状态信息获取丢包率,判断所述冗余度是否小于等于所述丢包率;
若否,则所述前端视频设备按照所述冗余度对所述待传输视频进行编码,获取编码后的视频码流,并将所述视频码流传输至所述后端拉流设备。
9.根据权利要求8所述的视频传输方法,其特征在于,
所述将所述视频码流传输至所述后端拉流设备之后,视频传输方法还包括:
所述后端拉流设备获取视频码流,基于所述视频码流获取视频包和冗余包;
在所述视频包缺失视频数据时,所述后端拉流设备从所述冗余包中提取所述视频包缺失的冗余视频数据;
所述后端拉流设备对所述视频包以及所述冗余视频数据进行解码,获得传输视频。
10.一种电子设备,其特征在于,所述电子设备包括存储器以及与所述存储器耦接的处理器;
其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如权利要求1至4任一项所述的视频编码方法、权利要求5至7任一项所述的视频解码方法,和/或权利要求8至9任一项所述的视频传输方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储程序数据,所述程序数据在被计算机执行时,用以实现如权利要求1至4任一项所述的视频编码方法、权利要求5至7任一项所述的视频解码方法,和/或权利要求8至9任一项所述的视频传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211743994.7A CN116095362A (zh) | 2022-12-30 | 2022-12-30 | 视频编码、解码、传输方法、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211743994.7A CN116095362A (zh) | 2022-12-30 | 2022-12-30 | 视频编码、解码、传输方法、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116095362A true CN116095362A (zh) | 2023-05-09 |
Family
ID=86207680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211743994.7A Pending CN116095362A (zh) | 2022-12-30 | 2022-12-30 | 视频编码、解码、传输方法、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116095362A (zh) |
-
2022
- 2022-12-30 CN CN202211743994.7A patent/CN116095362A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9438913B2 (en) | Method, apparatus and system for evaluating quality of video streams | |
US10334289B2 (en) | Efficient approach to dynamic frame size and frame rate adaptation | |
KR101464456B1 (ko) | 비디오 데이터 품질 평가 방법 및 장치 | |
CA2666376C (en) | A method of determining video quality | |
EP1709759B1 (en) | Methods and apparatuses for measuring transmission quality of multimedia data | |
EP2876881B1 (en) | Method and system for determining a quality value of a video stream | |
CN109168083B (zh) | 一种流媒体实时播放方法及装置 | |
US8094578B2 (en) | Method of predicting the transmission error rate in a communication network and server implementing such a method | |
US8184529B2 (en) | Communication apparatus, method, and program for transmitting and receiving packet data | |
EP1391122A2 (en) | Distortion quantizer model for video encoding | |
JP2009530892A (ja) | ビデオ画像シーケンスの時間的頻度を適合させる方法および装置 | |
CN110572695A (zh) | 媒体数据的编码、解码方法及电子设备 | |
US20110187926A1 (en) | Apparatus and method for correcting jitter | |
JP4460506B2 (ja) | ユーザ体感品質推定装置、方法、およびプログラム | |
US9094685B2 (en) | Efficient coding complexity estimation for video transcoding systems | |
US7912974B2 (en) | Transmitting over a network | |
WO2021181681A1 (ja) | 数理モデル導出装置、数理モデル導出方法及びプログラム | |
CN116095362A (zh) | 视频编码、解码、传输方法、电子设备以及存储介质 | |
CN116614479A (zh) | 用于确定互联网上实时通信中的视频编解码器性能的系统和方法 | |
CN101754001B (zh) | 视频数据优先级确定方法、装置和系统 | |
EP3902275A1 (en) | A method for estimating bandwidth between a video server and a video client | |
Exarchakos et al. | Can Skype be used beyond video calling? | |
CN108513697A (zh) | 信道容量预测方法及装置、无线信号发送设备及传输系统 | |
JP4460548B2 (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 |