一种视频帧的发送方法、装置、设备及存储介质制造方法及图纸

技术编号:26733746 阅读:22 留言:0更新日期:2020-12-15 14:40
本公开提供一种视频帧的发送方法、装置、设备及存储介质,涉及计算机技术领域,能够解决现有技术中小包报文一次性发送造成瞬时突发流量大,容易造成数据包丢失的问题。具体技术方案为:首先获取系统当前时间与第i个待发送报文的发送时间,其中i≥1,第i个待发送报文为视频帧拆分后的数据包;然后判断系统当前时间是否大于或等于第i个待发送报文的发送时间;若是,则发送第i个待发送报文;若不是,则确定第i个待发送报文对应的延迟发送时间,在等待延迟发送时间后,对第i个待发送报文进行判断。本公开用于视频帧的发送。

【技术实现步骤摘要】
一种视频帧的发送方法、装置、设备及存储介质
本公开涉及计算机
,尤其涉及一种视频帧的发送方法、装置、设备及存储介质。
技术介绍
在视频传输领域,一个视频帧,尤其是I帧,一般来讲比较大。为了适应IP网络传输,现有技术中,一般会将其拆分成可以供网络传输的小包报文,但是这些小包报文在发送时会一次性发送,使瞬时产生较大的突发流量,这种情况下,在有网络限制的链路里就很容易造成数据包的丢失。
技术实现思路
本公开实施例提供一种视频帧的发送方法、装置、设备及存储介质,能够解决现有技术中小包报文一次性发送造成瞬时突发流量大,容易造成数据包丢失的问题。所述技术方案如下:根据本公开实施例的第一方面,提供一种视频帧的发送方法,该方法包括:获取系统当前时间与第i个待发送报文的发送时间;其中i≥1,所述第i个待发送报文为视频帧拆分后的数据包;判断所述系统当前时间是否大于或等于所述第i个待发送报文的发送时间;若是,则发送所述第i个待发送报文;若不是,则确定所述第i个待发送报文对应的延迟发送时间,在等待延迟发送时间后,对所述第i个待发送报文进行判断。本公开实施例提供的视频帧的发送方法,首先获取系统当前时间与第i个待发送报文的发送时间,其中i≥1,第i个待发送报文为视频帧拆分后的数据包;然后判断系统当前时间是否大于或等于第i个待发送报文的发送时间;若是,则发送第i个待发送报文;若不是,则确定第i个待发送报文对应的延迟发送时间,在等待延迟发送时间后,对第i个待发送报文进行判断。本公开在发送每个待发送报文之前,对当前报文是否可发送进行判断,如果未到达可发送时间,则延迟一段时间后再次进行判断,通过这种方式能够有效避免一次性连续发送过多报文而造成的突发流量,即可达到控制流量的目的,从而减少由于流量突发而造成的丢包问题。在一个实施例中,当i=1时,所述获取第i个待发送报文的发送时间包括:通过第一公式计算得到所述第i个待发送报文的发送时间,所述第一公式包括:next_send_timei=now_time+γ其中,next_send_timei为第i个待发送报文的发送时间;now_time为系统当前时间;γ为调整系数。本公开实施例通过以上步骤,可以获得第一报文发送的时间。在一个实施例中,在发送所述第i个待发送报文之前,所述方法还包括:计算所述第i个待发送报文发送前的流量结余字节数;当i=1时,通过第二公式计算得到所述第i个待发送报文发送前的流量结余字节数,所述第二公式包括:current_sendi1=max_send*β其中,current_sendi1为第i个待发送报文发送前的流量结余字节数;max_send为单次调度可以发送的最大字节数;β为调整系数;当i≥2时,通过第三公式计算得到所述第i个待发送报文发送前的流量结余字节数,所述第三公式包括:current_sendi1=min(max_send,current_sendi-1+(now_time-next_send_timei-1)*per_send)其中,current_sendi1为第i个待发送报文发送前的流量结余字节数;max_send为单次调度可以发送的最大字节数;current_sendi-1为第i-1个待发送报文发送后的流量结余字节数;now_time为系统当前时间;next_send_timei-1为第i-1个待发送报文的发送时间;per_send为单位时间内按照当前带宽可以发送的字节数。本公开实施例通过以上步骤,可以获得在第i个待发送报文发送前的流量结余字节数,通过控制发送字节数,能够确保报文发送过程中,不会出现丢包现象。在一个实施例中,通过第四公式计算得到所述单位时间内按照当前带宽可以发送的字节数,所述第四公式包括:per_send=BW/time_factor其中,per_send为单位时间内按照当前带宽可以发送的字节数;BW为限定带宽,单位为B/s;time_factor为时间换算因子;通过第五公式计算得到所述单次调度可以发送的最大字节数,所述第五公式包括:max_send=min_sche_time*per_send*α其中,max_send单次调度可以发送的最大字节数;min_sche_time指两次调度的最小调度时间间隔;per_send为单位时间内按照当前带宽可以发送的字节数;α为调整系数。在一个实施例中,在发送所述第i个待发送报文之后,所述方法还包括:通过第六公式计算得到第i个待发送报文发送后的流量结余字节数,所述第六公式包括:current_sendi2=current_sendi1-min(send_bytesi,current_sendi1)其中,current_sendi2为第i个待发送报文发送后的流量结余字节数;current_sendi1为第i个待发送报文发送前的流量结余字节数;send_bytesi为第i个待发送报文的数据包大小。本公开实施例通过以上步骤,可以获得第i个待发送报文发送后的流量结余字节数,通过控制发送字节数,能够确保报文发送过程中,不会出现丢包现象。在一个实施例中,当i≥2时,所述获取第i个待发送报文的发送时间包括:通过第七公式计算得到所述第i个待发送报文的发送时间,所述第七公式包括:next_send_timei=next_send_timei-1+(send_bytesi-1-min(send_bytesi-1,current_send(i-1)2))/per_send其中,next_send_timei为第i个待发送报文的发送时间;next_send_timei-1为第i-1个待发送报文的发送时间,send_bytesi-1为第i-1个待发送报文的数据包大小;current_send(i-1)2为第i-1个待发送报文发送后的流量结余字节数;per_send为单位时间内按照当前带宽可以发送的字节数。本公开实施例通过以上步骤,可以获得第i个待发送报文的发送时间,通过控制发送时间,能够确保报文发送过程中,不会出现丢包现象。在一个实施例中,延迟发送时间通过以下公式进行计算:delay_send_time=(send_diff_time/min_sche_time+1)*min_sche_time其中,delay_send_time为延迟发送时间;send_diff_time为系统当前时间与第i个待发送报文发送时间的时间差值;min_sche_time为两次调度的最小调度时间间隔。本公开实施例通过以上步骤,当第i个待发送报文的发送时间小于系统当前时间时,通过计算延迟发送时间,则延迟发送时间结束后,可以进行下一次发送报文。根据本公开实施例的第二方面,提供一种视频帧的发送装置,包括获取模块、判断模块和发送模块;本文档来自技高网...

