CN110062003A - 视频数据发送方法、装置、电子设备及存储介质 - Google Patents
视频数据发送方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110062003A CN110062003A CN201910362669.8A CN201910362669A CN110062003A CN 110062003 A CN110062003 A CN 110062003A CN 201910362669 A CN201910362669 A CN 201910362669A CN 110062003 A CN110062003 A CN 110062003A
- Authority
- CN
- China
- Prior art keywords
- bit rate
- encoder bit
- video flowing
- video
- sent
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
- H04N19/166—Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供了视频数据发送方法、装置、电子设备及存储介质,该方法包括:判断是否需要降低待发送的视频流的编码码率;在需要降低视频流的编码码率时,删除视频流的待发送队列中的数据,并降低当前的编码码率;按照降低后的编码码率,以视频流中下一帧待编码的视频帧为I帧,对视频流进行编码,并将编码后的视频数据加入到视频流的待发送队列中;发送待发送队列中加入时间最早的视频数据。降低视频数据的编码码率,能够提高网络带宽使用的合理度。在删除待发送队列中的数据后,以视频流中下一帧待编码的视频帧为I帧,可以减少因I帧丢失而导致后续P帧及B帧解码出错的情况,能够减少视频接收端视频播放时花屏或马赛克等现象。
Description
技术领域
本申请涉及视频传输技术领域,特别是涉及视频数据发送方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,网络覆盖率逐年增加,互联网已经成为人们生活不可或缺的部分,尤其是在娱乐生活领域,互联网发挥着重要作用。依托于互联网,视频直播业务得到了迅猛发展。
现有技术中,在进行视频直播时,统一采用固定的码率发送视频数据。对于网络质量差的用户可能会造成视频卡顿。对于网络质量好的用户,其网络质量足以支持更高码率的视频数据,能够享受更好的画面质量,因此固定码率的视频数据不能够为用户带来更好的视觉体验。特别是对于智能手机等智能移动终端,由于网络波动频繁,造成视频直播业务中网络带宽使用不合理。
发明内容
本申请实施例的目的在于提供一种视频数据发送方法、装置、电子设备及存储介质,以实现提高网络带宽使用的合理度。具体技术方案如下:
第一方面,本申请实施例提供了一种视频数据发送方法,所述方法包括:
判断是否需要降低待发送的视频流的编码码率;
在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率;
按照降低后的编码码率,以所述视频流中下一帧待编码的视频帧为I帧,对所述视频流进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
发送所述待发送队列中加入时间最早的视频数据。
可选的,所述判断是否需要降低待发送的视频流的编码码率,包括:
判断所述视频流的待发送队列的空间占用率是否不小于预设占用率上限阈值,其中,若所述空间占用率不小于所述占用率上限阈值,判定需要降低所述视频流的编码码率;若所述空间占用率小于所述占用率上限阈值,判定不需要降低所述视频流的编码码率。
可选的,所述在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率,包括:
在需要降低所述视频流的编码码率时,判断所述视频流的待发送队列中是否存在完整的图像组,其中,完整的图像组包括I帧和基于该I帧解码的所有P帧及B帧;
若所述待发送队列中不存在完整的图像组,删除所述待发送队列中加入时间最晚的不完整的图像组,并降低当前的编码码率。
可选的,在所述判断所述视频流的待发送队列中是否存在完整的图像组之后,所述方法还包括:
若所述待发送队列中存在完整的图像组,删除所述待发待送队列中加入时间最早的完整的图像组,并降低当前的编码码率;
按照降低后的编码码率,将所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中。
可选的,所述在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率,包括:
在需要降低所述视频流的编码码率时,清空所述视频流的待发送队列,并降低当前的编码码率。
可选的,本申请实施例的视频数据发送方法还包括:
判断是否需要增加所述视频流的编码码率;
在需要增加所述视频流的编码码率时,增加所述视频流的编码码率;
按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述待发送队列中。
可选的,所述判断是否需要增加所述视频流的编码码率,包括:
判断所述视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判断不需要增加所述视频流的编码码率;
若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
可选的,所述在需要增加所述视频流的编码码率时,增加当前的编码码率,包括:
在需要增加所述视频流的编码码率时,按照预设增加比例,增加当前的编码码率。
第二方面,本申请实施例提供了一种视频数据发送方法,所述方法包括:
判断是否需要增加待发送的视频流的编码码率;
在需要增加所述视频流的编码码率时,按照预设增加比例,增加所述视频流的编码码率;
按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
发送所述待发送队列中加入时间最早的视频数据。
可选的,所述判断是否需要增加待发送的视频流的编码码率,包括:
判断待发送视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判定不需要增加所述视频流的编码码率;
若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
可选的,在需要增加所述视频流的编码码率时,按照预设增加比例,增加所述视频流的编码码率之后,所述方法还包括:
比较当前的编码码率与初始编码码率的大小,若当前的编码码率大于所述初始编码码率,令当前的编码码率为所述初始编码码率。
第三方面,本申请实施例提供了一种视频数据发送装置,所述装置包括:
码率降低判断模块,用于判断是否需要降低待发送的视频流的编码码率;
码率降低执行模块,用于在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率;
视频帧编码模块,用于按照降低后的编码码率,以所述视频流中下一帧待编码的视频帧为I帧,对所述视频流进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
视频数据发送模块,用于发送所述待发送队列中加入时间最早的视频数据。
可选的,所述码率降低判断模块,具体用于:判断所述视频流的待发送队列的空间占用率是否不小于预设占用率上限阈值,其中,若所述空间占用率不小于所述占用率上限阈值,判定需要降低所述视频流的编码码率;若所述空间占用率小于所述占用率上限阈值,判定不需要降低所述视频流的编码码率。
可选的,所述码率降低执行模块,包括:
完整图像组检测子模块,用于在需要降低所述视频流的编码码率时,判断所述视频流的待发送队列中是否存在完整的图像组,其中,完整的图像组包括I帧和基于该I帧解码的所有P帧及B帧;
不完整图像组删除子模块,用于若所述待发送队列中不存在完整的图像组,删除所述待发送队列中加入时间最晚的不完整的图像组,并降低当前的编码码率。
可选的,本申请实施例的视频数据发送装置还包括:
完整图像组删除模块,用于若所述待发送队列中存在完整的图像组,删除所述待发待送队列中加入时间最早的完整的图像组,并降低当前的编码码率;
所述视频帧编码模块,还用于按照降低后的编码码率,将所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中。
可选的,所述码率降低执行模块,具体用于:在需要降低所述视频流的编码码率时,清空所述视频流的待发送队列,并降低当前的编码码率。
可选的,本申请实施例的视频数据发送装置还包括:
码率增加判断模块,用于判断是否需要增加所述视频流的编码码率;
码率增加执行模块,用于在需要增加所述视频流的编码码率时,增加所述视频流的编码码率;
所述视频帧编码模块,还用于按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述待发送队列中。
可选的,所述码率增加判断模块,包括:
队列空间判断子模块,用于判断所述视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判断不需要增加所述视频流的编码码率;
码率大小判断子模块,用于若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
可选的,所述码率增加执行模块,具体用于:在需要增加所述视频流的编码码率时,按照预设增加比例,增加当前的编码码率。
第四方面,本申请实施例提供了一种视频数据发送装置,所述装置包括:
码率增加判断模块,用于判断是否需要增加待发送的视频流的编码码率;
码率增加执行模块,用于在需要增加所述视频流的编码码率时,按照预设增加比例,增加所述视频流的编码码率;
视频帧编码模块,用于按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
视频数据发送模块,用于发送所述待发送队列中加入时间最早的视频数据。
可选的,所述码率增加判断模块,包括:
队列空间判断子模块,用于判断待发送视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判定不需要增加所述视频流的编码码率;
码率大小判断子模块,用于若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
可选的,本申请实施例的视频数据发送装置还包括:
初始码率比较模块,用于比较当前的编码码率与初始编码码率的大小,若当前的编码码率大于所述初始编码码率,令当前的编码码率为所述初始编码码率。
第五方面,本申请实施例提供了一种电子设备,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面任一所述的视频数据发送方法或实现上述第二方面任一所述的视频数据发送方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的视频数据发送方法或实现上述第二方面任一所述的视频数据发送方法。
本申请实施例提供的视频数据发送方法、装置、电子设备及存储介质,判断是否需要降低待发送的视频流的编码码率;在需要降低视频流的编码码率时,删除视频流的待发送队列中的数据,并降低当前的编码码率;按照降低后的编码码率,以视频流中下一帧待编码的视频帧为I帧,对视频流进行编码,并将编码后的视频数据加入到视频流的待发送队列中;发送待发送队列中加入时间最早的视频数据。在需要降低视频流的编码码率时,降低视频数据的编码码率,能够提高网络带宽使用的合理度。并且在删除待发送队列中的数据后,以视频流中下一帧待编码的视频帧为I帧,对视频流进行编码,可以减少因I帧丢失而导致后续P帧及B帧解码出错的情况,在降低编码码率的同时,能够减少视频接收端视频播放时花屏或马赛克等现象。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的视频数据发送方法的第一种示意图;
图2为本申请实施例的视频数据发送方法的第二种示意图;
图3为本申请实施例的视频数据发送方法的第三种示意图;
图4为本申请实施例的视频数据发送方法的第四种示意图;
图5为本申请实施例的视频数据发送方法的第五种示意图;
图6为本申请实施例的视频数据发送方法的第六种示意图;
图7为本申请实施例的视频数据发送方法的第七种示意图;
图8为本申请实施例的视频数据发送装置的第一种示意图;
图9为本申请实施例的视频数据发送装置的第二种示意图;
图10为本申请实施例的电子设备的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,在视频数据传输场景中,例如,在视频直播业务中,在视频发送端与视频接收端之间的网络通信较差时,视频发送端会清空发送视频数据的缓冲区,并降低视频数据的编码码率,按照降低后的编码码率对视频数据进行编码并加入到缓冲区进行后续发送。但是发明人在研究中发现,采用上述方法,直接清空缓冲区,会造成客户端花屏或马赛克的情况。这是因为在解码时,P帧及B帧需要基于I帧进行解码,在删除缓冲区的I帧后,若后续编码的视频帧为基于该I帧编码的P帧或B帧,在视频接收端会出现解码失败的情况,从造成花屏或马赛克等现象,严重影响用户体验。
有鉴于此,本申请实施例提供了一种视频数据发送方法,参见图1,该方法包括:
S101,判断是否需要降低待发送的视频流的编码码率。
本申请实施例的视频数据发送方法应用于视频发送端,因此可以通过视频发送设备实现,具体的,视频发送设备可以为视频服务器或直播设备等。
视频发送设备在向视频接收端发送视频数据的过程中,判断是否需要降低待发送的视频流的编码码率。具体的,可以通过预设检测条件触发视频发送设备判断是否需要降低待发送的视频流的编码码率。预设检测条件可以按照实际情况进行设定,例如视频发送设备可以周期性的判断是否需要降低待发送的视频流的编码码率,或视频发送设备在每次将编码后的视频帧加入到待发送队列中后执行判断是否需要降低待发送的视频流的编码码率。
在一种可能的实施方式中,判断是否需要降低待发送的视频流的编码码率,包括:获取视频接收端中视频数据的下载带宽,在该下载带宽小于当前编码码率对应的传输带宽时,判定需要降低待发送的视频流的编码码率,否则判定不需要降低待发送的视频流的编码码率。
视频接收端周期性的向视频发送设备上报该视频接收端中视频数据的下载带宽,或者视频接收端在检测到视频卡顿时向视频发送设备上报该视频接收端中视频数据的下载带宽。视频发送设备获取该下载带宽,计算当前编码码率编码的视频流传输所需的带宽(即当前编码码率对应的传输带宽),并比较下载带宽与传输带宽的大小,在下载带宽小于传输带宽时,判定需要降低待发送的视频流的编码码率;在下载带宽不小于传输带宽时,判定不需要降低待发送的视频流的编码码率。
可选的,上述判断是否需要降低待发送的视频流的编码码率,包括:
判断上述视频流的待发送队列的空间占用率是否不小于预设占用率上限阈值,其中,若上述空间占用率不小于上述占用率上限阈值,判定需要降低上述视频流的编码码率;若上述空间占用率小于上述占用率上限阈值,判定不需要降低上述视频流的编码码率。
预设占用率上限阈值可以按照实际情况进行设定,例如设定为90%、95%或100%等,视频发送设备判断视频流的待发送队列的空间占用率是否大于预设占用率上限阈值,若空间占用率不小于占用率上限阈值,判定需要降低视频流的编码码率;若空间占用率小于占用率上限阈值,判定不需要降低视频流的编码码率。在一种可能的实施方式中,预设占用率上限阈值可以设定为100%,即判断视频流的待发送队列是否已经存满,若待发送队列已经存满,判定需要降低视频流的编码码率,若待发送队列未存满,判定不需要降低视频流的编码码率。
S102,在需要降低上述视频流的编码码率时,删除上述视频流的待发送队列中的数据,并降低当前的编码码率。
在判定需要降低视频流的编码码率时,视频发送设备按照预设码率降低规则降低当前的编码码率。预设码率降低规则可以根据实际情况进行设定,例如,视频发送设备降低三分之一当前的编码码率或视频发送设备降低四分之一当前的编码码率等。可选的,上述在需要降低上述视频流的编码码率时,删除上述视频流的待发送队列中的数据,并降低当前的编码码率,包括:在需要降低上述视频流的编码码率时,清空上述视频流的待发送队列,并降低当前的编码码率。在需要降低视频流的编码码率时,清空视频流的待发送队列,可以迅速减少视频数据传输所需的带宽。
直接清空视频流的待发送队列,虽然可以迅速减少视频数据传输所需的带宽,但是会造成视频接收端视频的大跨度跳帧现象,为了减少视频接收端视频的跳帧跨度。可选的,参见图2,上述在需要降低上述视频流的编码码率时,删除上述视频流的待发送队列中的数据,并降低当前的编码码率,包括:
S1021,在需要降低上述视频流的编码码率时,判断上述视频流的待发送队列中是否存在完整的图像组,其中,完整的图像组包括I帧和基于该I帧解码的所有P帧及B帧。
GOP(Group of Pictures,图像组),一个GOP就是一组连续的视频帧,其中,第一帧为I帧,其余的视频帧为需要基于该I帧解码的所有P帧及B帧。视频发送设备检测待发送队列中是否存在完整的图像组。
S1022,若上述待发送队列中不存在完整的图像组,删除上述待发送队列中加入时间最晚的不完整的图像组,并降低当前的编码码率。
若待发送队列中不存在完整的图像组,删除待发送队列中加入时间最晚的不完整的图像组,即删除待发送队列中最后一个I帧及最后一个I帧之后的各视频帧,同时按照预设码率降低规则降低当前的编码码率。删除待发送队列中加入时间最晚的不完整的图像组,保证待发送队列能够继续加入编码后的视频帧,同时能够减少视频接收端视频的跳帧跨度。
S103,按照降低后的编码码率,以上述视频流中下一帧待编码的视频帧为I帧,对上述视频流进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中。
视频发送设备按照降低后的编码码率,并通知视频编码器,以视频流中下一帧待编码的视频帧为I帧,继续对视频流进行编码,并将编码后的视频数据加入到视频流的待发送队列中。
S104,发送上述待发送队列中加入时间最早的视频数据。
视频发送设备保持发送待发送队列中加入时间最早的视频数据。本领域技术人员可以理解的是,视频发送设备发送待发送队列中加入时间最早的视频数据是一个持续的过程,即只要待发送队列中有视频数据,视频发送设备便会一直发送待发送队列中加入时间最早的视频数据。
在本申请实施例中,在需要降低视频流的编码码率时,降低视频数据的编码码率,能够提高网络带宽使用的合理度。并且在删除待发送队列中的数据后,以视频流中下一帧待编码的视频帧为I帧,对视频流进行编码,在降低编码码率的同时,能够减少视频接收端视频播放时花屏或马赛克等现象。
可选的,参见图3,在上述判断上述视频流的待发送队列中是否存在完整的图像组之后,上述方法还包括:
S301,若上述待发送队列中存在完整的图像组,删除上述待发待送队列中加入时间最早的完整的图像组,并降低当前的编码码率。
若待发送队列中存在完整的图像组,删除待发送队列中加入时间最早的完整的图像组,即删除待发送队列中第一个I帧及第一个I帧至第二个I帧之间的各视频帧,同时按照预设码率降低规则降低当前的编码码率。
S302,按照降低后的编码码率,将上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中。
视频发送设备按照降低后的编码码率继续对视频流中的视频帧进行编码,并将编码后的视频帧加入到待发送队列中。删除完整的图像组,不影响其他图像组中各P帧的解码,能够减少视频接收端花屏或马赛克的情况。
可选的,参见图4,本申请实施例的视频数据发送方法还包括:
S401,判断是否需要增加上述视频流的编码码率。
视频发送设备在向视频接收端发送视频数据的过程中,判断是否需要增加待发送的视频流的编码码率。具体的,可以通过预设触发条件触发视频发送设备判断是否需要增加视频流的编码码率。预设触发条件可以按照实际情况进行设定,例如视频发送设备可以周期性的判断是否需要增加待发送的视频流的编码码率,或视频发送设备在每次将编码后的视频帧加入到待发送队列中后执行判断是否需要增加待发送的视频流的编码码率。
在一种可能的实施方式中,判断是否需要增加上述视频流的编码码率,包括:获取视频接收端中视频数据的下载带宽,在该下载带宽大于当前编码码率对应的传输带宽时,判定需要增加的视频流的编码码率,否则判定不需要增加视频流的编码码率。
可选的,上述判断是否需要增加上述视频流的编码码率,包括:
步骤一,判断上述视频流的待发送队列的空间占用率是否不大于预设占用率下限阈值,其中,若上述待发送队列的空间占用率大于上述占用率下限阈值,判定不需要增加上述视频流的编码码率。
预设占用率下限阈值可以按照实际情况进行设定,例如占用率下限阈值可以设定为20%、10%或0等。视频发送设备比较视频流的待发送队列的空间占用率与预设占用率下限阈值的大小,若待发送队列的空间占用率大于占用率下限阈值,则直接判定不需要增加视频流的编码码率。
步骤二,若上述待发送队列的空间占用率不大于上述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于上述码率阈值时,判定需要增加上述视频流的编码码率;在当前的编码码率不小于上述码率阈值时,判定不需要增加上述视频流的编码码率。
若待发送队列的空间占用率不大于占用率下限阈值,则判断当前的编码码率与预设码率阈值的大小。若当前的编码码率小于预设码率阈值,判定需要增加视频流的编码码率;若当前的编码码率不小于预设码率阈值,判定不需要增加视频流的编码码率。
S402,在需要增加上述视频流的编码码率时,增加上述视频流的编码码率。
在需要增加视频流的编码码率时,视频发送设备按照预设增加码率规则,增加当前的编码码率。预设码率增加规则可以根据实际情况进行设定,例如,视频发送设备增加五分之一当前的编码码率,视频发送设备增加三分之一当前的编码码率或视频发送设备将当前的编码码率增加为初始编码码率等。
可选的,上述在需要增加上述视频流的编码码率时,增加当前的编码码率,包括:
在需要增加上述视频流的编码码率时,按照预设增加比例,增加当前的编码码率。
预设增加比例可以按照实际情况进行设定,例如设定为当前编码码率的五分之一,或当前编码码率的三分之一等。一般情况下,视频流的编码码率最大设置为初始编码码率,即在增加当前的编码码率时,一般不会超过初始编码码率。可选的,在上述按照预设增加比例,增加当前的编码码率之后,上述方法还包括:比较当前的编码码率与初始编码码率的大小;在当前的编码码率大于初始编码码率时,令当前的编码码率为初始编码码率。在当前的编码码率不大于初始编码码率时,按照当前的编码码率进行后续编码。
按照预设增加比例增加当前的编码码率,相比于直接将当前的编码码率增加到初始编码码率,能够更好的确保码率与带宽的匹配,减少待发送队列数据溢出的情况。
S403,按照当前的编码码率,对上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述待发送队列中。
在本申请实施例中,给出了在网络通信质量由差变好时,增加编码码率的方法,当网络连接变好时,增加编码码率从而提升视频数据的播放效果,能够在网络通信变好后,提高视频数据的播放质量,增加用户体验。
在一种可能的实施方式中,例如在视频直播业务中,本申请实施例的视频数据发送方法具体可以如图5所示,包括:
步骤一,获取视频编码参数。
在视频发送设备启动视频数据发送任务后,需要先获取视频编码参数,其中,视频编码参数中包括初始编码码率。视频发送设备在刚开始发送视频数据时,按照初始编码码率对视频流进行编码。
步骤二,按照当前编码码率对视频流进行编码。
视频发送设备按照当前的编码码率对视频流进行编码。
步骤三,将编码后的视频数据加入到待发送队列中。
视频发送设备将编码后的视频数据加入到发送视频数据的缓冲区,即加入到待发送队列中。
步骤四,发送待发送队列中加入时间最早的图像数据。
本领域技术人员可以理解的是,在视频业务运行的过程中,视频发送设备会持续发送待发送队列中加入时间最早的图像数据。
步骤五,判断待发送队列是否已存满,若已存满则执行步骤六,若未存满则执行步骤九。
视频发送设备每次将编码后的视频数据加入到待发送队列中时,均会判断待发送队列是否已缓存满数据。若待发送队列已存满,说明与视频接收端的网络连接状态不足以支持当前编码码率的视频数据,需要降低视频流的编码码率。
步骤六,判断待发送队列中是否有完整的图像组,若存在完整的图像组执行步骤七,不存在完整的图像组执行步骤八。
步骤七,删除待发送队列中加入时间最早的完整的图像组,并降低当前编码码率。
在待发送队列中存在完整的图像组时,删除待发送队列中加入时间最早的完整的图像组,并按照预设码率降低规则降低当前的编码码率。删除完整的图像组,不会影响其他图像组中P帧及B帧的解码,能够较少视频接收端花屏或马赛克等情况,在删除完整的图像组后,释放了待发送队列的空间,从而使得新的编码后的图像数据可以缓存到待发送队列中,防止待发送队列数据溢出。并且删除加入时间最早的完整的图像组,相比于删除加入时间晚的图像组,能够提高视频直播业务中视频数据的实时性。具体的,按照预设码率降低规则降低当前的编码码率可以为:降低三分之一当前的编码码率。
步骤八,删除待发送队列中加入时间最晚的不完整的图像组,降低当前编码码率,通知编码器将视频流中下一帧待编码的视频帧作为I帧。
在待发送队列中不存在完整的图像组时,视频发送设备删除待发送队列中加入时间最晚的不完整的图像组,通知编码器将视频流中下一帧待编码的视频帧作为I帧,并按照预设码率降低规则降低当前的编码码率。在删除加入时间最晚的不完整的图像组后,通知编码器将视频流中下一帧待编码的视频帧作为I帧,能够防止因I帧丢失而造成后续P帧或B帧解码出错的情况。具体的,按照预设码率降低规则降低当前的编码码率可以为:降低三分之一当前的编码码率。
步骤九,判断待发送队列是否为空,若为空则执行步骤十,若不为空则执行步骤二。
在待发送队列未存满时,视频发送设备判断待发送队列是否为空,若待发送队列为空,说明与视频接收端的网络连接带宽不小于传输当前编码码率视频数据所需的带宽,因此可进一步提高编码码率,从而增加视频质量。若待发送队列不为空,说明与视频接收端的网络连接带宽仅能够支持传输当前编码码率的视频数据,因此不对编码码率进行修改。
步骤十,判断当前编码码率是否小于初始编码码率,若小于初始编码码率执行步骤十一,若不小于初始编码码率执行步骤二。
在增加当前的编码码率前,视频发送设备还需要判断当前编码码率与初始编码码率的大小,这是因为一般情况中,视频流的编码码率不会大于初始编码码率。由于视频采集设备的限制或视频接收端播放设备的限制,在初始编码码率上继续增加编码码率,也无法增加视频数据的播放效果;或出于用户流量费用的考虑,在大于初始编码码率时会给用户造成额外的流量费用。因此视频流的编码码率一般情况下不会大于初始编码码率。
步骤十一,增加当前的编码码率。
在当前编码码率小于初始编码码率时,照预设增加比例,增加当前的编码码率。具体的,可以为增加五分之一当前的编码码率。鉴于视频流的实际编码码率一般不会超过初始编码码率。可选的,在上述按照预设增加比例,增加当前的编码码率之后,上述方法还包括:比较当前的编码码率与初始编码码率的大小;在当前的编码码率大于初始编码码率时,令当前的编码码率为初始编码码率。在当前的编码码率不大于初始编码码率时,按照当前的编码码率进行后续编码。
在本申请实施例中,在删除待发送队列中的数据后,以视频流中下一帧待编码的视频帧为I帧,对视频流进行编码,在降低编码码率的同时,能够减少视频接收端视频播放时花屏或马赛克等现象。
相关技术中,在视频发送端与视频接收端之间的网络通信变差时,视频发送端会降低视频视距的编码码率,之后若视频发送端与视频接收端之间的网络通信由差变好时,视频发送端会直接将编码码率恢复为初始编码码率进行发送。但是虽然网络变好了,可能仍不足以支持初始编码码率的视频数据的发送,容易出现待发送队列数据溢出等情况。有鉴于此,本申请实施例提供了一种视频数据发送方法,参见图6,该方法包括:
S601,判断是否需要增加待发送的视频流的编码码率。
本申请实施例的视频数据发送方法应用于视频发送端,因此可以通过视频发送设备实现,具体的,视频发送设备可以为视频服务器或直播设备等。
视频发送设备在向视频接收端发送视频数据的过程中,判断是否需要增加待发送的视频流的编码码率。具体的,可以通过预设触发条件触发视频发送设备判断是否需要增加视频流的编码码率。预设触发条件可以按照实际情况进行设定,例如视频发送设备可以周期性的判断是否需要增加待发送的视频流的编码码率,或视频发送设备在每次将编码后的视频帧加入到待发送队列中后执行判断是否需要增加待发送的视频流的编码码率。
在一种可能的实施方式中,判断是否需要增加待发送的视频流的编码码率,包括:获取视频接收端中视频数据的下载带宽,在该下载带宽大于当前编码码率对应的传输带宽时,判定需要增加的视频流的编码码率,否则判定不需要增加视频流的编码码率。
可选的,上述判断是否需要增加待发送的视频流的编码码率,包括:
步骤一,判断待发送视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若上述待发送队列的空间占用率大于上述占用率下限阈值,判断不需要增加上述视频流的编码码率。
预设占用率下限阈值可以按照实际情况进行设定,例如占用率下限阈值可以设定为20%、10%或0等。视频发送设备比较视频流的待发送队列的空间占用率与预设占用率下限阈值的大小,若待发送队列的空间占用率大于占用率下限阈值,则直接判定不需要增加视频流的编码码率。
步骤二,若上述待发送队列的空间占用率小于或等于上述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于上述码率阈值时,判定需要增加上述视频流的编码码率;在当前的编码码率不小于上述码率阈值时,判定不需要增加上述视频流的编码码率。
若待发送队列的空间占用率不大于占用率下限阈值,则判断当前的编码码率与预设码率阈值的大小。若当前的编码码率小于预设码率阈值,判定需要增加视频流的编码码率;若当前的编码码率不小于预设码率阈值,判定不需要增加视频流的编码码率。
S602,在需要增加上述视频流的编码码率时,按照预设增加比例,增加上述视频流的编码码率。
预设增加比例可以按照实际情况进行设定,例如设定为当前视频流的编码码率的五分之一,或当前视频流的编码码率的三分之一等。一般情况下,视频流的编码码率最大设置为初始编码码率,即在增加当前的编码码率时,一般不会超过初始编码码率。可选的,参见图7,在需要增加上述视频流的编码码率时,按照预设增加比例,增加上述视频流的编码码率之后,该方法还包括:S701,比较当前的编码码率与初始编码码率的大小,若当前的编码码率大于上述初始编码码率,令当前的编码码率为上述初始编码码率。
视频发送设备比较当前的编码码率与初始编码码率的大小;在当前的编码码率大于初始编码码率时,令当前的编码码率为初始编码码率。在当前的编码码率不大于初始编码码率时,按照当前的编码码率进行后续编码。
S603,按照当前的编码码率,对上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中。
S604,发送上述待发送队列中加入时间最早的视频数据。
视频发送设备保持发送待发送队列中加入时间最早的视频数据。本领域技术人员可以理解的是,视频发送设备发送待发送队列中加入时间最早的视频数据是一个持续的过程,即只要待发送队列中有视频数据,视频发送设备便会一直发送待发送队列中加入时间最早的视频数据。
在本申请实施例中,在需要增加视频流的编码码率时,增加视频数据的编码码率,能够提高网络带宽使用的合理度。并且给出了在网络通信质量由差变好时,增加编码码率的方法,能够在网络通信变好后,提高视频数据的播放质量,增加用户体验。并且按照预设增加比例增加当前的编码码率,相比于直接将当前的编码码率增加到初始编码码率,能够更好的确保码率与带宽的匹配,减少待发送队列数据溢出的情况。
本申请实施例还提供了一种视频数据发送装置,参见图8,该装置包括:
码率降低判断模块801,用于判断是否需要降低待发送的视频流的编码码率;
码率降低执行模块802,用于在需要降低上述视频流的编码码率时,删除上述视频流的待发送队列中的数据,并降低当前的编码码率;
视频帧编码模块803,用于按照降低后的编码码率,以上述视频流中下一帧待编码的视频帧为I帧,对上述视频流进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中;
视频数据发送模块804,用于发送上述待发送队列中加入时间最早的视频数据。
可选的,上述码率降低判断模块801,具体用于:判断上述视频流的待发送队列的空间占用率是否不小于预设占用率上限阈值,其中,若上述空间占用率不小于上述占用率上限阈值,判定需要降低上述视频流的编码码率;若上述空间占用率小于上述占用率上限阈值,判定不需要降低上述视频流的编码码率。
可选的,上述码率降低执行模块802,包括:
完整图像组检测子模块,用于在需要降低上述视频流的编码码率时,判断上述视频流的待发送队列中是否存在完整的图像组,其中,完整的图像组包括I帧和基于该I帧解码的所有P帧及B帧;
不完整图像组删除子模块,用于若上述待发送队列中不存在完整的图像组,删除上述待发送队列中加入时间最晚的不完整的图像组,并降低当前的编码码率。
可选的,本申请实施例的视频数据发送装置还包括:
完整图像组删除模块,用于若上述待发送队列中存在完整的图像组,删除上述待发待送队列中加入时间最早的完整的图像组,并降低当前的编码码率;
上述视频帧编码模块,还用于按照降低后的编码码率,将上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中。
可选的,上述码率降低执行模块802,具体用于:在需要降低上述视频流的编码码率时,清空上述视频流的待发送队列,并降低当前的编码码率。
可选的,本申请实施例的视频数据发送装置还包括:
码率增加判断模块,用于判断是否需要增加上述视频流的编码码率;
码率增加执行模块,用于在需要增加上述视频流的编码码率时,增加上述视频流的编码码率;
上述视频帧编码模块,还用于按照当前的编码码率,对上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述待发送队列中。
可选的,上述码率增加判断模块,包括:
队列空间判断子模块,用于判断上述视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若上述待发送队列的空间占用率大于上述占用率下限阈值,判断不需要增加上述视频流的编码码率;
码率大小判断子模块,用于若上述待发送队列的空间占用率小于或等于上述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于上述码率阈值时,判定需要增加上述视频流的编码码率;在当前的编码码率不小于上述码率阈值时,判定不需要增加上述视频流的编码码率。
可选的,上述码率增加执行模块,具体用于:在需要增加上述视频流的编码码率时,按照预设增加比例,增加当前的编码码率。
本申请实施例还提供了一种视频数据发送装置,参见图9,该装置包括:
码率增加判断模块901,用于判断是否需要增加待发送的视频流的编码码率;
码率增加执行模块902,用于在需要增加上述视频流的编码码率时,按照预设增加比例,增加上述视频流的编码码率;
视频帧编码模块903,用于按照当前的编码码率,对上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中;
视频数据发送模块904,用于发送上述待发送队列中加入时间最早的视频数据。
可选的,上述码率增加判断模块901,包括:
队列空间判断子模块,用于判断待发送视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若上述待发送队列的空间占用率大于上述占用率下限阈值,判定不需要增加上述视频流的编码码率;
码率大小判断子模块,用于若上述待发送队列的空间占用率小于或等于上述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于上述码率阈值时,判定需要增加上述视频流的编码码率;在当前的编码码率不小于上述码率阈值时,判定不需要增加上述视频流的编码码率。
可选的,本申请实施例的视频数据发送装置还包括:
初始码率比较模块,用于比较当前的编码码率与初始编码码率的大小,若当前的编码码率大于上述初始编码码率,令当前的编码码率为上述初始编码码率。
本申请实施例提供了一种电子设备,包括处理器及存储器;
上述存储器,用于存放计算机程序;
上述处理器,用于执行上述存储器上所存放的程序时,用于实现如下步骤:
判断是否需要降低待发送的视频流的编码码率;
在需要降低上述视频流的编码码率时,删除上述视频流的待发送队列中的数据,并降低当前的编码码率;
按照降低后的编码码率,以上述视频流中下一帧待编码的视频帧为I帧,对上述视频流进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中;
发送上述待发送队列中加入时间最早的视频数据。
可选的,上述处理器用于执行上述存储器上所存放的程序时还能够实现上述任一视频数据发送方法。
可选的,参见图10,本申请实施例的电子设备,还包括、通信接口1002和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。
本申请实施例提供了一种电子设备,包括处理器及存储器;
上述存储器,用于存放计算机程序;
上述处理器,用于执行上述存储器上所存放的程序时,用于实现如下步骤:
判断是否需要增加待发送的视频流的编码码率;
在需要增加上述视频流的编码码率时,按照预设增加比例,增加上述视频流的编码码率;
按照当前的编码码率,对上述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到上述视频流的待发送队列中;
发送上述待发送队列中加入时间最早的视频数据。
可选的,上述处理器用于执行上述存储器上所存放的程序时还能够实现上述任一视频数据发送方法。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任一视频数据发送方法。
需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (24)
1.一种视频数据发送方法,其特征在于,所述方法包括:
判断是否需要降低待发送的视频流的编码码率;
在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率;
按照降低后的编码码率,以所述视频流中下一帧待编码的视频帧为I帧,对所述视频流进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
发送所述待发送队列中加入时间最早的视频数据。
2.根据权利要求1所述的方法,其特征在于,所述判断是否需要降低待发送的视频流的编码码率,包括:
判断所述视频流的待发送队列的空间占用率是否不小于预设占用率上限阈值,其中,若所述空间占用率不小于所述占用率上限阈值,判定需要降低所述视频流的编码码率;若所述空间占用率小于所述占用率上限阈值,判定不需要降低所述视频流的编码码率。
3.根据权利要求1所述的方法,其特征在于,所述在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率,包括:
在需要降低所述视频流的编码码率时,判断所述视频流的待发送队列中是否存在完整的图像组,其中,完整的图像组包括I帧和基于该I帧解码的所有P帧及B帧;
若所述待发送队列中不存在完整的图像组,删除所述待发送队列中加入时间最晚的不完整的图像组,并降低当前的编码码率。
4.根据权利要求3所述的方法,其特征在于,在所述判断所述视频流的待发送队列中是否存在完整的图像组之后,所述方法还包括:
若所述待发送队列中存在完整的图像组,删除所述待发待送队列中加入时间最早的完整的图像组,并降低当前的编码码率;
按照降低后的编码码率,将所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中。
5.根据权利要求1所述的方法,其特征在于,所述在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率,包括:
在需要降低所述视频流的编码码率时,清空所述视频流的待发送队列,并降低当前的编码码率。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断是否需要增加所述视频流的编码码率;
在需要增加所述视频流的编码码率时,增加所述视频流的编码码率;
按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述待发送队列中。
7.根据权利要求6所述的方法,其特征在于,所述判断是否需要增加所述视频流的编码码率,包括:
判断所述视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判断不需要增加所述视频流的编码码率;
若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
8.根据权利要求6所述的方法,其特征在于,所述在需要增加所述视频流的编码码率时,增加当前的编码码率,包括:
在需要增加所述视频流的编码码率时,按照预设增加比例,增加当前的编码码率。
9.一种视频数据发送方法,其特征在于,所述方法包括:
判断是否需要增加待发送的视频流的编码码率;
在需要增加所述视频流的编码码率时,按照预设增加比例,增加所述视频流的编码码率;
按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
发送所述待发送队列中加入时间最早的视频数据。
10.根据权利要求9所述的方法,其特征在于,所述判断是否需要增加待发送的视频流的编码码率,包括:
判断待发送视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判定不需要增加所述视频流的编码码率;
若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
11.根据权利要求9所述的方法,其特征在于,在需要增加所述视频流的编码码率时,按照预设增加比例,增加所述视频流的编码码率之后,所述方法还包括:
比较当前的编码码率与初始编码码率的大小,若当前的编码码率大于所述初始编码码率,令当前的编码码率为所述初始编码码率。
12.一种视频数据发送装置,其特征在于,所述装置包括:
码率降低判断模块,用于判断是否需要降低待发送的视频流的编码码率;
码率降低执行模块,用于在需要降低所述视频流的编码码率时,删除所述视频流的待发送队列中的数据,并降低当前的编码码率;
视频帧编码模块,用于按照降低后的编码码率,以所述视频流中下一帧待编码的视频帧为I帧,对所述视频流进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
视频数据发送模块,用于发送所述待发送队列中加入时间最早的视频数据。
13.根据权利要求12所述的装置,其特征在于,所述码率降低判断模块,具体用于:判断所述视频流的待发送队列的空间占用率是否不小于预设占用率上限阈值,其中,若所述空间占用率不小于所述占用率上限阈值,判定需要降低所述视频流的编码码率;若所述空间占用率小于所述占用率上限阈值,判定不需要降低所述视频流的编码码率。
14.根据权利要求12所述的装置,其特征在于,所述码率降低执行模块,包括:
完整图像组检测子模块,用于在需要降低所述视频流的编码码率时,判断所述视频流的待发送队列中是否存在完整的图像组,其中,完整的图像组包括I帧和基于该I帧解码的所有P帧及B帧;
不完整图像组删除子模块,用于若所述待发送队列中不存在完整的图像组,删除所述待发送队列中加入时间最晚的不完整的图像组,并降低当前的编码码率。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
完整图像组删除模块,用于若所述待发送队列中存在完整的图像组,删除所述待发待送队列中加入时间最早的完整的图像组,并降低当前的编码码率;
所述视频帧编码模块,还用于按照降低后的编码码率,将所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中。
16.根据权利要求12所述的装置,其特征在于,所述码率降低执行模块,具体用于:在需要降低所述视频流的编码码率时,清空所述视频流的待发送队列,并降低当前的编码码率。
17.根据权利要求12所述的装置,其特征在于,所述装置还包括:
码率增加判断模块,用于判断是否需要增加所述视频流的编码码率;
码率增加执行模块,用于在需要增加所述视频流的编码码率时,增加所述视频流的编码码率;
所述视频帧编码模块,还用于按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述待发送队列中。
18.根据权利要求17所述的装置,其特征在于,所述码率增加判断模块,包括:
队列空间判断子模块,用于判断所述视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判断不需要增加所述视频流的编码码率;
码率大小判断子模块,用于若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
19.根据权利要求17所述的装置,其特征在于,所述码率增加执行模块,具体用于:在需要增加所述视频流的编码码率时,按照预设增加比例,增加当前的编码码率。
20.一种视频数据发送装置,其特征在于,所述装置包括:
码率增加判断模块,用于判断是否需要增加待发送的视频流的编码码率;
码率增加执行模块,用于在需要增加所述视频流的编码码率时,按照预设增加比例,增加所述视频流的编码码率;
视频帧编码模块,用于按照当前的编码码率,对所述视频流中待编码的视频帧进行编码,并将编码后的视频数据加入到所述视频流的待发送队列中;
视频数据发送模块,用于发送所述待发送队列中加入时间最早的视频数据。
21.根据权利要求20所述的装置,其特征在于,所述码率增加判断模块,包括:
队列空间判断子模块,用于判断待发送视频流的待发送队列的空间占用率是否小于或等于预设占用率下限阈值,其中,若所述待发送队列的空间占用率大于所述占用率下限阈值,判定不需要增加所述视频流的编码码率;
码率大小判断子模块,用于若所述待发送队列的空间占用率小于或等于所述占用率下限阈值,判断当前的编码码率是否小于预设码率阈值,其中,在当前的编码码率小于所述码率阈值时,判定需要增加所述视频流的编码码率;在当前的编码码率不小于所述码率阈值时,判定不需要增加所述视频流的编码码率。
22.根据权利要求20所述的装置,其特征在于,所述装置还包括:
初始码率比较模块,用于比较当前的编码码率与初始编码码率的大小,若当前的编码码率大于所述初始编码码率,令当前的编码码率为所述初始编码码率。
23.一种电子设备,其特征在于,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-8任一所述的视频数据发送方法或实现权利要求9-11任一所述的视频数据发送方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的视频数据发送方法或实现权利要求9-11任一所述的视频数据发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910362669.8A CN110062003B (zh) | 2019-04-30 | 2019-04-30 | 视频数据发送方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910362669.8A CN110062003B (zh) | 2019-04-30 | 2019-04-30 | 视频数据发送方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110062003A true CN110062003A (zh) | 2019-07-26 |
CN110062003B CN110062003B (zh) | 2022-01-25 |
Family
ID=67321868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910362669.8A Active CN110062003B (zh) | 2019-04-30 | 2019-04-30 | 视频数据发送方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110062003B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738444A (zh) * | 2020-12-18 | 2021-04-30 | 浙江大华技术股份有限公司 | 视频码率控制方法、装置、计算机设备和存储介质 |
CN118317093A (zh) * | 2024-06-11 | 2024-07-09 | 杭州芯正微电子有限公司 | 压缩编码平稳码率推流方法、装置及其应用 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946079A (zh) * | 2006-11-02 | 2007-04-11 | 北京大学 | 一种网络带宽自适应的流媒体传输选择性丢帧方法 |
CN101222296A (zh) * | 2008-01-31 | 2008-07-16 | 上海交通大学 | 上行蜂窝视频通信中自适应的传输方法及系统 |
CN101316357A (zh) * | 2008-06-30 | 2008-12-03 | 华为技术有限公司 | 一种频道切换的方法、终端和媒体服务器 |
CN101778426A (zh) * | 2010-01-21 | 2010-07-14 | 深圳市同洲电子股份有限公司 | 移动无线网络中视频数据流传输的方法及设备 |
CN104506272A (zh) * | 2014-10-28 | 2015-04-08 | 湖南大学 | X型无线网络拓扑结构中的网络编码侦听方法 |
CN104735470A (zh) * | 2015-02-11 | 2015-06-24 | 海信集团有限公司 | 一种流媒体数据传输方法及装置 |
CN105611309A (zh) * | 2015-12-22 | 2016-05-25 | 北京奇虎科技有限公司 | 一种视频传输方法和装置 |
CN106454395A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 在服务器中用于自适应提供多码率流媒体的方法及装置 |
CN106454437A (zh) * | 2015-08-12 | 2017-02-22 | 中国移动通信集团设计院有限公司 | 一种流媒体业务速率预测方法及装置 |
CN107231328A (zh) * | 2016-03-23 | 2017-10-03 | 福建星网锐捷通讯股份有限公司 | 实时视频传输方法、装置、设备及系统 |
US20180014039A1 (en) * | 2012-03-13 | 2018-01-11 | Cisco Technology, Inc. | Coordinating video delivery with radio frequency conditions |
CN107743253A (zh) * | 2017-11-03 | 2018-02-27 | 中广热点云科技有限公司 | 用于无线网络中的视频传输速率适配方法 |
CN109587510A (zh) * | 2018-12-10 | 2019-04-05 | 广州虎牙科技有限公司 | 一种直播方法、装置、设备和存储介质 |
CN109618179A (zh) * | 2019-01-21 | 2019-04-12 | 北京数码视讯软件技术发展有限公司 | 超高清视频直播的快速起播方法及装置 |
CN109660879A (zh) * | 2018-12-20 | 2019-04-19 | 广州虎牙信息科技有限公司 | 直播丢帧方法、系统、计算机设备和存储介质 |
-
2019
- 2019-04-30 CN CN201910362669.8A patent/CN110062003B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946079A (zh) * | 2006-11-02 | 2007-04-11 | 北京大学 | 一种网络带宽自适应的流媒体传输选择性丢帧方法 |
CN101222296A (zh) * | 2008-01-31 | 2008-07-16 | 上海交通大学 | 上行蜂窝视频通信中自适应的传输方法及系统 |
CN101316357A (zh) * | 2008-06-30 | 2008-12-03 | 华为技术有限公司 | 一种频道切换的方法、终端和媒体服务器 |
CN101778426A (zh) * | 2010-01-21 | 2010-07-14 | 深圳市同洲电子股份有限公司 | 移动无线网络中视频数据流传输的方法及设备 |
US20180014039A1 (en) * | 2012-03-13 | 2018-01-11 | Cisco Technology, Inc. | Coordinating video delivery with radio frequency conditions |
CN104506272A (zh) * | 2014-10-28 | 2015-04-08 | 湖南大学 | X型无线网络拓扑结构中的网络编码侦听方法 |
CN104735470A (zh) * | 2015-02-11 | 2015-06-24 | 海信集团有限公司 | 一种流媒体数据传输方法及装置 |
CN106454437A (zh) * | 2015-08-12 | 2017-02-22 | 中国移动通信集团设计院有限公司 | 一种流媒体业务速率预测方法及装置 |
CN105611309A (zh) * | 2015-12-22 | 2016-05-25 | 北京奇虎科技有限公司 | 一种视频传输方法和装置 |
CN107231328A (zh) * | 2016-03-23 | 2017-10-03 | 福建星网锐捷通讯股份有限公司 | 实时视频传输方法、装置、设备及系统 |
CN106454395A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 在服务器中用于自适应提供多码率流媒体的方法及装置 |
CN107743253A (zh) * | 2017-11-03 | 2018-02-27 | 中广热点云科技有限公司 | 用于无线网络中的视频传输速率适配方法 |
CN109587510A (zh) * | 2018-12-10 | 2019-04-05 | 广州虎牙科技有限公司 | 一种直播方法、装置、设备和存储介质 |
CN109660879A (zh) * | 2018-12-20 | 2019-04-19 | 广州虎牙信息科技有限公司 | 直播丢帧方法、系统、计算机设备和存储介质 |
CN109618179A (zh) * | 2019-01-21 | 2019-04-12 | 北京数码视讯软件技术发展有限公司 | 超高清视频直播的快速起播方法及装置 |
Non-Patent Citations (1)
Title |
---|
张彩萍等: "移动IP网络上压缩视频传输的错误弹性机制研究", 《西北民族大学学报(自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738444A (zh) * | 2020-12-18 | 2021-04-30 | 浙江大华技术股份有限公司 | 视频码率控制方法、装置、计算机设备和存储介质 |
CN118317093A (zh) * | 2024-06-11 | 2024-07-09 | 杭州芯正微电子有限公司 | 压缩编码平稳码率推流方法、装置及其应用 |
Also Published As
Publication number | Publication date |
---|---|
CN110062003B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10728594B2 (en) | Method and apparatus for transmitting data of mobile terminal | |
CN111628847B (zh) | 数据传输方法及装置 | |
CN105472477B (zh) | 一种数据传输方法、装置及设备 | |
US9585062B2 (en) | System and method for implementation of dynamic encoding rates for mobile devices | |
CN106464601B (zh) | 信道捆绑 | |
CN110290402A (zh) | 一种视频码率调整方法、装置、服务器及存储介质 | |
CN111107382B (zh) | 数据流的控制方法、装置和系统 | |
US10637903B2 (en) | Failure detection manager | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
CN104735470A (zh) | 一种流媒体数据传输方法及装置 | |
GB2498992A (en) | Transmission of encoded image slices over plural assigned channels | |
CN101742289B (zh) | 视频码流压缩方法、系统及装置 | |
CN102257831A (zh) | 一种视频质量评估的方法和网络节点 | |
CN103686221A (zh) | 一种适应公用无线网络实现音视频流畅播出的方法 | |
CN110062003A (zh) | 视频数据发送方法、装置、电子设备及存储介质 | |
CN104427286A (zh) | 一种进行视频通话的方法和系统 | |
CN103338412A (zh) | 结合无线自适应调制与编码的自适应视频编码系统 | |
KR101539812B1 (ko) | 동화상 데이터의 배신 방법 | |
CN114286038B (zh) | 视频数据传输方法、机载终端、计算机设备及存储介质 | |
CN107801049A (zh) | 一种实时视频传送、播放方法及装置 | |
CN102325275A (zh) | 一种流媒体播放的丢包方法、装置及服务器 | |
CN102082947B (zh) | 一种视频监控的方法、系统和设备 | |
CN103036808B (zh) | 一种去除网络抖动的方法及系统 | |
CN102457714A (zh) | 对摄像机采集的音视频数据进行传输的方法、系统及设备 | |
CN102547266B (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 |