CN112866178A - 音频数据传输的方法和装置 - Google Patents
音频数据传输的方法和装置 Download PDFInfo
- Publication number
- CN112866178A CN112866178A CN201911182837.1A CN201911182837A CN112866178A CN 112866178 A CN112866178 A CN 112866178A CN 201911182837 A CN201911182837 A CN 201911182837A CN 112866178 A CN112866178 A CN 112866178A
- Authority
- CN
- China
- Prior art keywords
- audio data
- data packet
- channel
- udp channel
- udp
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/006—Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
- H04M7/0081—Network operation, administration, maintenance, or provisioning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了音频数据传输的方法和装置,涉及计算机技术领域。其中,应用于发送端的音频数据传输的方法的一具体实施方式包括:根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用主UDP通道发送至少一个音频数据包;利用主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;在监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送至少一个音频数据包。该实施方式在发送端与接收端之间的网络状态不好的情况下,可以增加辅UDP通道和TCP通道发送音频数据包,这样可以减少音频数据包的丢包率,保证音频的流畅性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种音频数据传输的方法和装置。
背景技术
信息化时代的来临,越来越多的用户使用网络聊天工具来进行语音聊天,这种语音并不是通过电信运营商的传统电话网络进行传输,而是通过互联网进行传输。这种将语音转化为IP(即,网络之间互连的协议Internet Protocol,是为计算机网络相互连接进行通信而设计的协议)数据包,部分或全部基于IP网络传输的技术就是VoIP技术。
VoIP技术能广泛地采用因特网和全球IP互连的环境,提供比传统业务更多、更好的服务。目前,VoIP主要采用单条通道发送音频数据包,采用反馈控制包来进行实时的码流控制。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:采用单通道发送音频数据包,抗丢包、延迟、抖动能力差,尤其在连续丢包和高抖动情况下,会影响语音的流畅性。
发明内容
有鉴于此,本发明实施例提供一种音频数据传输的方法和装置,能够减少音频数据包的丢包率,保证音频的流畅性。
为实现上述目的,根据本发明实施例的第一方面,提供了一种音频数据传输的方法。
本发明实施例的一种音频数据传输的方法,应用于发送端,包括:根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用所述主UDP通道发送至少一个音频数据包;利用所述主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;在所述监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送所述至少一个音频数据包。
可选地,所述按照预设规则,增加辅UDP通道和TCP通道发送所述至少一个音频数据包,包括:确定所述发送端的网络连接模式;在所述网络连接模式为无线网络的情况下,增加第一辅UDP通道集错位发送所述至少一个音频数据包,然后开启所述TCP通道发送所述至少一个音频数据包;在所述网络连接模式为移动网络的情况下,开启所述TCP通道发送所述至少一个音频数据包,然后增加第二辅UDP通道集错位发送所述至少一个音频数据包。
可选地,所述增加第一辅UDP通道集错位发送所述至少一个音频数据包,包括:对所述第一辅UDP通道集的所有第一辅UDP通道进行排序,得到第一排序结果;针对所述第一辅UDP通道集中的第一辅UDP通道,按照如下方法,利用所述第一辅UDP通道发送所述至少一个音频数据包:根据所述第一辅UDP通道在所述第一排序结果中的顺序、所述主UDP通道的发送时间和所述音频数据包的发送时间间隔,确定所述第一辅UDP通道的第一发送时间,然后基于所述第一发送时间,按照所述音频数据包的发送时间间隔,发送所述至少一个音频数据包。
可选地,所述增加第二辅UDP通道集错位发送所述至少一个音频数据包,包括:对所述第二辅UDP通道集的所有第二辅UDP通道进行排序,得到第二排序结果;针对所述第二辅UDP通道集中的第二辅UDP通道,按照如下方法,利用所述第二辅UDP通道发送所述至少一个音频数据包:根据所述第二辅UDP通道在所述第二排序结果中的顺序、所述主UDP通道的发送时间和所述音频数据包的发送时间间隔,确定所述第二辅UDP通道的第二发送时间,然后基于所述第二发送时间,按照所述音频数据包的发送时间间隔,发送所述至少一个音频数据包。
可选地,所述开启所述TCP通道发送所述至少一个音频数据包,包括:对所述至少一个音频数据包中每相邻两个音频数据包进行异或处理,获得纠错补偿数据包;开启所述TCP通道,利用所述TCP通道发送所述纠错补偿数据包。
可选地,预设条件是指主UDP通道发送音频数据包,没有发生丢包的情况。
为实现上述目的,根据本发明实施例的第二方面,提供了一种音频数据传输的方法。
本发明实施例的一种音频数据传输的方法,应用于接收端,包括:接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包;若是,则直接获取所述目标音频数据包,若否,则根据所述接收的音频数据包和接收的纠错补偿数据包,获取所述目标音频数据包。
可选地,在直接获取所述目标音频数据包之后,所述方法还包括:从所述接收的音频数据包中删除与所述目标音频数据包相同的数据包。
可选地,所述根据所述接收的音频数据包和接收的纠错补偿数据包,获取所述目标音频数据包,包括:从所述接收的纠错补偿数据包中,获取与所述目标数据包相关的目标纠错补偿数据包,所述目标纠错补偿数据包是对所述目标音频数据包和相邻音频数据包进行异或处理得到的;从所述接收的音频数据包之后,获取所述相邻音频数据包;根据所述目标纠错补偿数据包和所述相邻音频数据包,获取所述目标音频数据包。
可选地,在获取与所述目标数据包相关的目标纠错补偿数据包之前,所述方法还包括:从所述接收的纠错补偿数据包中,查询是否包括所述目标纠错补偿数据包,若否,则记录丢失所述目标音频数据包;以及在获取所述相邻音频数据包之前,所述方法还包括:从所述接收的音频数据包中,查询是否包括所述相邻音频数据包,若否,则记录丢失所述目标音频数据包。
为实现上述目的,根据本发明实施例的第三方面,提供了一种音频数据传输的装置。
本发明实施例的一种音频数据传输的装置,设置在发送端,包括:第一发送模块,用于根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用所述主UDP通道发送至少一个音频数据包;监测模块,用于利用所述主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;第二发送模块,用于在所述监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送所述至少一个音频数据包。
可选地,所述第二发送模块还用于:确定所述发送端的网络连接模式;在所述网络连接模式为无线网络的情况下,增加第一辅UDP通道集错位发送所述至少一个音频数据包,然后开启所述TCP通道发送所述至少一个音频数据包;在所述网络连接模式为移动网络的情况下,开启所述TCP通道发送所述至少一个音频数据包,然后增加第二辅UDP通道集错位发送所述至少一个音频数据包。
可选地,所述第二发送模块还用于:对所述第一辅UDP通道集的所有第一辅UDP通道进行排序,得到第一排序结果;针对所述第一辅UDP通道集中的第一辅UDP通道,按照如下方法,利用所述第一辅UDP通道发送所述至少一个音频数据包:根据所述第一辅UDP通道在所述第一排序结果中的顺序、所述主UDP通道的发送时间和所述音频数据包的发送时间间隔,确定所述第一辅UDP通道的第一发送时间,然后基于所述第一发送时间,按照所述音频数据包的发送时间间隔,发送所述至少一个音频数据包。
可选地,所述第二发送模块还用于:对所述第二辅UDP通道集的所有第二辅UDP通道进行排序,得到第二排序结果;针对所述第二辅UDP通道集中的第二辅UDP通道,按照如下方法,利用所述第二辅UDP通道发送所述至少一个音频数据包:根据所述第二辅UDP通道在所述第二排序结果中的顺序、所述主UDP通道的发送时间和所述音频数据包的发送时间间隔,确定所述第二辅UDP通道的第二发送时间,然后基于所述第二发送时间,按照所述音频数据包的发送时间间隔,发送所述至少一个音频数据包。
可选地,所述第二发送模块还用于:对所述至少一个音频数据包中每相邻两个音频数据包进行异或处理,获得纠错补偿数据包;开启所述TCP通道,利用所述TCP通道发送所述纠错补偿数据包。
可选地,预设条件是指主UDP通道发送音频数据包,没有发生丢包的情况。
为实现上述目的,根据本发明实施例的第四方面,提供了一种音频数据传输的装置。
本发明实施例的一种音频数据传输的装置,设置在接收端,包括:接收模块,用于接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;判断模块,用于根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包;获取模块,用于若是,则直接获取所述目标音频数据包,若否,则根据所述接收的音频数据包和接收的纠错补偿数据包,获取所述目标音频数据包。
可选地,所述获取模块还用于:从所述接收的音频数据包中删除与所述目标音频数据包相同的数据包。
可选地,所述获取模块还用于:从所述接收的纠错补偿数据包中,获取与所述目标数据包相关的目标纠错补偿数据包,所述目标纠错补偿数据包是对所述目标音频数据包和相邻音频数据包进行异或处理得到的;从所述接收的音频数据包之后,获取所述相邻音频数据包;根据所述目标纠错补偿数据包和所述相邻音频数据包,获取所述目标音频数据包。
可选地,所述判断模块还用于:从所述接收的纠错补偿数据包中,查询是否包括所述目标纠错补偿数据包,若否,则记录丢失所述目标音频数据包;以及从所述接收的音频数据包中,查询是否包括所述相邻音频数据包,若否,则记录丢失所述目标音频数据包。
为实现上述目的,根据本发明实施例的第五方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的音频数据传输的方法。
为实现上述目的,根据本发明实施例的第六方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的音频数据传输的方法。
上述发明中的一个实施例具有如下优点或有益效果:发送端利用主UDP发送音频数据包期间,还可以利用主UDP通道传送RTCP包,将RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,且在发送端与接收端之间的网络状态不好的情况下,可以利用主UDP通道发送音频数据包,并且增加辅UDP通道和TCP通道发送音频数据包,这样可以减少音频数据包的丢包率,保证音频的流畅性。还有,本发明实施例中,发送端可以根据网络连接模式确定辅UDP通道和TCP通道具体的发送手段,提高本发明的实用性。此外,本发明实施例中,发送端利用TCP通道发送纠错补偿数据包可以尽可能保证每个FEC包都可以发送成功,从而可以利用纠错补偿数据包对音频数据包进行纠错补偿,降低音频数据包的丢包率,保证音频的流畅性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的应用于发送端的音频数据传输的方法的主要步骤的示意图;
图2是根据本发明实施例的应用于发送端的音频数据传输的方法的主要流程的示意图;
图3是根据本发明实施例的应用于接收端的音频数据传输的方法的主要步骤的示意图;
图4是根据本发明实施例的应用于接收端的音频数据传输的方法的主要流程的示意图;
图5是根据本发明实施例的音频数据传输的系统的结构示意图;
图6是根据本发明实施例的设置在发送端的音频数据传输的装置的主要模块的示意图;
图7是根据本发明实施例的设置在接收端的音频数据传输的装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
VoIP是将模拟信号数字化,以数据封包的形式在IP网络上做实时传递。VoIP可以在IP网络上便宜的传送语音、传真、视频、和数据等业务,如统一消息业务、虚拟电话、虚拟语音/传真邮箱、查号业务、Internet呼叫中心、Internet呼叫管理、电话视频会议、电子商务、传真存储转发和各种信息的存储转发等。现有技术中,VoIP技术采用单通道进行音频数据传输,存在抗丢包、延迟、抖动能力差等缺点,尤其在连续丢包和高抖动情况下,会对语音的流畅性造成影响。
为了解决上述问题,本发明实施例提供一套音频数据传输的技术方案。该方案包括应用于发送端的音频数据传输的方法和应用于接收端的音频数据传输的方法。其中,发送端用于向接收端发送音频数据包;接收端用于接收发送端发送的音频数据包,并对接收的音频数据包进行处理。以下是本发明实施例中涉及的技术术语的详细解释:
VoIP:全称为Voice over Internet Protocol,就是将模拟信号数字化,以数据封包的形式在IP网络上做实时传递,即将语音转化为IP数据包,部分或全部基于IP网络传输的技术;
UDP:全称为User Datagram Protocol,即用户数据报协议,是OSI(Open SystemInterconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务;
TCP:全称为Transmission Control Protocol,即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能;
RTP:全称为Real-time Transport Protocol,即实时传输协议,是一个网络传输协议,RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式;
RTCP:全称为RTP Control Protocol,即RTP控制协议,能够提供数据分发质量反馈信息,这是RTP作为传输协议的部分功能,并且它涉及到了其它传输协议的流控制和拥塞控制;
FEC:全称为Forward Error Correction,即前向纠错或者前向纠错码,是增加数据通讯可信度的方法,在单向通讯信道中,一旦错误被发现,其接收器将无权再请求传输,FEC是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许接收器再建数据。
图1是根据本发明实施例的应用于发送端的音频数据传输的方法的主要步骤的示意图。如图1所示,作为一个可参考实施例,应用于发送端的音频数据传输的方法的主要步骤可以包括:
步骤S101:根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用主UDP通道发送至少一个音频数据包;
步骤S102:利用主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;
步骤S103:在监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送至少一个音频数据包。
本发明实施例中传输的音频数据包属于多媒体数据流,RTP是用于Internet上针对多媒体数据流的一种传输协议,其被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步,因此本发明实施例中可以基于RTP协议发送音频数据包,也就是发送RTP包。RTP通常使用UDP协议来传送数据,但RTP也可以在TCP等其他协议之上工作,也就是说本发明实施例中的音频数据包可以通过UDP通道传输,也可以通过TCP通道传输。
在步骤S101中,利用主UDP通道发送音频数据包的过程中,需要首先确定主UDP通道的发送时间和音频数据包的发送时间间隔,也就是确定主UDP通道发送第一个音频数据包的时间以及发送每个音频数据包的时间间隔,举例来说,主UDP通道A发送1至10共10个音频数据包,在T时间发送第1个音频数据包,每个发包间隔为20ms,则主UDP通道在T+20ms发送第2个音频数据包。
值得注意的是,RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务,通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分,实时传输控制协议RTCP。所以,在上述步骤S102中,本发明实施例中利用主UDP通道的控制反馈包对发送端与接收端之间的网络状态进行实时监测,其中,主UDP通道是指基于UDP协议发送音频数据包的通道。在步骤S103中的辅UDP通道也是指基于UDP发送音频数据包的通道,但是,辅UDP通道是在网络状态不好的情况下,用于辅助主UDP通道的。此外,控制反馈包可以是基于RTCP协议的数据包,用于对网络连接状态进行实时监测。本发明实施例中,发送端利用主UDP发送音频数据包期间,还可以利用主UDP通道传送RTCP包,RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
本发明实施例中,预设条件是指主UDP通道发送音频数据包,没有发生丢包的情况。发送端与接收端之间的网络状态满足预设条件的情况,也就是发送端通过主UDP通道发送音频数据包,且不会发送丢包的情况,相应的,发送端与接收端之间的网络状态不满足预设条件的情况下,也就是发送端通过主UDP通道发送音频数据包,会发送丢包的情况。
本发明实施例中,在发送端与接收端之间的网络状态满足预设条件的情况时,即在发送端通过主UDP通道发送音频数据包,且不会发送丢包的情况时,本发明实施例中发送端可以仅利用主UDP通道发送音频数据包,需要注意的是,发送的音频数据包的个数为至少一个。
在步骤S103中,在发送端与接收端之间的网络状态不满足预设条件的情况时,即在发送端通过主UDP通道发送音频数据包,会发送丢包的情况时,本发明实施例中发送端需要利用主UDP通道、辅UDP通道和TCP通道发送音频数据包,这样可以解决现有技术中采用单通道发送音频数据包,造成抗丢包、延迟、抖动能力差的问题,保证语音的流畅性。
可以看出,在网络状态不好的情况下,发送音频数据包的方法是本发明实施例主要的创新点。因此,作为本发明实施例的又一个可参考实施例,上述步骤S103中按照预设规则,增加辅UDP通道和TCP通道发送至少一个音频数据包,可以包括:
步骤S1031:确定所述发送端的网络连接模式;
步骤S1032:在网络连接模式为无线网络的情况下,增加第一辅UDP通道集错位发送至少一个音频数据包,然后开启TCP通道发送至少一个音频数据包;
步骤S1033:在网络连接模式为移动网络的情况下,开启TCP通道发送至少一个音频数据包,然后增加第二辅UDP通道集错位发送至少一个音频数据包。
本发明实施例中,在发送端与接收端网络状态不好的情况下,可以利用主UDP通道发送音频数据包,并且增加辅UDP通道和TCP通道发送音频数据包,这样可以减少音频数据包的丢包率,保证音频的流畅性。利用主UDP通道发送音频数据包的过程中,需要首先确定主UDP通道的发送时间和音频数据包的发送时间间隔,也就是确定主UDP通道发送第一个音频数据包的时间以及发送每个音频数据包的时间间隔,举例来说,主UDP通道A发送1至10共10个音频数据包,在T时间发送第1个音频数据包,每个发包间隔为20ms,则主UDP通道在T+20ms发送第2个音频数据包。
在发送端与接收端之间的网络状态不好的情况下,需要根据发送端的网络连接模式,确定辅UDP通道和TCP通道具体的发送手段。其中,网络连接模式可以包括移动网络和无线网络;移动网络可以是4G网络,由于移动网络相对于无线网络,丢包比较频繁,因此需要优先增加传输可靠的TCP通道发送音频数据包,然后可以在增加一定数量的辅UDP通道发送音频数据包,此处的一定数量的辅UDP通道称为第二辅UDP通道集;无线网络可以是WIFI网络,由于采用TCP通道会比采用UDP通道,产生相对大的延迟,且考虑到成本和网络的不稳定性,增加较多的辅UDP通道意味着流量增加,如果是移动网络情况下,VOIP语音带宽的增大会增加通讯成本,但是在无线网络情况下,不用考虑流量增加,因此可以优先增加一定数量的辅UDP通道发送音频数据包,此处的一定数量的辅UDP通道称为第一辅UDP通道集,然后再增加TCP通道发送音频数据包。值得注意的是,第一辅UDP通道集和第二辅UDP通道集的区别是包含的辅UDP通道的个数不同。
本发明实施例中,发送端采用错位发送原则,利用辅UDP通道发送音频数据包。其中,作为本发明的再一个可参考实施例,增加第一辅UDP通道集错位发送至少一个音频数据包,可以包括:对第一辅UDP通道集的所有第一辅UDP通道进行排序,得到第一排序结果;针对第一辅UDP通道集中的第一辅UDP通道,按照如下方法,利用第一辅UDP通道发送至少一个音频数据包:根据第一辅UDP通道在第一排序结果中的顺序、主UDP通道的发送时间和音频数据包的发送时间间隔,确定第一辅UDP通道的第一发送时间,然后基于第一发送时间,按照音频数据包的发送时间间隔,发送至少一个音频数据包。
假设说,主UDP通道A发送1至10共10个音频数据包,在T时间发送第1个音频数据包,每个发包间隔为20ms,第一辅UDP通道集中辅UDP通道的个数为4,分别为辅UDP通道B、辅UDP通道C、辅UDP通道D、辅UDP通道E,对这4个辅UDP通道进行排队,得到排序结果为B、C、D、E,设置每个通道比上一个通道延迟发送一个音频数据包的时间,所以,主UDP通道A在T时间发送第1个音频数据包,辅UDP通道B比主UDP通道A晚发20ms,在T+20ms时间发送第1个音频数据包,辅UDP通道C比主UDP通道A晚发40ms,在在T+40ms时间发送第1个音频数据包通道。
由于第一辅UDP通道集和第二辅UDP通道集的区别是包含的辅UDP通道的个数不同,因此,作为又一个可参考实施例,增加第二辅UDP通道集错位发送至少一个音频数据包,可以包括:对第二辅UDP通道集的所有第二辅UDP通道进行排序,得到第二排序结果;针对第二辅UDP通道集中的第二辅UDP通道,按照如下方法,利用第二辅UDP通道发送至少一个音频数据包:根据第二辅UDP通道在第二排序结果中的顺序、主UDP通道的发送时间和音频数据包的发送时间间隔,确定第二辅UDP通道的第二发送时间,然后基于第二发送时间,按照音频数据包的发送时间间隔,发送至少一个音频数据包。
假设说,主UDP通道A发送1至8共8个音频数据包,在T时间发送第1个音频数据包,每个发包间隔为30ms,第二辅UDP通道集中辅UDP通道的个数为2,分别为辅UDP通道B和辅UDP通道C,对这2个辅UDP通道进行排队,得到排序结果为B、C,设置每个通道比上一个通道延迟发送一个音频数据包的时间,所以,主UDP通道A在T时间发送第1个音频数据包,辅UDP通道B比主UDP通道A晚发30ms,在T+30ms时间发送第1个音频数据包,辅UDP通道C比主UDP通道A晚发60ms,在在T+60ms时间发送第1个音频数据包通道。
综上所述,如果有3个辅UDP通道,在主UDP通道发开始发第4个音频数据包时,排序第1的辅UDP通道开始发第3个音频数据包,排序第2的辅UDP通道开始发第2个音频数据包,排序第3的辅UDP通道开始发第1个音频数据包,依次类推。
本发明实施例中,除了可以增加辅UDP通道发送音频数据包之外,还可以开启TCP通道发送音频数据包。所以,作为本发明实施例的还一个可参考实施例,开启TCP通道发送至少一个音频数据包,可以包括:对至少一个音频数据包中每相邻两个音频数据包进行异或处理,获得纠错补偿数据包;开启TCP通道,利用TCP通道发送纠错补偿数据包。
考虑到基于TCP协议发送音频数据包具有可靠性高的特点,但是具体延迟相对大的缺点,因此本发明实施例中,利用TCP通道发送纠错补偿数据包(也可以称为FEC包),可以尽可能保证每个FEC包都可以发送成功,从而可以利用纠错补偿数据包对音频数据包进行纠错补偿,降低音频数据包的丢包率,保证音频的流畅性。其中,FEC包是对至少一个音频数据包中每相邻两个音频数据包进行异或处理得到的,举例来说,有1至10共10个音频数据包,对这10个音频数据包中每相邻两个音频数据包进行异或处理,得到的FEC包为:1^2、2^3、3^4、4^5、5^6、6^7、7^8、8^9、9^10。
图2是根据本发明实施例的应用于发送端的音频数据传输的方法的主要流程的示意图。如图2所示,本发明实施例的应用于发送端的音频数据传输的方法的主要流程可以包括:
步骤S201:根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用主UDP通道发送至少一个音频数据包;
步骤S202:利用主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;
步骤S203:判断监测结果是否满足预设条件,若否,则执行步骤S204,预设条件是指主UDP通道发送音频数据包,没有发生丢包的情况;
步骤S204:确定发送端的网络连接模式;
步骤S205:在网络连接模式为无线网络的情况下,增加第一辅UDP通道集,对第一辅UDP通道集的所有第一辅UDP通道进行排序,得到第一排序结果;
步骤S206:针对第一辅UDP通道集中的每一个第一辅UDP通道,根据该第一辅UDP通道在第一排序结果中的顺序、主UDP通道的发送时间和音频数据包的发送时间间隔,利用该第一辅UDP通道发送至少一个音频数据包;
步骤S207:开启TCP通道,利用TCP通道发送纠错补偿数据包;
步骤S208:在网络连接模式为移动网络的情况下,优先开启TCP通道,利用TCP通道发送纠错补偿数据包;
步骤S209:增加第二辅UDP通道集,对第二辅UDP通道集的所有第二辅UDP通道进行排序,得到第二排序结果;
步骤S210:针对第二辅UDP通道集中的每一个第二辅UDP通道,根据该第二辅UDP通道在第二排序结果中的顺序、主UDP通道的发送时间和音频数据包的发送时间间隔,利用该第二辅UDP通道发送至少一个音频数据包。
值得注意的是,在上述步骤S207和S208中利用TCP通道发送纠错补偿数据包之前,需要对至少一个音频数据包中每相邻两个音频数据包进行异或处理,获得纠错补偿数据包。此外,在步骤S206中利用该第一辅UDP通道发送至少一个音频数据包和步骤S210中利用该第二辅UDP通道发送至少一个音频数据包,在上文步骤中已经详细介绍,此处不再累述。
根据本发明实施例的应用于发送端的音频数据传输的技术方案,发送端利用主UDP发送音频数据包期间,还可以利用主UDP通道传送RTCP包,将RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,且在发送端与接收端之间的网络状态不好的情况下,可以利用主UDP通道发送音频数据包,并且增加辅UDP通道和TCP通道发送音频数据包,这样可以减少音频数据包的丢包率,保证音频的流畅性。还有,本发明实施例中可以根据发送端的网络连接模式,确定辅UDP通道和TCP通道具体的发送手段,提高本发明的实用性。此外,本发明实施例中,利用TCP通道发送纠错补偿数据包可以尽可能保证每个FEC包都可以发送成功,从而可以利用纠错补偿数据包对音频数据包进行纠错补偿,降低音频数据包的丢包率,保证音频的流畅性。
图3是根据本发明实施例的应用于接收端的音频数据传输的方法的主要步骤的示意图。如图3所示,作为一个可参考实施例,应用于接收端的音频数据传输的方法的主要步骤可以包括:
步骤S301:接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;
步骤S302:根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包;
步骤S303:若是,则直接获取目标音频数据包,若否,则根据接收的音频数据包和接收的纠错补偿数据包,获取目标音频数据包。
本发明实施例的接收端用于接收音频数据包,以及对音频数据包进行校验。在上述步骤S301中,接收端接收UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包。其中,在发送端与接收端之间的网络状况好的情况下,发送端可以仅利用主UDP通道发送音频数据包,所以,接收端可以接收发送端发送的音频数据包,此种情况下,TCP通道不发送数据包,可以认为是空。在发送端与接收端之间的网络状况不好的情况下,发送端可以利用主UDP通道发送音频数据包,且增加辅UDP通道发送音频数据包,以及增加TCP通道发送纠错补偿数据包,所以,接收端可以接收发送端发送的音频数据包和纠错补偿数据包。
然后,接收端可以根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括该目标音频数据包。如果是网络状态好的情况,则说明发送端仅利用主UDP通道发送音频数据包,且不会出现丢包的情况,那么,接收端可以直接从主UDP通道发送的音频数据包中获取到目标音频数据包。
如果是网络状态不好的情况,则说明发送端除了利用主UDP通道发送音频数据包,还会增加辅UDP通道发送音频数据包,增加TCP通道发送纠错补偿数据包,此种情况下,判断接收端是否可以从主UDP通道和辅UDP通道发送的音频数据包中获取目标音频数据包。若获取成功,则直接从音频数据包中获取目标音频数据包,若获取失败,则结合接收的音频数据包和接收的纠错补偿数据包,获取目标音频数据包。
还需要注意的是,本发明实施例中,在直接获取目标音频数据包之后,应用于音频数据传输的方法还可以包括:从接收的音频数据包中删除与目标音频数据包相同的数据包。比如说,在多个UDP通道发送的音频数据包中查找目标音频数据包5,如果在其中A、B、C以及D任意一个UDP通道中都可以找到目标音频数据包5,那么获取一个目标音频数据包5,并且删除其他相同多余数据。
作为本发明的再一个可参考实施例,在从接收的音频数据包中获取不到目标音频数据包之后,接收端可以结合接收的音频数据包和接收的纠错补偿数据包,获取目标音频数据包,具体实现为:从接收的纠错补偿数据包中,获取与目标数据包相关的目标纠错补偿数据包;从接收的音频数据包之后,获取相邻音频数据包;根据目标纠错补偿数据包和相邻音频数据包,获取目标音频数据包。其中,目标纠错补偿数据包是对目标音频数据包和相邻音频数据包进行异或处理得到的,比如说,目标音频数据包为5,则对应的相邻音频数据包为4或6,进行异或处理,得到目标纠错补偿数据包为4^5和5^6。
如果所有UDP通道发送的音频数据包中都没有查询到目标音频数据包,则从TCP通道发送的纠错补偿数据包中查找相关的目标纠错补偿数据包。比如说,如果需要获取目标音频数据包5,则可以查找包5对应的目标纠错补偿数据包4^5或目标纠错补偿数据包5^6,如果找到包4^5,则从接收的音频数据包中查找包4,如果找到包4,可以通过包4^5和包4还原出包5。如果没有找到包4^5或包4,则可以找到包5^6,然后从接收的音频数据包中查找包6,如果找到包6,通过包5^6和包6还原出包5。
此外,本发明实施例的应用于接收端的音频数据传输的方法中,在获取与目标数据包相关的目标纠错补偿数据包之前,需要从接收的纠错补偿数据包中,查询是否包括目标纠错补偿数据包,若否,则记录丢失目标音频数据包;以及在获取相邻音频数据包之前,从接收的音频数据包中,查询是否包括相邻音频数据包,若否,则记录丢失目标音频数据包。
图4是根据本发明实施例的应用于接收端的音频数据传输的方法的主要流程的示意图。如图4所示,本发明实施例的应用于接收端的音频数据传输的方法的主要流程可以包括:
步骤S401:接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;
步骤S402:根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包,若是,则执行步骤S403,若否,则执行步骤S404;
步骤S403:直接获取目标音频数据包,并从接收的音频数据包中删除与目标音频数据包相同的数据包;
步骤S404:从接收的纠错补偿数据包中,查询是否包括目标纠错补偿数据包,若是,则执行步骤S405,若否,则执行步骤S409;
步骤S405:从接收的纠错补偿数据包中,获取与目标数据包相关的目标纠错补偿数据包,其中,目标纠错补偿数据包是对目标音频数据包和相邻音频数据包进行异或处理得到的;
步骤S406:从接收的音频数据包中,查询是否包括相邻音频数据包,若是,则执行步骤S407,若否,则执行步骤S409;
步骤S407:从接收的音频数据包之后,获取相邻音频数据包;
步骤S408:根据目标纠错补偿数据包和相邻音频数据包,获取目标音频数据包;
步骤S409:记录丢失目标音频数据包。
根据本发明实施例的应用于接收端的音频数据传输的技术方案,接收端接收音频数据包和纠错补偿数据包,可以先从音频数据包中查找目标音频数据包,如果查找失败,则可以利用音频数据包和纠错补偿数据包,还原出目标音频数据包,降低了数据包的丢失率,保证音频的流畅性。
图5是根据本发明实施例的音频数据传输的系统的结构示意图。如图5所示,本发明实施例的音频数据传输的系统可以包括发送端和接收端。还可以看出,发送端与接收端之间可以利用主UDP通道、辅UDP通道、TCP通道传输数据。
如图5所示,UDP通道可以包括一个主UDP通道A和多个辅UDP通道B、C、D。这四个UDP通道错位发送音频数据包,每个通道比上一个通道延迟发送一个包的时间,如每个发包间隔为20ms,对于同一个包如包5,辅UDP通道B比主UDP通道A晚发20ms,辅UDP通道C比主UDP通道A晚40ms,辅UDP通道D比主UDP通道A晚80ms,因此得到主UDP通道A发送(…7,8,9,10,11,12…)时,辅UDP通道B发送(…6,7,8,9,10,11…),辅UDP通道C发送(…5,6,7,8,9,10…),辅UDP通道D发送(…4,5,6,7,8,9…)。
图5中,还可以利用可靠的TCP通道发送FEC包(即,根据音频数据包得到的纠错补偿数据包),因此TCP通道传输可以,因此能够尽可能确保每个FEC包能收到,如包(…4^5,5^6,6^7,7^8,8^9…)。
本发明实施例的音频传输数据的系统中的接收端可以通过做冗余包删除和音频数据包还原,具体如下:
1)接收端先根据UDP通道发送的音频数据包,查找目标音频数据包,例如在多个UDP通道的接收的音频数据包中查找目标音频数据包5,如果在通道A、B、C或者D任意一个通道中找到包5,则删除其他相同多余数据包;
2)如果所有UDP通道都没有找到包5,则在TCP通道接收的FEC包查找相关的FEC包4^5或包5^6,如果找到包4^5时,在按照1)的方法找包4,如果找到包4,通过FEC包4^5和包4还原出包5;
3)如果没有找到FEC包4^5或包4,在TCP通道接收的FEC包查找相关的FEC包5^6,如果找到包5^6,按照1)的方法包6,如果找到包6,通过FEC包5^6和包6还原出包5。
需要注意的是,如果在所有UDP通道都没有找到包5,并且在TCP通道也查找不到包4^5或包5^6,那么确认并记录包5丢失。
此外,本发明实施例的音频数据传输的系统可以动态调整UDP通道数量和每个通道发包时间,具体如下:
1)通过主UDP通道的RTCP来实时监测网络状况,如果网络状况良好,可以暂停辅UDP通道和TCP通道发送数据;
2)如果网络条件差且移动网络下,优先开启TCP通道,通过FEC通道还原丢包,然后可以适当增加辅UPD通道来发送数据;
3)如果是网络条件差且无线网络下,优先通过增加辅UDP通道来改善音频质量。
图6是根据本发明实施例的设置在发送端的音频数据传输的装置的主要模块的示意图。如图6所示,本发明实施例的设置在发送端的音频数据传输的装置600的主要模块可以包括:第一发送模块601、监测模块602和第二发送模块603。
其中,第一发送模块601可用于根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用主UDP通道发送至少一个音频数据包;监测模块602可用于利用主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;第二发送模块603可用于在监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送至少一个音频数据包。
本发明实施例中,第二发送模块603还可用于:确定发送端的网络连接模式;在网络连接模式为无线网络的情况下,增加第一辅UDP通道集错位发送至少一个音频数据包,然后开启TCP通道发送至少一个音频数据包;在网络连接模式为移动网络的情况下,开启TCP通道发送至少一个音频数据包,然后增加第二辅UDP通道集错位发送至少一个音频数据包。
本发明实施例中,第二发送模块603还可用于:对第一辅UDP通道集的所有第一辅UDP通道进行排序,得到第一排序结果;针对第一辅UDP通道集中的第一辅UDP通道,按照如下方法,利用第一辅UDP通道发送至少一个音频数据包:根据第一辅UDP通道在第一排序结果中的顺序、主UDP通道的发送时间和音频数据包的发送时间间隔,确定第一辅UDP通道的第一发送时间,然后基于第一发送时间,按照音频数据包的发送时间间隔,发送至少一个音频数据包。
本发明实施例中,第二发送模块603还可用于:对第二辅UDP通道集的所有第二辅UDP通道进行排序,得到第二排序结果;针对第二辅UDP通道集中的第二辅UDP通道,按照如下方法,利用第二辅UDP通道发送至少一个音频数据包:根据第二辅UDP通道在第二排序结果中的顺序、主UDP通道的发送时间和音频数据包的发送时间间隔,确定第二辅UDP通道的第二发送时间,然后基于第二发送时间,按照音频数据包的发送时间间隔,发送至少一个音频数据包。
本发明实施例中,第二发送模块603还可用于:对至少一个音频数据包中每相邻两个音频数据包进行异或处理,获得纠错补偿数据包;开启TCP通道,利用TCP通道发送纠错补偿数据包。
本发明实施例中,预设条件是指主UDP通道发送音频数据包,没有发生丢包的情况。
从以上描述可以看出,设置在发送端的音频数据传输的装置可以利用主UDP发送音频数据包期间,还可以利用主UDP通道传送RTCP包,将RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,且在发送端与接收端之间的网络状态不好的情况下,可以利用主UDP通道发送音频数据包,并且增加辅UDP通道和TCP通道发送音频数据包,这样可以减少音频数据包的丢包率,保证音频的流畅性。还有,本发明实施例设置在发送端的音频数据传输的装置,可以根据发送端的网络连接模式,确定辅UDP通道和TCP通道具体的发送手段,提高本发明的实用性。此外,本发明实施例设置在发送端的音频数据传输的装置,能够利用TCP通道发送纠错补偿数据包可以尽可能保证每个FEC包都可以发送成功,从而可以利用纠错补偿数据包对音频数据包进行纠错补偿,降低音频数据包的丢包率,保证音频的流畅性。
图7是根据本发明实施例的设置在接收端的音频数据传输的装置的主要模块的示意图。如图7所示,本发明实施例的设置在接收端的音频数据传输的装置700的主要模块可以包括:接收模块701、判断模块702和获取模块703。
其中,接收模块701可用于接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;判断模块702可用于根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包;获取模块703可用于若是,则直接获取目标音频数据包,若否,则根据接收的音频数据包和接收的纠错补偿数据包,获取目标音频数据包。
本发明实施例中,获取模块703还可用于:从接收的音频数据包中删除与目标音频数据包相同的数据包。
本发明实施例中,获取模块703还可用于:从接收的纠错补偿数据包中,获取与目标数据包相关的目标纠错补偿数据包,目标纠错补偿数据包是对目标音频数据包和相邻音频数据包进行异或处理得到的;从接收的音频数据包之后,获取相邻音频数据包;根据目标纠错补偿数据包和相邻音频数据包,获取目标音频数据包。
本发明实施例中,判断模块702还可用于:从接收的纠错补偿数据包中,查询是否包括目标纠错补偿数据包,若否,则记录丢失目标音频数据包;以及从接收的音频数据包中,查询是否包括相邻音频数据包,若否,则记录丢失目标音频数据包。
从以上描述可以看出,设置在接收端的音频数据传输的装置接收音频数据包和纠错补偿数据包,可以先从音频数据包中查找目标音频数据包,如果查找失败,则可以利用音频数据包和纠错补偿数据包,还原出目标音频数据包,降低了数据包的丢失率,保证音频的流畅性。
图8示出了可以应用本发明实施例的音频数据传输的方法或音频数据传输的装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的音频数据传输的方法一般由服务器805执行,相应地,音频数据传输的装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一发送模块、监测模块和第二发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一发送模块还可以被描述为“根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用主UDP通道发送至少一个音频数据包的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用主UDP通道发送至少一个音频数据包;利用主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;在监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送至少一个音频数据包。
根据本发明实施例的应用于发送端的音频数据传输的技术方案,发送端利用主UDP发送音频数据包期间,还可以利用主UDP通道传送RTCP包,将RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,且在发送端与接收端之间的网络状态不好的情况下,可以利用主UDP通道发送音频数据包,并且增加辅UDP通道和TCP通道发送音频数据包,这样可以减少音频数据包的丢包率,保证音频的流畅性。还有,本发明实施例中可以根据发送端的网络连接模式,确定辅UDP通道和TCP通道具体的发送手段,提高本发明的实用性。此外,本发明实施例中,利用TCP通道发送纠错补偿数据包可以尽可能保证每个FEC包都可以发送成功,从而可以利用纠错补偿数据包对音频数据包进行纠错补偿,降低音频数据包的丢包率,保证音频的流畅性。
根据本发明实施例的应用于接收端的音频数据传输的技术方案,接收端接收音频数据包和纠错补偿数据包,可以先从音频数据包中查找目标音频数据包,如果查找失败,则可以利用音频数据包和纠错补偿数据包,还原出目标音频数据包,降低了数据包的丢失率,保证音频的流畅性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种音频数据传输的方法,应用于发送端,其特征在于,包括:
根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用所述主UDP通道发送至少一个音频数据包;
利用所述主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;
在所述监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送所述至少一个音频数据包。
2.根据权利要求1所述的方法,其特征在于,所述按照预设规则,增加辅UDP通道和TCP通道发送所述至少一个音频数据包,包括:
确定所述发送端的网络连接模式;
在所述网络连接模式为无线网络的情况下,增加第一辅UDP通道集错位发送所述至少一个音频数据包,然后开启所述TCP通道发送所述至少一个音频数据包;
在所述网络连接模式为移动网络的情况下,开启所述TCP通道发送所述至少一个音频数据包,然后增加第二辅UDP通道集错位发送所述至少一个音频数据包。
3.根据权利要求2所述的方法,其特征在于,所述增加第一辅UDP通道集错位发送所述至少一个音频数据包,包括:
对所述第一辅UDP通道集的所有第一辅UDP通道进行排序,得到第一排序结果;
针对所述第一辅UDP通道集中的第一辅UDP通道,按照如下方法,利用所述第一辅UDP通道发送所述至少一个音频数据包:根据所述第一辅UDP通道在所述第一排序结果中的顺序、所述主UDP通道的发送时间和所述音频数据包的发送时间间隔,确定所述第一辅UDP通道的第一发送时间,然后基于所述第一发送时间,按照所述音频数据包的发送时间间隔,发送所述至少一个音频数据包。
4.根据权利要求2所述的方法,其特征在于,所述增加第二辅UDP通道集错位发送所述至少一个音频数据包,包括:
对所述第二辅UDP通道集的所有第二辅UDP通道进行排序,得到第二排序结果;
针对所述第二辅UDP通道集中的第二辅UDP通道,按照如下方法,利用所述第二辅UDP通道发送所述至少一个音频数据包:根据所述第二辅UDP通道在所述第二排序结果中的顺序、所述主UDP通道的发送时间和所述音频数据包的发送时间间隔,确定所述第二辅UDP通道的第二发送时间,然后基于所述第二发送时间,按照所述音频数据包的发送时间间隔,发送所述至少一个音频数据包。
5.根据权利要求2所述的方法,其特征在于,所述开启所述TCP通道发送所述至少一个音频数据包,包括:
对所述至少一个音频数据包中每相邻两个音频数据包进行异或处理,获得纠错补偿数据包;
开启所述TCP通道,利用所述TCP通道发送所述纠错补偿数据包。
6.根据权利要求1所述的方法,其特征在于,预设条件是指主UDP通道发送音频数据包,没有发生丢包的情况。
7.一种音频数据传输的方法,应用于接收端,其特征在于,包括:
接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;
根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包;
若是,则直接获取所述目标音频数据包,若否,则根据所述接收的音频数据包和接收的纠错补偿数据包,获取所述目标音频数据包。
8.根据权利要求7所述的方法,其特征在于,在直接获取所述目标音频数据包之后,所述方法还包括:从所述接收的音频数据包中删除与所述目标音频数据包相同的数据包。
9.根据权利要求7所述的方法,其特征在于,所述根据所述接收的音频数据包和接收的纠错补偿数据包,获取所述目标音频数据包,包括:
从所述接收的纠错补偿数据包中,获取与所述目标数据包相关的目标纠错补偿数据包,所述目标纠错补偿数据包是对所述目标音频数据包和相邻音频数据包进行异或处理得到的;
从所述接收的音频数据包之后,获取所述相邻音频数据包;
根据所述目标纠错补偿数据包和所述相邻音频数据包,获取所述目标音频数据包。
10.根据权利要求9所述的方法,其特征在于,
在获取与所述目标数据包相关的目标纠错补偿数据包之前,所述方法还包括:
从所述接收的纠错补偿数据包中,查询是否包括所述目标纠错补偿数据包,若否,则记录丢失所述目标音频数据包;以及
在获取所述相邻音频数据包之前,所述方法还包括:
从所述接收的音频数据包中,查询是否包括所述相邻音频数据包,若否,则记录丢失所述目标音频数据包。
11.一种音频数据传输的装置,设置在发送端,其特征在于,包括:
第一发送模块,用于根据主UDP通道的发送时间和音频数据包的发送时间间隔,利用所述主UDP通道发送至少一个音频数据包;
监测模块,用于利用所述主UDP通道的控制反馈包,对发送端与接收端之间的网络状况进行实时监测,获取监测结果;
第二发送模块,用于在所述监测结果不满足预设条件的情况下,按照预设规则,增加辅UDP通道和TCP通道发送所述至少一个音频数据包。
12.一种音频数据传输的装置,设置在接收端,其特征在于,包括:
接收模块,用于接收至少一个UDP通道发送的音频数据包和TCP通道发送的纠错补偿数据包;
判断模块,用于根据获取目标音频数据包的请求,判断接收的音频数据包中是否包括目标音频数据包;
获取模块,用于若是,则直接获取所述目标音频数据包,若否,则根据所述接收的音频数据包和接收的纠错补偿数据包,获取所述目标音频数据包。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911182837.1A CN112866178B (zh) | 2019-11-27 | 2019-11-27 | 音频数据传输的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911182837.1A CN112866178B (zh) | 2019-11-27 | 2019-11-27 | 音频数据传输的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866178A true CN112866178A (zh) | 2021-05-28 |
CN112866178B CN112866178B (zh) | 2023-09-05 |
Family
ID=75984738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911182837.1A Active CN112866178B (zh) | 2019-11-27 | 2019-11-27 | 音频数据传输的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112866178B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338477A (zh) * | 2021-12-17 | 2022-04-12 | 中汽创智科技有限公司 | 一种通信链路监控方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1123594A (zh) * | 1994-02-22 | 1996-05-29 | 夸尔柯姆股份有限公司 | 在数字通道上提供音频反馈的方法及其装置 |
CN1863302A (zh) * | 2005-11-03 | 2006-11-15 | 华为技术有限公司 | 多媒体通信方法及其终端 |
CN101360054A (zh) * | 2008-09-26 | 2009-02-04 | 腾讯科技(深圳)有限公司 | 数据传输系统及数据传输方法 |
CN103327070A (zh) * | 2013-05-16 | 2013-09-25 | 国家电网公司 | 一种基于3g物联网技术的输电线路多状态信息监测系统 |
CN104639866A (zh) * | 2013-11-14 | 2015-05-20 | 中兴通讯股份有限公司 | 一种调节会议终端通话质量的方法及装置 |
CN105407058A (zh) * | 2014-09-12 | 2016-03-16 | 江苏国贸酝领智能科技股份有限公司 | 带拥塞控制的可靠组播传输方法 |
CN105430320A (zh) * | 2015-11-23 | 2016-03-23 | 兰玉杰 | 基于udp和tcp的音视频媒体数据传输方法 |
CN108174234A (zh) * | 2018-01-12 | 2018-06-15 | 珠海全志科技股份有限公司 | 一种流媒体传输方法及系统 |
-
2019
- 2019-11-27 CN CN201911182837.1A patent/CN112866178B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1123594A (zh) * | 1994-02-22 | 1996-05-29 | 夸尔柯姆股份有限公司 | 在数字通道上提供音频反馈的方法及其装置 |
CN1863302A (zh) * | 2005-11-03 | 2006-11-15 | 华为技术有限公司 | 多媒体通信方法及其终端 |
CN101360054A (zh) * | 2008-09-26 | 2009-02-04 | 腾讯科技(深圳)有限公司 | 数据传输系统及数据传输方法 |
CN103327070A (zh) * | 2013-05-16 | 2013-09-25 | 国家电网公司 | 一种基于3g物联网技术的输电线路多状态信息监测系统 |
CN104639866A (zh) * | 2013-11-14 | 2015-05-20 | 中兴通讯股份有限公司 | 一种调节会议终端通话质量的方法及装置 |
CN105407058A (zh) * | 2014-09-12 | 2016-03-16 | 江苏国贸酝领智能科技股份有限公司 | 带拥塞控制的可靠组播传输方法 |
CN105430320A (zh) * | 2015-11-23 | 2016-03-23 | 兰玉杰 | 基于udp和tcp的音视频媒体数据传输方法 |
CN108174234A (zh) * | 2018-01-12 | 2018-06-15 | 珠海全志科技股份有限公司 | 一种流媒体传输方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338477A (zh) * | 2021-12-17 | 2022-04-12 | 中汽创智科技有限公司 | 一种通信链路监控方法、装置、设备及存储介质 |
CN114338477B (zh) * | 2021-12-17 | 2024-04-19 | 中汽创智科技有限公司 | 一种通信链路监控方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112866178B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022552986A (ja) | 情報送信方法、装置、読み取り可能な記憶媒体及び電子装置 | |
US7751316B2 (en) | Relay Server for SIP/RTP messages with buffer management | |
US7821953B2 (en) | Dynamically selecting CODECS for managing an audio message | |
US10291547B2 (en) | Systems and methods for determining routing information for a network request | |
US7822018B2 (en) | Duplicate media stream | |
RU2608469C2 (ru) | Способ и устройство высокоэффективной доставки уведомлений в реальном времени с малым временем задержки | |
US10044831B2 (en) | Method and apparatus for transmitting messages to a dash client | |
WO2018121742A1 (zh) | 一种流数据的传输方法和装置 | |
US11005975B2 (en) | Rapid optimization of media stream bitrate | |
CN113517985B (zh) | 文件数据处理方法、装置、电子设备及计算机可读介质 | |
WO2018119677A1 (zh) | 传输链路的续传方法、装置和系统 | |
US20160021171A1 (en) | Datacenter event stream processing in a network-based communication system | |
US9191359B2 (en) | Techniques for VoIP provider interconnection over the internet using a shared subscriber contact identifier translation service | |
CN113630464B (zh) | 分布式语音处理方法、系统、设备及存储介质 | |
CN112866178B (zh) | 音频数据传输的方法和装置 | |
CN110798495B (zh) | 用于在集群架构模式下端到端的消息推送的方法和服务器 | |
US8238335B2 (en) | Multi-route transmission of packets within a network | |
CN112713969B (zh) | 数据传输方法和使用该方法的装置、系统 | |
CN110247847B (zh) | 节点之间回源选路的方法和装置 | |
CN111800223A (zh) | 生成发送报文、处理接收报文的方法、装置和系统 | |
CN115277649A (zh) | 多媒体会议场景下的文档协同编辑的方法及装置 | |
CN111866100A (zh) | 一种控制数据传输速率的方法、装置和系统 | |
CN113542324A (zh) | 一种消息推送方法和装置 | |
US20180324231A1 (en) | Multicast adaptive bitrate channel selection in access networks | |
CN113364672B (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 |