【技术保护点】
1.一种视频帧的发送方法,其特征在于,所述方法包括:/n获取系统当前时间与第i个待发送报文的发送时间;其中i≥1,所述第i个待发送报文为视频帧拆分后的数据包;/n判断所述系统当前时间是否大于或等于所述第i个待发送报文的发送时间;/n若是,则发送所述第i个待发送报文;/n若不是,则确定所述第i个待发送报文对应的延迟发送时间,在等待延迟发送时间后,执行权利要求1所述的方法。/n

【技术特征摘要】
1.一种视频帧的发送方法,其特征在于,所述方法包括:
获取系统当前时间与第i个待发送报文的发送时间;其中i≥1,所述第i个待发送报文为视频帧拆分后的数据包;
判断所述系统当前时间是否大于或等于所述第i个待发送报文的发送时间;
若是,则发送所述第i个待发送报文;
若不是,则确定所述第i个待发送报文对应的延迟发送时间,在等待延迟发送时间后,执行权利要求1所述的方法。


2.根据权利要求1所述的视频帧的发送方法,其特征在于,当i=1时,所述获取第i个待发送报文的发送时间包括:
通过第一公式计算得到所述第i个待发送报文的发送时间,所述第一公式包括:
next_send_timei=now_time+γ
其中,next_send_timei为第i个待发送报文的发送时间;now_time为系统当前时间;γ为调整系数。


3.根据权利要求1所述的视频帧的发送方法,其特征在于,所述发送所述第i个待发送报文之前,所述方法还包括:
计算所述第i个待发送报文发送前的流量结余字节数;
当i=1时,通过第二公式计算得到所述第i个待发送报文发送前的流量结余字节数,所述第二公式包括:
current_sendi1=max_send*β
其中,current_sendi1为第i个待发送报文发送前的流量结余字节数;max_send为单次调度可以发送的最大字节数;β为调整系数;
当i≥2时,通过第三公式计算得到所述第i个待发送报文发送前的流量结余字节数,所述第三公式包括:
current_sendi1=min(max_send,current_sendi-1+(now_time-next_send_timei-1)*per_send)
其中,current_sendi1为第i个待发送报文发送前的流量结余字节数;max_send为单次调度可以发送的最大字节数;current_sendi-1为第i-1个待发送报文发送后的流量结余字节数;now_time为系统当前时间;next_send_timei-1为第i-1个待发送报文的发送时间;per_send为单位时间内按照当前带宽可以发送的字节数。


4.根据权利要求3所述的视频帧的发送方法,其特征在于,通过第四公式计算得到所述单位时间内按照当前带宽可以发送的字节数,所述第四公式包括:
per_send=BW/time_factor
其中,per_send为单位时间内按照当前带宽可以发送的字节数;BW为限定带宽,单位为B/s;time_factor为时间换算因子;
通过第五公式计算得到所述单次调度可以发送的最大字节数,所述第五公式包括:
max_send=min_sche_time*per_send*α
其中,max_send单次调度可以发送的最大字节数;min_sche_time指两次调度的最小调度时间间隔;per_send为单位时间内按照当前带宽可以发送的字节数;α为调整系数。


5.根据权利要求4所述的视频帧的发送方法,其特...

【专利技术属性】
技术研发人员:朱英龙
申请(专利权)人:西安万像电子科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1