一种基于高码率的CBR模式UDP发送控制方法及系统技术方案

技术编号:38906614 阅读:11 留言:0更新日期:2023-09-22 14:25
本发明专利技术涉及视频编转码技术领域,提供了一种基于高码率的CBR模式UDP发送控制方法,包括:S1:用户建立直播编转码任务,选择恒定比特率技术CBR作为码率控制模式,选择传输层协议UDP作为输出协议,同时设置UDP控制输出参数;S2:转码服务后台接收用户创建的直播编转码任务,启动转码引擎执行直播编转码任务,传递UDP控制输出参数到转码引擎,并在高码率下采用恒定比特率技术CBR的码率控制模式对选择传输层协议UDP的输出进行精准控制;S3:转码引擎返回转码成功消息到转码服务后台,转码服务后台将转码成功消息返回给所述用户。针对视频CBR输出尤其是高码率(超过10M)、CPU高负载场景,使得UDP输出时发送控制更加平稳,提高接收端输出的视频质量。出的视频质量。出的视频质量。

【技术实现步骤摘要】
一种基于高码率的CBR模式UDP发送控制方法及系统


[0001]本专利技术涉及视频编转码的
,尤其涉及一种基于高码率的CBR模式UDP发送控制方法及系统。

技术介绍

[0002]UDP(UserDatagramProtocol)是一种无连接的传输层协议,通常用于在网络上快速传输数据。UDP提供了一种简单的、低开销的传输机制,适用于那些对数据传输延迟要求较高,但不需要可靠性和拥塞控制的应用场景。TSoverUDP(TransportStreamoverUDP)是一种将传输流(TransportS tream)通过UDP协议进行传输的方式。
[0003]随着当前视频产业发展飞速,UDP(TSoverUDP)由于其较低的延迟、简单高效的特点在视频传输领域被广泛使用。且视频直播时视频流是持续生成的过程,如果使用可变比特率(VBR,VariableBitRate)传输,会导致网络带宽的不稳定,容易引起网络拥塞或带宽波动,接受端容易出现播放视频卡顿、花屏等,使用恒定比特率(CBR,ConstantBitRate)方法,可以更稳定的利用固定的带宽,有助于网络资源的管理及控制。
[0004]而每个UDP包由于以太网MTU限制,一般最大有效TS包数据长度为1316字节,所以传统意义上通用的UDP发送的控制方法以最小精度64KB去控制,但是对于一些高码率场景可能由于编码后的码流发送来的时间不够平稳(毫秒级)或者数据量精度不够平稳等原因导致在交换机接收到一个一个的UDP包时秒级/毫秒级仍然会出现数据量过大或过小,造成接收端播放视频卡顿或者花屏,严重影响视频质量。

技术实现思路

[0005]针对上述问题,本专利技术的目的在于提供一种基于高码率的CBR模式UDP发送控制方法及系统,针对视频CBR输出尤其是高码率(超过10M)、CPU高负载场景,使得UDP输出时发送控制更加平稳,提高接收端输出的视频质量。
[0006]本专利技术的上述专利技术目的是通过以下技术方案得以实现的:
[0007]一种基于高码率的CBR模式UDP发送控制方法,包括以下步骤:
[0008]S1:用户建立直播编转码任务,选择恒定比特率技术CBR作为码率控制模式,选择传输层协议UDP作为输出协议,同时设置UDP控制输出参数;
[0009]S2:转码服务后台接收所述用户创建的所述直播编转码任务,启动转码引擎执行所述直播编转码任务,传递所述UDP控制输出参数到所述转码引擎,并在高码率下采用所述恒定比特率技术CBR的码率控制模式对所述选择传输层协议UDP的输出进行精准控制;
[0010]S3:所述转码引擎返回转码成功消息到所述转码服务后台,所述转码服务后台将转码成功消息返回给所述用户。
[0011]进一步地,在步骤S1中,还包括设置通过所述传输层协议UDP控制输出的包括UDP发送目标码率、缓冲区大小、每次发送的UDP数据包长度在内的所述UDP控制输出参数。
[0012]进一步地,在步骤S2中,在高码率下采用所述恒定比特率技术CBR的码率控制模式
对选择所述传输层协议UDP的输出进行精准控制,具体为:
[0013]在对所述传输层协议UDP的输出进行初始化时,申请缓冲区内存作为UD P缓冲区,创建发送控制线程,其中,所述发送控制线程用于从所述UDP缓冲区中获取数据,若所述缓冲区内存为空,则阻塞等待条件变量唤醒;
[0014]所述直播编转码任务开始执行后,用于转码的主线程将已封装的TS包发送到所述UDP缓冲区,并唤醒等待的条件变量,所述主线程继续进行后续数据的接收处理;
[0015]所述发送控制线程被唤醒,从所述UDP缓冲区中获取数据,记录发送开始时间,然后循环发送每个UDP数据包,计算每一个所述UDP数据包的预计目标时间,若当前时间小于所述预计目标时间,对所述UDP数据包通过延时控制模块执行延时发送;
[0016]继续进行下一个所述UDP数据包的发送,直至取出的所述UDP数据包都发送完后,继续从所述UDP缓冲区中取所述UDP数据包,直至所述直播编转码任务结束。
[0017]进一步地,计算每一个所述UDP数据包的所述预计目标时间,具体为:
[0018]首次发送所述UDP数据包时,将实际发送总数据量置0,并记录发送开始时间;
[0019]发送每个所述UDP数据包时,将当前所述UDP数据包的实际发送数据量累加到所述实际发送总数据量上;
[0020]计算所述预计目标时间,所述预计目标时间=所述发送开始时间+所述实际发送总数据量/所述UDP发送目标码率。
[0021]进一步地,若所述当前时间小于所述预计目标时间,对所述UDP数据包通过所述延时控制模块执行延时发送,具体为:
[0022]获取所述当前时间,将所述当前时间与所述预计目标时间进行比较;
[0023]若所述当前时间小于所述预计目标时间,表示所述UDP数据包发送太早,通过所述延时控制模块执行延时发送,所述延时控制模块的延时执行时间取实际延迟时间以及最大延时时间中的小值;
[0024]若所述当前时间大于等于所述预计目标时间,表示所述UDP数据包发送太慢,直接发送所述UDP数据包。
[0025]进一步地,所述延时控制模块的所述延时执行时间取所述实际延迟时间以及所述最大延时时间中的小值,具体为:
[0026]所述实际延迟时间=所述预计目标时间

