[发明专利]基于复杂弱移动网络环境的视频平滑发送直播上行方法有效
申请号: | 201710011238.8 | 申请日: | 2017-01-06 |
公开(公告)号: | CN106604055B | 公开(公告)日: | 2019-08-09 |
发明(设计)人: | 卫铁旦 | 申请(专利权)人: | 广州四三九九信息科技有限公司 |
主分类号: | H04N21/2187 | 分类号: | H04N21/2187;H04N21/262;H04N21/2662;H04N21/643 |
代理公司: | 北京市盛峰律师事务所 11337 | 代理人: | 梁艳 |
地址: | 510630 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 复杂 移动 网络 环境 视频 平滑 发送 直播 上行 方法 | ||
1.一种基于复杂弱移动网络环境的视频平滑发送直播上行方法,其特征在于,包括如下步骤:
S1,获取视频码流变量bitrate;
S2,根据所述视频码流变量bitrate,计算每秒发送的字节大小sendSizePerSec;
S3,根据S2计算得到的sendSizePerSec,计算视频包发包间隔timeGap和发包间隔内一次发包大小sendSizeOneTime;
S4,设置发包间隔内初始化实际发包大小realSendSize=0;
S5,设置视频缓存发送队列大小videoWaitSenderQueue,每次有新包进入队列时,周期遍历缓存发送队列,设置遍历循环当次的视频包大小rawDataSize;
S6,判断所述缓存发送队列视频数据总大小allVideoDataSizeInQueue,当所述缓存发送队列视频数据总大小小于设定阈值的发送数据量时,执行S7,当所述缓存发送队列视频数据总大小大于所述设定阈值的发送数据量时,执行S8-S11;
S7,判断realSendSize+rawDataSize>=sendSizeOneTime,如果是,则停止发送,退出遍历,否则,发送视频数据到视频服务器;
S8,根据allVideoDataSizeInQueue和sendSizeOneTime,计算所述缓存发送队列中,剩余包大小leftSize;
S9,根据leftSize和timeGap,计算所述缓存发送队列中剩余的还需要发送的包大小moreSendSize;所述剩余的还需要发送的包大小moreSendSize,按照如下公式进行计算:moreSendSize=leftSize*timeGap/5000;
S10,根据sendSizeOneTime、moreSendSize、realSendSize和rawDataSize,计算实际少发一个包造成的预估发送大小与实际发送大小的差值gap1,以及,实际多发送一个包造成的实际发送大小与预估发送大小的差值gap2;
所述gap1和gap2分别采用如下公式进行计算:
gap1=(sendSizeOneTime+moreSendSize)-realSendSize;
gap2=(realSendSize+rawDataSize)-(sendSizeOneTime+moreSendSize);
S11,判断是否满足gap1>0,且gap2>0,如果是,判断是否满足gap1<=gap2,如果是,则停止发送,退出遍历,否则,发送视频数据到视频服务器。
2.根据权利要求1所述的基于复杂弱移动网络环境的视频平滑发送直播上行方法,其特征在于,S2中,采用如下公式计算每秒发送的字节大小sendSizePerSec:sendSizePerSec=bitrate*1024/8。
3.根据权利要求1所述的基于复杂弱移动网络环境的视频平滑发送直播上行方法,其特征在于,S3中,采用如下公式计算视频包发包间隔timeGap:
timeGap=Epoll::msecEpoch-lastCheckSendVideoMSec;
式中,
Epoll::msecEpoch:表示本次获取的本地时钟值;
lastCheckSendVideoMSec:表示上一次程序循环记录的检查获取的本地时钟值;
采用如下公式计算发包间隔内一次发包大小sendSizeOneTime:
sendSizeOneTime=timeGap*sendSizePerSec/1000。
4.根据权利要求1所述的基于复杂弱移动网络环境的视频平滑发送直播上行方法,其特征在于,S5中,所述视频缓存发送队列大小videoWaitSenderQueue设置为小于等于1000,所述遍历循环当次的视频包大小rawDataSize设置为1300字节,S6中,所述设定阈值为250ms。
5.根据权利要求1所述的基于复杂弱移动网络环境的视频平滑发送直播上行方法,其特征在于,S8中,所述剩余包大小leftSize,按照如下公式进行计算:
leftSize=allVideoDataSizeInQueue-sendSizeOneTime。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州四三九九信息科技有限公司,未经广州四三九九信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710011238.8/1.html,转载请声明来源钻瓜专利网。