CN113542813A - 一种数据传输的方法及装置 - Google Patents
一种数据传输的方法及装置 Download PDFInfo
- Publication number
- CN113542813A CN113542813A CN202110658633.1A CN202110658633A CN113542813A CN 113542813 A CN113542813 A CN 113542813A CN 202110658633 A CN202110658633 A CN 202110658633A CN 113542813 A CN113542813 A CN 113542813A
- Authority
- CN
- China
- Prior art keywords
- packet
- data packet
- source
- audio
- sending
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开涉及通信技术领域,尤其涉及一种数据传输的方法及装置。用于解决在弱网下,音频数据不能稳定传输的问题,该方法为:获取第一源数据包集合;在每一次发送周期发送数据之前,按照设定阈值和预设的丢弃优先级对第一源数据包集合进行丢包处理,获得第二源数据包集合,第二源数据包集合对应的第二预计总传送时长未达到设定阈值;然后,将第二源数据包集合包含的至少一个数据包发送至接收端;这样,可以最大限度地保证每一次发送周期都可以将从外接采集设备获取到的各个音频数据包,稳定地发送至接收端;从而做到将从外接采集设备获取到的全部音频数据包稳定地发送至接收端,进而使接收端的用户可以获得视频会议中具有连贯性和完整性的音频数据。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种数据传输的方法及装置。
背景技术
随着实时视频通讯技术的发展,实时视频会议的应用也日益普及。实时视频会议通过多媒体网络技术可以让处于不同地点的参会者同时参加一个会议,并能进行实时反馈和沟通,从而显著提高工作效率。
实时视频会议能否顺畅进行,与当前的网络环境密切相关。当当前网络环境良好,视频会议音视频数据可以顺利地发送至参会者的显示设备上;但当当前网络环境较差时,如当前网络可用带宽低于需传输的音频数据的传输码率和视频数据的传输码率的最低码率之和,接收端的参会者会看到时不时卡顿的视频画面,以及听到断断续续、不连贯的声音。已有技术下,并没有优选的方案来解决数据传输过程中出现的上述问题。
因此,需要设计一种新的方法以解决上述问题。
发明内容
本公开的目的是提供一种数据传输的方法及装置,用于在实时视频会议中,当前网络可用带宽不足以保证音频和视频正常传输时,解决音频不连贯的问题。
本公开实施例提供的具体技术方案如下:
第一方面,一种数据传输的方法,包括:
获取第一源数据包集合;
在发送数据之前,若所述第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对所述第一源数据包集合进行丢包处理,获得第二源数据包集合,所述第二源数据包集合对应的第二预计总传送时长未达到所述设定阈值;其中,所述第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,所述第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;
将所述第二源数据包集合包含的至少一个数据包发送至接收端。
第二方面,一种数据传输的装置,包括:
获取模块,用于获取第一源数据包集合;
丢包模块,用于在发送数据之前,若所述第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对所述第一源数据包集合进行丢包处理,获得第二源数据包集合,所述第二源数据包集合对应的第二预计总传送时长未达到所述设定阈值;其中,所述第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,所述第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;
发送模块,用于将所述第二源数据包集合包含的至少一个数据包发送至接收端。
第三方面,一种数据传输设备,包括:
存储器,用于存储可被控制器执行的计算机程序;
控制器与存储器连接,被配置为执行如上述第一方面任一项的方法。
第四方面,一种计算机可读存储介质,当所述计算机可读存储介质中的计算机程序由处理器执行时,使得所述处理器能够执行上述第一方面中任一项所述的方法。
本公开实施例中,获取第一源数据包集合;在发送数据之前,若第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对第一源数据包集合进行丢包处理,获得第二源数据包集合,第二源数据包集合对应的第二预计总传送时长未达到设定阈值;其中,第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;然后,将第二源数据包集合包含的至少一个数据包发送至接收端;这样,可以最大限度地保证每个发送周期都可以将从外接采集设备获取到的各个音频数据包,稳定地发送至接收端;从而做到将从外接采集设备获取到的全部音频数据包稳定地发送至接收端,进而使接收端的用户可以获得视频会议中具有连贯性和完整性的音频数据。
附图说明
图1为本公开实施例中进行数据传输的流程示意图;
图2为本公开实施例中一种应用场景的示意图;
图3为本公开实施例中一种应用场景的示意图;
图4为本公开实施例中获取第一源数据包集合的示意图;
图5为本公开实施例中获取第二源数据包集合的示意图;
图6为本公开实施例中一种应用场景的示意图;
图7为本公开实施例中一种应用场景的示意图;
图8为本公开实施例中获取待发送数据的流程示意图;
图9为本公开实施例中一种应用场景的示意图;
图10为本公开实施例中获取第三源数据包集合的示意图;
图11为本公开实施例中弱网下保证音频数据包稳定发送的示意图;
图12为本公开实施例中数据传输装置的逻辑架构示意图;
图13为本公开实施例中数据传输设备的实体架构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,并不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够在除了这里图示或描述的那些以外的顺序实施。
视频会议作为目前最先进的通讯技术,只需借助互联网,即可实现高效高清的远程会议、办公,在持续提升用户沟通效率、缩减企事业单位的差旅费用成本、提高管理成效等方面具有得天独厚的优势,已部分取代商务出行,成为远程办公最新模式。
通常视频会议对带宽的要求较高,若在视频会议中,出现网络可用带宽低于需传输的音频数据的传输码率和视频数据的传输码率的最低码率之和时,就不能满足音频数据和视频数据稳定传输的需求,从而造成接收端接收到的视频画面卡顿,或/和,音频断断续续等,这种波动明显的网络环境在音视频领域被称为弱网。
为了解决在弱网下,音频数据和视频数据不能稳定传输的问题,以及实际应用中,视频会议中,用户对音频数据的需求要大于视频数据;因此,本公开实施例中,获取第一源数据包集合;在发送数据之前,若第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对第一源数据包集合进行丢包处理,获得第二源数据包集合,第二源数据包集合对应的第二预计总传送时长未达到设定阈值;其中,第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;然后,将第二源数据包集合包含的至少一个数据包发送至接收端,从而使接收端接收到的连贯、不间断的音频文件。
在本公开实施例中,执行主体可以是智能设备,也可以是服务器,可以根据实际需要确定,在此不做具体限定。其中,所述智能设备可以为智能移动终端,平板电脑,笔记本电脑,智能掌上设备,个人电脑(Personal Computer, PC),计算机,智能屏,各类可穿戴设备,个人数字助理(Personal Digital Assistant, PDA)等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。在本公开中也不作限定。
下面结合附图对本公开优选的实施方式做出进一步详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本公开,并且在不冲突的情况下,本公开实施例及实施例中的特征可以相互组合。
本公开实施例中,从外接采集设备获取待发送的各个音频数据包和各个视频数据包,并将获取到的各个音频数据包和各个视频数据包分别预存到相应类型的缓存队列中,同时,分别将数据传输过程中的各个音频重传包、各个视频重传包和各个前向纠错码(Forward Error Correction,FEC)数据包预存到各自对应的数据类型的缓存队列中,以保证数据传输的完整性。
本公开实施例中,数据传输采用周期发送方式,具体的,在任意一个发送周期开始之前,均需对上述缓存队列中的数据包进行如下步骤,从而保证在弱网下,也可以使音频数据包稳定发送。本公开实施例中,仅针对任意一个发送周期发送数据之前为例对本方案进行介绍,对其他发送周期发送数据之前进行的操作于此相同,在此不在赘述。
参阅图1所示,本公开实施例中,进行数据传输的具体流程如下:
步骤100:获取第一源数据包集合。
本公开实施例中,通过执行以下操作,获取第一源数据包集合:
操作一,从第一缓存队列中,获取待发送的各个音频数据包;其中,第一缓存队列中预存有从外接采集设备获取的各个音频数据包。
本公开实施例中,从外接采集设备获取到待发送的各个音频数据包之后,将获取到的各个音频数据包存储到第一缓存队列中,其中,获取到的各个音频数据包按照接收时序的先后顺序对应存储到第一缓存队列中。
例如,参阅图2所示,以A地点的总公司、B地点的子公司以及C地点的分公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点和C地点的智能设备均为接收端。
发送端从智能设备上的摄像头获取待发送的时刻一的音频数据包,记为音频数据包1,以及时刻二的音频数据包,记为音频数据包2;然后,将获取到的音频数据包1和音频数据包2,按照接收时序存储到第一缓存队列中,即在第一缓存队列中,按照接收时序从高到低的顺序,预存的各个音频数据包:音频数据包1、音频数据包2。
操作二,从第二缓存队列中,获取待发送的各个音频重传包;其中,第二缓存队列中预存有历史发送周期中未发送成功的各个音频数据包。
本公开实施例中,通常当需要重传某个音频数据包时,实时传输协议 (Real-timeTransport Protocol,RTP)数据包历史发送记录模型会将需要重传的音频数据包存储到第二缓存队列中。
例如,参阅图3所示,仍以A地点的总公司、B地点的子公司以及C地点的分公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点和C地点的智能设备均为接收端,以及发送端已经将时刻一对应的音频数据包(记为,音频数据包1)发往接收端。
若接收端(如,B地点的智能设备)没有接收到发送端发送的音频数据包 1,则B地点的智能设备向发送端发送重传音频数据包1请求。
发送端接收到该重传音频数据包1请求之后,从RTP数据包历史发送记录模型中获取音频数据包1,并将音频数据包1存储到第二缓存队列中。
操作三,从第三缓存队列中,获取待发送的各个视频数据包;其中,第三缓存队列中预存有从外接采集设备获取的各个视频数据包。
本公开实施例中,与从外接采集设备获取待发送的各个音频数据包,并将各个音频数据包存储在第一缓存队列的方式相似,相应的,从外界采集设备获取到待发送的各个视频数据包之后,将获取到的各个视频数据包存储到第三缓存队列中,其中,获取到的各个视频数据包按照接收时序的先后顺序对应存储到第三缓存队列中。
操作四,从第四缓存队列中,获取待发送的各个视频重传包;其中,第四缓存队列中存储有历史发送周期中未发送成功的各个视频数据包。
本公开实施例中,与获取音频重传包的方式相似,当需要重传某个视频数据包时,RTP数据包历史发送记录模型会将需要重传的视频数据包存储到第四缓存队列中。
操作五,从第五缓存队列中,获取待发送的各个前后纠错数据包;其中,第五缓存对列中预存有相应的数据包的各个前向纠错数据包。
本公开实施例中,前向纠错数据包是为了降低数据传输过程中产生的错误码,而在数据被送入传输信道之前对该数据进行编码处理后获得的。
具体的,在数据被送入传输信道之前,预先按一定的算法对数据进行编码处理,加入带有数据本身特征的冗码,在接收端按照相应算法对接收到的数据进行解码,找出在传输过程中产生的错误码,并基于前向纠错数据包对错误码进行纠正,这样,可以保证数据传输的准确性。
操作六,把获取到的各个音频数据包、各个音频重传包、各个视频数据包、各个视频重传包、各个前后纠错数据包,组成第一源数据包集合。
本公开实施例中,上述任意一个缓存队列包含的各个数据包之间均按照接收时序进行排列;比如,在第二缓存队列中,按照音频重传包对应的音频数据包的接收时序,将时刻一的音频重传包1,排到时刻二的音频重传包2的前面,这样,发送音频重传包时,先发送音频重传包1,然后,再发送音频重传包2。
可选的,本公开实施例中,外接采集设备可以包含但不限于如下形式:摄像头、屏幕共享、高清多媒体接口(High Definition Multimedia Interface,HDMI)。
例如,参阅图4所示,以A地点的总公司、B地点的子公司通过应用程序 A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,以及上述第一缓存队列、第二缓存队列、第三缓存队列、第四缓存队列和第五缓存队列分别预存有如表1的各个数据包:
表1
获取到的待发送的数据包 | |
第一缓存队列 | 音频数据包2、音频数据包3 |
第二缓存队列 | 音频重传包1(对应音频数据包1) |
第三缓存队列 | 视频数据包2、视频数据包3 |
第四缓存队列 | 视频重传包1(对应视频数据包1) |
第五缓存队列 | 前向纠错数据包1 |
则发送端分别从第一缓存队列、第二缓存队列、第三缓存队列、第四缓存队列和第五缓存队列中,获取到的第一源数据包集合:{音频数据包2、音频数据包3、音频重传包1(对应音频数据包1)、视频数据包2、视频数据包3、视频重传包1(对应视频数据包1)、前向纠错数据包1}。
步骤110:在发送数据之前,若第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对第一源数据包集合进行丢包处理,获得第二源数据包集合,第二源数据包集合对应的第二预计总传送时长未达到设定阈值;其中,第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的。
本公开实施例中,在发送数据之前,获取上一次发送周期的结束时刻对应的第一传输码率,确定第一源数据包集合对应的第一预计总传送时长;若第一预计总传送时长达到设定阈值,则根据以下丢弃优先级从高到低的顺序,对第一源数据包集合进行丢包处理,从而获得第二源数据包集合:前后纠错数据包、视频重传包、视频数据包、音频重传包和音频数据包。其中,第二源数据包集合对应的第二预计总传送时长未达到设定阈值。
例如,参阅图5所示,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,以及发送端获取到的第一源数据包集合:{音频数据包2、音频数据包3、音频重传包 1(对应音频数据包1)、视频数据包2、视频数据包3、视频重传包1(对应视频数据包1)、前向纠错数据包1}。
又假设设定阈值为1s,第一传输码率为800Kbits/s,以及基于第一传输码率确定的第一预计传送总时长为1.2s。
由于1.2s>1s,即第一预计传送总时长达到设定阈值,则发送端第一源数据包集合进行丢包处理。
又由于预设的丢弃优先级从高到低的顺序为前后纠错数据包、视频重传包、视频数据包、音频重传包和音频数据包。
则发送端对第一源数据包集合进行丢包处理,直至获得的第二源数据包集合对应的第二预计总传送时长未达到设定阈值(即,1s)为止,其中,假设第二传输码率等于第一传输码率,即在进行上述丢包操作时,带宽估计模块未发送新的传输码率。
又假设发送端将视频重传包1丢弃后,获得的第二预计总传送时长未达到设定阈值。
那么,发送端获得第二源数据包集合:{音频数据包2、音频数据包3、音频重传包1(对应音频数据包1)、视频数据包2、视频数据包3}。
可选的,按照上述丢弃优先级,依次对前后纠错数据包、视频重传包和视频数据包进行丢包处理,若第一源数据包集合包含的各个视频数据包已全部被丢弃,且对应的第三预计总传送时长仍达到设定阈值,则为第三缓存队列设置视频数据包拒收标识;其中,第三预计总传送时长是基于第一时刻对应的第三传输码率确定的,第一时刻为各个视频数据包全部被丢弃的时刻;视频数据包拒收标识表征第三缓存队列停止从外界采集设备获取视频数据包。
例如,参阅图6所示,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,发送端获取到的第一源数据包集合:{音频数据包2、音频数据包3、音频重传包1(对应音频数据包1)、视频数据包2、视频数据包3、视频重传包1(对应视频数据包1)、前向纠错数据包1},以及将第一源数据包集合包含的各个视频数据包全部丢弃后,对应的第三预计总传送时长(如,1.1s)仍达到设定阈值(如, 1s),其中,假设第三传输码率、第二传输码率以及第一传输码率均为一个数值,即在进行上述丢包操作时,带宽估计模块未发送新的传输码率。
则发送端为第三缓存队列设置视频数据包拒收标识,用于停止第三缓存队列从外接采集设备获取视频数据包。
进一步地,由于对第一源数据包集合包含的视频数据包已全部丢弃,且对应的第三预设总传松时长仍达到设定阈值,则对第一源数据包集合包含的各个音频重传包进行丢包处理;若第一源数据包集合包含的各个音频重传包已全部被丢弃,且对应的第四预计总传送时长仍达到设定阈值,则将第一源数据包集合包含的接收时序最早的音频数据包存储到丢弃数据包集合中;其中,第四预计总传送时长是基于第二时刻对应的第四传输码率确定的,第二时刻为所述各个音频重传包全部被丢弃的时刻。
例如,参阅图7所示,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,发送端获取到的第一源数据包集合:{音频数据包2、音频数据包3、音频重传包1(对应音频数据包1)、视频数据包2、视频数据包3、视频重传包1(对应视频数据包1)、前向纠错数据包1},以及将第一源数据包集合包含的各个音频重传包全部丢弃后,对应的第四预计总传送时长(如,1.05s)仍达到设定阈值(如,1s),其中,假设第四传输码率、第三传输码率、第二传输码率以及第一传输码率均为一个数值,即在进行上述丢包操作时,带宽估计模块未发送新的传输码率。
则发送端为将第一源数据包集合包含的接收时序最早的音频数据包存储到丢弃数据包集合中,即将音频数据包2存储到丢弃数据包集合中。
可选的,第一传输码率、第二传输码率、第三传输码率和第四传输码率,可以是同一个数值,也可以是不同的数值;具体实施中,传输码率根据网络环境动态变化,通常传输码率由带宽估计模型对网络进行实时监测估计获得的,当带宽估计模型监测到传输码率变化时,将新的传输码率传送过来,从而实现根据网络带宽情况进行实时调整。
这样,在发送数据之前,按照丢弃优先级从高到低的顺序,对第一源数据包集合包含的各个数据包进行丢包处理,可以获得第二预计总传送时长未达到设定阈值的第二源数据包集合,然后,执行步骤120,实现弱网下音频数据包的稳定发送。
步骤120:将第二源数据包集合包含的至少一个数据包发送至接收端。
本公开实施例中,在发送周期间隔,采用发送函数调用用于获取待发送数据包的线程;具体实施中,参阅图8所示,调用该线程后,进一步通过执行如下步骤,从第二源数据包集合中,获取待发送数据包:
步骤1201:根据第二传输码率,设定阈值,发送周期间隔,以及上一次发送周期发送的待发送数据包对应的超额字节数,确定本次发送周期的待发送数据包对应的第一字节总数。
本公开实施例中,在获取待发送数据包之前,需要计算本次发送周期的待发送数据包对应的第一字节总数,具体的,根据本次发送周期的开始时刻对应的第二传输码率,确定本次发送周期可发送字节数。
本公开实施例中,可以采用如下公式,确定本次发送周期可发送字节数:
canSendBytes=(sendBitrate/8)/(设定阈值/sendTimeInterval)–lastMoreSendByte
其中,canSendBytes为本次发送周期可发送字节数,sendBitrate为传输码率,sendTimeInterval为发送时间间隔,以及lastMoreSendBytes为上一次发送周期发送的待发送数据包对应的超额字节数。
例如,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端。
又假设发送端获取到的本次发送周期的结束时刻对应的第二传输码率为800Kbits/s,设定阈值为1s,发送周期间隔为10ms,以及上一次发送周期发送的待发送数据包对应的超额字节数为200字节。
则发送端确定的本次发送周期可发送的第一字节总数为:
canSendBytes=(800K/8)/(1000/10)–200=800字节。
步骤1202:根据第一字节总数,从第二源数据包集合中,按照接收时序和预设的获取优先级,获取相应的待发送数据包;其中,根据以下获取优先级从高到低的顺序,从第二源数据包集合中,获取待发送数据包:音频数据包、音频重传包、视频数据包、视频重传包和前后纠错数据包。
本公开实施例中,在确定了本次发送周期的待发送数据包对应的第一字节总数之后,按照接收时序和预设的获取优先级,从第二源数据包集合中,获取待发送数据包;其中,预设的获取优先级与上述丢弃优先级正好相反,获取优先级从高到低的顺序为音频数据包、音频重传包、视频数据包、视频重传包和前后纠错数据包。
由于本方案是为了保证在弱网下,音频数据包也可以稳定发送,因此,在按照接收时序发送某些事件稍早的数据包之后,优先从音频数据包中获取相应的音频数据包,从而做到是接收端的用户可以接收到完整的视频会议的音频数据。
可选的,在根据第一字节总数,从第二源数据包集合中,获取待发送数据包时,可以包含但不限于如下两种情况:
情况一,若第一字节总数大于第二源数据包集合对应的第二字节总数,则根据第一字节总数,采用相应字节数的空包,构建第一字节总数长度的待发送数据包,并取消第三缓存队列已设置的视频数据包拒收标识。
例如,参阅图9所示,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,以及发送端确定本次发送周期可发送的第一字节总数大于第二源数据包集合对应的第二字节总数,其中,第一字节总数为1K字节,第二字节总数为500字节。
则发送端采用相应的字节数的空包,构建第一字节总数长度的待发送数据包,并取消第三缓存队列已设置的视频数据包拒收标识。
这样,在出现情况一时,表征当前可用带宽可以传输更多的数据包,因此,取消第三缓存队列已设置的视频数据包拒收标识,从外接采集设备获取新的视频数据包。
情况二,若第一字节总数小于第二源数据包集合对应的第二字节总数,则把除待发送数据包之外的数据包,组成第三源数据包集合,以及将第三源数据包集合包含的各个数据包,作为下一次发送周期发送数据之前,获取的第一源数据包集合中的数据包。
例如,参阅图10所示,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,以及发送端确定本次发送周期可发送的第一字节总数小于第二源数据包集合对应的第二字节总数,其中,第一字节总数为1K字节,第二字节总数为2K字节。
则发送端将除待发送数据包之外的数据包,组成第三源数据包集合,以及将第三源数据包集合包含的各个数据包,作为下一次发送周期发送数据之前,获取的第一源数据包集合中的数据包。
又假设获得的待发送数据包为音频数据包2、音频数据包3、音频重传包1;第二源数据包集合中,除待发送数据包之外的数据包有音频数据包4、视频数据包3、视频数据包4、视频重传包2。
则发送端获得的第三源数据包集合为{音频数据包4、视频数据包3、视频数据包4、视频重传包2}。
这样,在出现情况二时,表征第二源数据包集合包含的数据包不能在设定阈值内全部被发送到接收端,那么,本次发送周期只能先发送一部分,剩下的数据包放到下一个发送周期进行发送,因此,将除待发送数据包之外的数据包,归为第三源数据包集合,并将该第三源数据包集合作为下一次发送周期发送数据之前,获取的第一源数据包集合中的一部分数据包。
步骤1203:将待发送数据包发送至接收端。
本公开实施例中,执行步骤1202之后,获取到待发送数据包,并将待发送数据包存储到正常发送数据包集合中;那么,在执行步骤1203时,将该待发送数据包发往接收端。进一步地,在将待发送数据包发往接收端之后,再将丢弃数据包集合中的接收时序最早的音频数据包发往接收端。
可选的,在发送数据之前,若确定本次发送周期内仅可发送接收时序最早的一个音频数据包,则将第二数据包集合包含的一个音频数据包发往接收端。
例如,参阅图11所示,仍以A地点的总公司、B地点的子公司通过应用程序A建立视频会议为例。
假设A地点的智能设备为发送端,B地点的智能设备均为接收端,以及发送端获取的待发送数据包为音频数据包2、音频数据包3;以及丢弃数据包集合包含音频数据包1。
则发送端将待发送数据包(音频数据包2、音频数据包3)发往接收端之后,将丢弃数据包包含的音频数据包1也发往接收端。
这样,将存储在正常发送数据包集合中的各个数据包发往接收端之后,再将预先存储在丢弃数据包集合中的各个数据包也发送到接收端,可以最大限度地保证每个发送周期都可以将从外接采集设备获取到的各个音频数据包,稳定地发送至接收端;由于每个发送周期都保证了获取到的各个音频数据包能被发送至接收端,因此,可以满足接收端的用户对视频会议中的音频数据传输的连贯性和完整性的需求。
基于同一发明构思,参阅图12所示,本公开实施例中提供一种数据传输装置,包括:
获取模块1210,用于获取第一源数据包集合;
丢包模块1220,用于在发送数据之前,若所述第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对所述第一源数据包集合进行丢包处理,获得第二源数据包集合,所述第二源数据包集合对应的第二预计总传送时长未达到所述设定阈值;其中,所述第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,所述第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;
发送模块1230,用于将所述第二源数据包集合包含的至少一个数据包发送至接收端。
可选的,所述获取第一源数据包集合,所述获取模块310用于:
从第一缓存队列中,获取待发送的各个音频数据包;其中,所述第一缓存队列中预存有从外接采集设备获取的所述各个音频数据包;
从第二缓存队列中,获取待发送的各个音频重传包;其中,所述第二缓存队列中预存有历史发送周期中未发送成功的所述各个音频数据包;
从第三缓存队列中,获取待发送的各个视频数据包;其中,所述第三缓存队列中预存有从外接采集设备获取的所述各个视频数据包;
从第四缓存队列中,获取待发送的各个视频重传包;其中,所述第四缓存队列中存储有历史发送周期中未发送成功的所述各个视频数据包;
从第五缓存队列中,获取待发送的各个前后纠错数据包;其中,所述第五缓存对列中预存有相应的数据包的所述各个前向纠错数据包;
把获取到的所述各个音频数据包、所述各个音频重传包、所述各个视频数据包、所述各个视频重传包、所述各个前后纠错数据包,组成所述第一源数据包集合。
可选的,所述按照预设的丢弃优先级,对所述第一源数据包集合进行丢包处理,获得第二源数据包集合,所述丢包模块1220用于:
根据以下丢弃优先级从高到低的顺序,对所述第一源数据包集合进行丢包处理,获得所述第二源数据包集合:前后纠错数据包、视频重传包、视频数据包、音频重传包和音频数据包。
可选的,在对所述第一源数据包集合中的视频数据包进行丢包处理时,所述丢包模块1220还用于:
若所述第一源数据包集合包含的各个视频数据包已全部被丢弃,且对应的第三预计总传送时长仍达到所述设定阈值,则为所述第三缓存队列设置视频数据包拒收标识;其中,所述第三预计总传送时长是基于第一时刻对应的第三传输码率确定的,所述第一时刻为所述各个视频数据包全部被丢弃的时刻;所述视频数据包拒收标识表征所述第三缓存队列停止从外界采集设备获取视频数据包。
可选的,在对所述第一源数据包集合中的音频数据包进行丢包处理时,所述丢包模块1220还用于:
若所述第一源数据包集合包含的各个音频重传包已全部被丢弃,且对应的第四预计总传送时长仍达到所述设定阈值,则将所述第一源数据包集合包含的接收时序最早的音频数据包存储到丢弃数据包集合中;其中,所述第四预计总传送时长是基于第二时刻对应的第四传输码率确定的,所述第二时刻为所述各个音频重传包全部被丢弃的时刻。
可选的,所述将所述第二源数据包集合包含的至少一个数据包发送至接收端,所述发送模块1230用于:
根据所述第二传输码率,所述设定阈值,发送周期间隔,以及上一次发送周期发送的待发送数据包对应的超额字节数,确定本次发送周期的待发送数据包对应的第一字节总数;
根据所述第一字节总数,从所述第二源数据包集合中,按照接收时序和预设的获取优先级,获取相应的待发送数据包,并将所述待发送数据包发送至所述接收端;其中,根据以下获取优先级从高到低的顺序,从所述第二源数据包集合中,获取所述待发送数据包:音频数据包、音频重传包、视频数据包、视频重传包和前后纠错数据包。
可选的,在所述将所述待发送数据包发送至所述接收端之前,所述发送模块1230还用于:
若所述第一字节总数大于所述第二源数据包集合对应的第二字节总数,则根据所述第一字节总数,采用相应字节数的空包,构建所述第一字节总数长度的所述待发送数据包,并取消所述第三缓存队列已设置的视频数据包拒收标识;
若所述第一字节总数小于所述第二源数据包集合对应的第二字节总数,则把除所述待发送数据包之外的数据包,组成第三源数据包集合,以及将所述第三源数据包集合包含的各个数据包,作为下一次发送周期发送数据之前,获取的第一源数据包集合中的数据包。
可选的,在所述将所述第二源数据包集合中的至少一个数据包发往接收端之后,所述发送模块1230还用于:
将所述丢弃数据包集合中的接收时序最早的音频数据包发往所述接收端。
可选的,在发送数据之前,若确定本次发送周期内仅可发送接收时序最早的一个音频数据包,则所述将所述第二源数据包集合包含的至少一个数据包发送至接收端,所述发送模块1230用于:
将所述第二数据包集合包含的所述一个音频数据包发往所述接收端。
参阅图13所示,数据传输设备包括存储器1301和控制器1302,具体的:
存储器1301,用于存储可被控制器1302执行的计算机程序。
控制器1302与存储器连接,被配置为执行上述实施例中数据传输装置执行的任意一种方法。
基于同一发明构思,本公开实施例提供一种计算机可读存储介质,当所述计算机可读存储介质中的计算机程序由处理器执行时,能够执行上述实施例中数据传输装置执行的任意一种方法。
综上所述,本公开实施例中,获取第一源数据包集合;在发送数据之前,若第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对第一源数据包集合进行丢包处理,获得第二源数据包集合,第二源数据包集合对应的第二预计总传送时长未达到设定阈值;其中,第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;然后,将第二源数据包集合包含的至少一个数据包发送至接收端;这样,可以最大限度地保证每个发送周期都可以将从外接采集设备获取到的各个音频数据包,稳定地发送至接收端;从而做到将从外接采集设备获取到的全部音频数据包稳定地发送至接收端,进而使接收端的用户可以获得视频会议中具有连贯性和完整性的音频数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据传输的方法,其特征在于,包括:
获取第一源数据包集合;
在发送数据之前,若所述第一源数据包集合对应的第一预计总传送时长达到设定阈值,则按照预设的丢弃优先级,对所述第一源数据包集合进行丢包处理,获得第二源数据包集合,所述第二源数据包集合对应的第二预计总传送时长未达到所述设定阈值;其中,所述第一预计总传送时长是基于上一发送周期的结束时刻对应的第一传输码率确定的,所述第二预设总传送时长是基于本次发送周期的开始时刻对应的第二传输码率确定的;
将所述第二源数据包集合包含的至少一个数据包发送至接收端。
2.如权利要求1所述的方法,其特征在于,所述获取第一源数据包集合,包括:
从第一缓存队列中,获取待发送的各个音频数据包;其中,所述第一缓存队列中预存有从外接采集设备获取的所述各个音频数据包;
从第二缓存队列中,获取待发送的各个音频重传包;其中,所述第二缓存队列中预存有历史发送周期中未发送成功的所述各个音频数据包;
从第三缓存队列中,获取待发送的各个视频数据包;其中,所述第三缓存队列中预存有从外接采集设备获取的所述各个视频数据包;
从第四缓存队列中,获取待发送的各个视频重传包;其中,所述第四缓存队列中存储有历史发送周期中未发送成功的所述各个视频数据包;
从第五缓存队列中,获取待发送的各个前后纠错数据包;其中,所述第五缓存对列中预存有相应的数据包的所述各个前向纠错数据包;
把获取到的所述各个音频数据包、所述各个音频重传包、所述各个视频数据包、所述各个视频重传包、所述各个前后纠错数据包,组成所述第一源数据包集合。
3.如权利要求2所述的方法,其特征在于,所述按照预设的丢弃优先级,对所述第一源数据包集合进行丢包处理,获得第二源数据包集合,包括:
根据以下丢弃优先级从高到低的顺序,对所述第一源数据包集合进行丢包处理,获得所述第二源数据包集合:前后纠错数据包、视频重传包、视频数据包、音频重传包和音频数据包。
4.如权利要求3所述的方法,其特征在于,在对所述第一源数据包集合中的视频数据包进行丢包处理时,还包括:
若所述第一源数据包集合包含的各个视频数据包已全部被丢弃,且对应的第三预计总传送时长仍达到所述设定阈值,则为所述第三缓存队列设置视频数据包拒收标识;其中,所述第三预计总传送时长是基于第一时刻对应的第三传输码率确定的,所述第一时刻为所述各个视频数据包全部被丢弃的时刻;所述视频数据包拒收标识表征所述第三缓存队列停止从外界采集设备获取视频数据包。
5.如权利要求3所述的方法,其特征在于,在对所述第一源数据包集合中的音频数据包进行丢包处理时,还包括:
若所述第一源数据包集合包含的各个音频重传包已全部被丢弃,且对应的第四预计总传送时长仍达到所述设定阈值,则将所述第一源数据包集合包含的接收时序最早的音频数据包存储到丢弃数据包集合中;其中,所述第四预计总传送时长是基于第二时刻对应的第四传输码率确定的,所述第二时刻为所述各个音频重传包全部被丢弃的时刻。
6.如权利要求4所述的方法,其特征在于,所述将所述第二源数据包集合包含的至少一个数据包发送至接收端,包括:
根据所述第二传输码率,所述设定阈值,发送周期间隔,以及上一次发送周期发送的待发送数据包对应的超额字节数,确定本次发送周期的待发送数据包对应的第一字节总数;
根据所述第一字节总数,从所述第二源数据包集合中,按照接收时序和预设的获取优先级,获取相应的待发送数据包,并将所述待发送数据包发送至所述接收端;其中,根据以下获取优先级从高到低的顺序,从所述第二源数据包集合中,获取所述待发送数据包:音频数据包、音频重传包、视频数据包、视频重传包和前后纠错数据包。
7.如权利要求6所述的方法,其特征在于,在所述将所述待发送数据包发送至所述接收端之前,还包括:
若所述第一字节总数大于所述第二源数据包集合对应的第二字节总数,则根据所述第一字节总数,采用相应字节数的空包,构建所述第一字节总数长度的所述待发送数据包,并取消所述第三缓存队列已设置的视频数据包拒收标识;
若所述第一字节总数小于所述第二源数据包集合对应的第二字节总数,则把除所述待发送数据包之外的数据包,组成第三源数据包集合,以及将所述第三源数据包集合包含的各个数据包,作为下一次发送周期发送数据之前,获取的第一源数据包集合中的数据包。
8.如权利要求6所述的方法,其特征在于,在所述将所述第二源数据包集合中的至少一个数据包发往接收端之后,所述方法还包括:
将所述丢弃数据包集合中的接收时序最早的音频数据包发往所述接收端。
9.如权利要求1所述的方法,其特征在于,在发送数据之前,若确定本次发送周期内仅可发送接收时序最早的一个音频数据包,则所述将所述第二源数据包集合包含的至少一个数据包发送至接收端,包括:
将所述第二数据包集合包含的所述一个音频数据包发往所述接收端。
10.一种数据传输设备,其特征在于,包括:
存储器,用于存储可被所述控制器执行的计算机程序;
控制器与所述存储器连接,被配置为执行如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110658633.1A CN113542813B (zh) | 2021-06-15 | 2021-06-15 | 一种数据传输的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110658633.1A CN113542813B (zh) | 2021-06-15 | 2021-06-15 | 一种数据传输的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542813A true CN113542813A (zh) | 2021-10-22 |
CN113542813B CN113542813B (zh) | 2023-08-25 |
Family
ID=78124893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110658633.1A Active CN113542813B (zh) | 2021-06-15 | 2021-06-15 | 一种数据传输的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542813B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032354A1 (zh) * | 2022-08-09 | 2024-02-15 | 华为技术有限公司 | 数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789886A (zh) * | 2016-11-16 | 2017-05-31 | 深圳市异度信息产业有限公司 | 数据的传输方法及装置 |
EP3416448A1 (en) * | 2017-06-16 | 2018-12-19 | IMEC vzw | Method and system for determining transmission parameters in a wireless local area network |
-
2021
- 2021-06-15 CN CN202110658633.1A patent/CN113542813B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789886A (zh) * | 2016-11-16 | 2017-05-31 | 深圳市异度信息产业有限公司 | 数据的传输方法及装置 |
EP3416448A1 (en) * | 2017-06-16 | 2018-12-19 | IMEC vzw | Method and system for determining transmission parameters in a wireless local area network |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032354A1 (zh) * | 2022-08-09 | 2024-02-15 | 华为技术有限公司 | 数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113542813B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210029189A1 (en) | Voice encoding and sending method and apparatus | |
WO2022247550A1 (zh) | 数据重传处理方法、装置、计算机设备和存储介质 | |
US9749196B2 (en) | Method and device for conference reservation | |
US20110249667A1 (en) | Apparatus and method for transmitting media using either network efficient protocol or a loss tolerant transmission protocol | |
CN112787945B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
KR20180031547A (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
CN103797810A (zh) | 同步的无线显示设备 | |
US10469627B2 (en) | Rapid optimization of media stream bitrate | |
US20240171492A1 (en) | Screen projection data transmission method and apparatus, electronic device, and storage medium | |
CN111629210A (zh) | 一种数据处理的方法、装置及电子设备 | |
CN114039703B (zh) | 数据传输方法、装置、设备和介质 | |
CN108881955A (zh) | 一种实现分布式节点设备视频同步输出的方法及系统 | |
WO2024056032A1 (zh) | 解码、数据传输方法、装置、终端及服务器 | |
CN110233856B (zh) | 报文处理方法、装置及计算机可读存储介质 | |
CN110022534B (zh) | 一种基于组播的数据传输方法及装置 | |
CN113542813B (zh) | 一种数据传输的方法及装置 | |
CN109889922B (zh) | 流媒体数据的转发方法、装置、设备和存储介质 | |
CN112713969A (zh) | 数据传输方法和使用该方法的装置、系统 | |
CN115277649A (zh) | 多媒体会议场景下的文档协同编辑的方法及装置 | |
CN114039702B (zh) | 数据传输方法、装置、设备和介质 | |
JPH1155345A (ja) | 通信装置 | |
CN113489745B (zh) | 视频数据发送方法、装置、设备和存储介质 | |
CN115086285B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN113541872B (zh) | 实时通信方法和实时通信装置 | |
CN114158089A (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 |