所述当前时间;
[0027]所述最大延时时间=单次发送的所述UDP数据包的数据量/所述UDP发送目标码率+1;
[0028]若计算出的所述述实际延迟时间超过所述最大延时时间,则以所述最大延时时间作为所述延时执行时间,若计算出的所述述实际延迟时间不超过所述最大延时时间,则以所述实际延迟时间作为所述延时执行时间。
[0029]进一步地,通过所述延时控制模块执行延时发送,具体为:
[0030]计算出所述延时执行时间之后开始延时,获取初始的所述系统时钟,然后开始获取所述系统时钟的循环;
[0031]将当前的所述系统时钟与初始的所述系统时钟的差值与所述延时执行时间进行对比,差值满足所述延时执行时间时跳出循环,实现通过延时控制模块执行精准延时发送的能力。
[0032]一种用于执行如上述的基于高码率的CBR模式UDP发送控制方法的基于高码率的CBR模式UDP发送控制系统,包括:
[0033]转码任务建立模块,用于提供给用户建立直播编转码任务,选择恒定比特率技术CBR作为码率控制模式,选择传输层协议UDP作为输出协议,同时设置UDP控制输出参数;
[0034]转码任务执行模块,用于提供给转码服务后台接收所述用户创建的所述直播编转码任务,启动转码引擎执行所述直播编转码任务,传递所述UDP控制输出参数到所述转码引擎,并在高码率下采用所述恒定比特率技术CBR的码率控制模式对所述选择传输层协议UDP的输出进行精准控制;
[0035]转码成功消息回馈模块,用于提供给所述转码引擎返本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于高码率的CBR模式UDP发送控制方法,其特征在于,包括以下步骤:S1:用户建立直播编转码任务,选择恒定比特率技术CBR作为码率控制模式,选择传输层协议UDP作为输出协议,同时设置UDP控制输出参数;S2:转码服务后台接收所述用户创建的所述直播编转码任务,启动转码引擎执行所述直播编转码任务,传递所述UDP控制输出参数到所述转码引擎,并在高码率下采用所述恒定比特率技术CBR的码率控制模式对所述选择传输层协议UDP的输出进行精准控制;S3:所述转码引擎返回转码成功消息到所述转码服务后台,所述转码服务后台将转码成功消息返回给所述用户。2.根据权利要求1所述的基于高码率的CBR模式UDP发送控制方法,其特征在于,在步骤S1中,还包括设置通过所述传输层协议UDP控制输出的包括UDP发送目标码率、缓冲区大小、每次发送的UDP数据包长度在内的所述UDP控制输出参数。3.根据权利要求2所述的基于高码率的CBR模式UDP发送控制方法,其特征在于,在步骤S2中,在高码率下采用所述恒定比特率技术CBR的码率控制模式对选择所述传输层协议UDP的输出进行精准控制,具体为:在对所述传输层协议UDP的输出进行初始化时,申请缓冲区内存作为UD P缓冲区,创建发送控制线程,其中,所述发送控制线程用于从所述UDP缓冲区中获取数据,若所述缓冲区内存为空,则阻塞等待条件变量唤醒;所述直播编转码任务开始执行后,用于转码的主线程将已封装的TS包发送到所述UDP缓冲区,并唤醒等待的条件变量,所述主线程继续进行后续数据的接收处理;所述发送控制线程被唤醒,从所述UDP缓冲区中获取数据,记录发送开始时间,然后循环发送每个UDP数据包,计算每一个所述UDP数据包的预计目标时间,若当前时间小于所述预计目标时间,对所述UDP数据包通过延时控制模块执行延时发送;继续进行下一个所述UDP数据包的发送,直至取出的所述UDP数据包都发送完后,继续从所述UDP缓冲区中取所述UDP数据包,直至所述直播编转码任务结束。4.根据权利要求3所述的基于高码率的CBR模式UDP发送控制方法,其特征在于,计算每一个所述UDP数据包的所述预计目标时间,具体为:首次发送所述UDP数据包时,将实际发送总数据量置0,并记录发送开始时间;发送每个所述UDP数据包时,将当前所述UDP数据包的实际发送数据量累加到所述实际发送总数据量上;计算所述预计目标时间,所述预计目标时间=所述发送开始时间+所述实际发送总数据量/所述UDP发送目标码率。5.根据权利要求3所述的基于高码率的CBR模式UDP发送控制方法,其特征在于,若所述当前时间小于所述预计目标时间,对所述UDP数据包通过所述延时控制模块执行延时发送,具体为:获取...

【专利技术属性】
技术研发人员:杨天使唐杰张加瑞戴立言
申请(专利权)人:上海网达软件股份有限公司
类型:发明
国别省市:

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

1