[发明专利]一种实现多网卡聚合推流的方法在审
| 申请号: | 202011579694.0 | 申请日: | 2020-12-28 |
| 公开(公告)号: | CN112738642A | 公开(公告)日: | 2021-04-30 |
| 发明(设计)人: | 陈梓文;周丕化;周鹏鹏 | 申请(专利权)人: | 广州赞赏信息科技有限公司 |
| 主分类号: | H04N21/61 | 分类号: | H04N21/61;H04L12/709 |
| 代理公司: | 合肥兴东知识产权代理有限公司 34148 | 代理人: | 王伟 |
| 地址: | 510000 广东省广州市*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 网卡 聚合 方法 | ||
1.一种实现多网卡聚合推流的方法,其特征在于,包括以下步骤:
S1、通过客户端进行多网卡的绑定;
S2、客户端把流数据打包,通过多个链路发送;
S3、服务器把从多个链路收到的数据,进行排序合成一份正常的流输出。
2.根据权利要求1所述的实现多网卡聚合推流的方法,其特征在于,当平台为iOS,Windows,Linux时,所述S1通过客户端进行多网卡的绑定流程具体为:当监听iOS,Windows,Linux系统的设备接口有新的网卡增加时,此时增加一个socket,并调用socket的绑定函数bind,把网卡设备与socket进行绑定,再通过该socket发送数据,即可通过该网卡发出。
3.根据权利要求1所述的实现多网卡聚合推流的方法,其特征在于,当平台为Android时,所述S1通过客户端进行多网卡的绑定流程具体为:当监听Android系统的设备接口有新的网卡增加时,那么会增加一个socket,并调用socket的绑定函数bind,进行绑定到该网卡;根据Android的接口:ConnectivityManager.getAllNetworks获取所有的Network,并根据网卡的ip找到对应的Network;调用Network.bindSocket函数对socket进行绑定操作;最后通过该socket发送数据,即可通过该网卡发出。
4.根据权利要求1所述的实现多网卡聚合推流的方法,其特征在于,所述S2中客户端把流数据打包,通过多个链路发送的具体流程为:
S21、把每一帧数据分成N个1350字节大小的分片,并把数据增加″头部数据″;
S22、根据每个链路的实时状况计算链路的优先级别;
S23、当有数据需要发送时,先根据链路优先级排序,然后优先级高的链路进行发送,发送前,需要检查该链路的带宽和当前链路上的缓存是否满足发送数据,如果满足,则进行发送,如果不满足,则选择下一个链路,进行发送;当所有链路都不足以发送数据时,需要把数据保存起来,等待有链路空闲了,再进行发送;
S24、当数据通过某个链路发送后,发现数据丢失了,那么,该系统会选择其他链路重传该数据。
5.根据权利要求4所述的实现多网卡聚合推流的方法,其特征在于,所述S21中的头部数据包含:Sequence,DataType,segmentCount,segmentIndex,timestamp,data。
6.根据权利要求5所述的实现多网卡聚合推流的方法,其特征在于,所述Sequence为递增序列号,DataType为数据类型:视频、音频、是否为关键帧,segmentCount为一帧数据总的Segment数量,segmentIndex为该Segment在该帧所有Segment中的索引,timestamp为发送时的时间戳,data为Segment数据。
7.根据权利要求4所述的实现多网卡聚合推流的方法,其特征在于,所述S22中根据每个链路的实时状况计算链路的优先级别的具体方法为:
S221、根据rtt范围计算:rrt在0-200ms认为是较好的链路,201-400ms认为是一般的链路,401-800ms认为是差的网络,801-1000ms认为是非常差的网络,1000ms认为是极差的网络;
S222、根据rtt在5秒时间的波动情况计算;
S223、最后根据rtt范围和rtt波动情况,计算一个优先级,优先级越高,表示网络越好。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州赞赏信息科技有限公司,未经广州赞赏信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011579694.0/1.html,转载请声明来源钻瓜专利网。





