CN111245851B - 多终端音频传输方法、装置、终端设备和存储介质 - Google Patents
多终端音频传输方法、装置、终端设备和存储介质 Download PDFInfo
- Publication number
- CN111245851B CN111245851B CN202010045272.9A CN202010045272A CN111245851B CN 111245851 B CN111245851 B CN 111245851B CN 202010045272 A CN202010045272 A CN 202010045272A CN 111245851 B CN111245851 B CN 111245851B
- Authority
- CN
- China
- Prior art keywords
- audio data
- identifier
- forwarding
- client
- data stream
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1822—Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
-
- 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/1066—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种多终端音频传输方法、装置、终端设备和存储介质。该方法包括:接收多个客户端发送的音频数据流,每个客户端对应不同的客户端标识符;从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;向所述客户端发送所述转发音频数据流。本方案在多端远程会议过程中,减少了服务器和客户端的无效数据的管理,提高计算能力的使用效率。
Description
技术领域
本发明实施例涉及网络数据传输技术领域,尤其涉及多终端音频传输方法、装置、终端设备和存储介质。
背景技术
在多方(超过三方)远程语音交互的场景下,每方对应一个客户端,如果同时存在多个客户端说话,由于人的注意力有限,不能注意到所有客户端说话的内容,因此服务器不会将该交互场景中的每个客户端的声音都转发给其他客户端,而是选择其中的一个或多个客户端的声音进行转发。
服务器在处理多方语音交互场景下的音频转发时通常用ssrc来区分每个客户端发出来的音频流。具体来说,每个客户端给服务器端发送音频流时,都会有一个唯一的ssrc与之对应,用来区分不同的音频流。此外,由于音频包都是以udp包格式发送,为了使接收端能够得知是否出现丢包,每个音频流都会携带一个连续且不断增加的序列号,接收端根据收到的音频包是否连续,即可以判断是否出现了丢包,如果出现了丢包,就会进行相应的抗丢包处理。
发明人在实现本发明的过程中发现,由于在同一个会议的每一个成员发送的音频包的ssrc都不相同,随着客户端的数量增加,服务器的数据处理量会快速上升。例如在客户端数量比较多的会议中,服务器可能会为会议中的每个客户端发送100个(不用向音频数据流的发送端发送)不同ssrc的音频流,需要创建的RtpRtcp发送模块大概为100*100=10000个。而对于客户端而言,一个客户端可能会收到100个不同ssrc(对应于另外100个客户端)对应的音频流,从而创建100个音频包接收模块。但是由于服务器端的active audio策略(服务器在同一时刻最多给客户端转发三路音频流),整个会议过程中每个客户端可能会与其他几十个客户端(最多100个客户端)之间存在音频数据流的收发业务,但是其中可能只有较少的一部分客户端存在频率较高的收发业务,因此会出现大量没有起作用的RtpRtcp发送模块和音频包接收模块,造成计算资源浪费。
发明内容
本发明提供了一种多终端音频传输方法、装置、终端设备和存储介质,以解决现有技术多方远程语音交互进行音频传输时,服务器和客户端进行大量无效数据管理造成资源浪费的技术问题。
第一方面,本发明实施例提供了一种多终端音频传输方法,包括:
接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;
从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;
根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;
将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;
向所述客户端发送所述转发音频数据流。
其中,所述根据标识符映射关系确认所述目标音频数据流关联的转发标识符,包括:
判断所述标识符映射关系中是否存在与所述目标音频数据流对应的客户端标识符关联的转发标识符;
若存在,则确认为所述目标音频数据流关联的转发标识符;
否则,确认一个未关联客户端标识符的转发标识符,或与其他客户端标识符的关联时间最早的转发标识符为所述目标音频数据流关联的转发标识符。
其中,所述根据标识符映射关系确认所述目标音频数据流关联的转发标识符之后,还包括:
将所述标识符映射关系中的时间戳更新为接收到对应的目标音频数据流的时间戳。
其中,所述方法,还包括:
当所述标识符映射关系中的时间戳与当前时间达到预设时长时,删除该时间戳对应的关联关系。
其中,所述方法,还包括:
检测到有客户端接入时,为所述客户端分配客户端标识符。
其中,所述转发音频数据流的起始序列号不同。
其中,所述方法,还包括:
通过预设的设备信息信道接收和发送所述音频数据流的客户端信息。
第二方面,本发明实施例还提供了一种多终端音频传输装置,包括:
数据接收单元,用于接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;
数据筛选单元,用于从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;
标识符关联单元,用于根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;
数据包添加单元,用于将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;
数据转发单元,用于向所述客户端发送所述转发音频数据流。
其中,所述标识符关联单元,包括:
关联判断单元,用于判断所述标识符映射关系中是否存在与所述目标音频数据流对应的客户端标识符关联的转发标识符;
第一确认单元,用于若存在与所述目标音频数据流对应的客户端标识符关联的转发标识符,则将该转发标识符确认为所述目标音频数据流关联的转发标识符;
第二确认单元,用于若不存在与所述目标音频数据流对应的客户端标识符关联的转发标识符,则确认一个未关联客户端标识符的转发标识符,或与其他客户端标识符的关联时间最早的转发标识符为所述目标音频数据流关联的转发标识符。
其中,所述装置,还包括:
时序更新单元,用于将所述标识符映射关系中的时间戳更新为接收到对应的目标音频数据流的时间戳。
其中,所述装置,还包括:
关联删除单元,用于当所述标识符映射关系中的时间戳与当前时间达到预设时长时,删除该时间戳对应的关联关系。
其中,所述装置,还包括:
客户端接入单元,用于检测到有客户端接入时,为所述客户端分配客户端标识符。
其中,所述转发音频数据流的起始序列号不同。
其中,所述装置,还包括:
信息收发单元,用于通过预设的设备信息信道接收和发送所述音频数据流的客户端信息。
第三方面,本发明实施例还提供一种终端设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面任一所述的多终端音频传输方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面任一所述的多终端音频传输方法。
上述多终端音频传输方法、装置、终端设备和存储介质,通过接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;向所述客户端发送所述转发音频数据流。在多端远程会议过程中,服务器预设若干转发标识符,将待转发的音频数据流添加到转发标识符对应的转发音频数据流以向其他客户端进行音频发送,在服务器实现相对简单的客户端转发维护即可实现所有音频数据流的高效转发,减少了服务器和客户端的无效数据的管理,提高计算能力的使用效率。
附图说明
图1为本发明实施例一提供的一种多终端音频传输方法的流程图;
图2为现有技术多终端会议中服务器发送音频数据的示意图;
图3为本发明实施例二提供的一种多终端音频传输方法的流程图;
图4-图9为本发明实施例二提供的标识符映射关系的变化示意图;
图10为本发明实施例三提供的一种多终端音频传输装置的结构示意图;
图11为本发明实施例四提供的一种终端设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
需要注意的是,由于篇幅所限,本申请说明书没有穷举所有可选的实施方式,本领域技术人员在阅读本申请说明书后,应该能够想到,只要技术特征不互相矛盾,那么技术特征的任意组合均可以构成可选的实施方式。
例如,在实施例一的一个实施方式中,记载了一个技术特征:通过声音能量强度和客户端权限进行音频数据流的筛选,在实施例一的另一个实施方式中,记载了另一个技术特征:目标音频数据流筛选出3路。由于以上两个技术特征不互相矛盾,本领域技术人员在阅读本申请说明书后,应该能够想到,同时具有这两个特征的实施方式也是一种可选的实施方式,即根据声音能量强度和客户端权限筛选出3路目标音频数据流。
记载在不同实施例中的不互相矛盾的技术特征也可以任意组合,构成可选的实施方式。
例如,实施例二中记载了:转发音频数据流的起始序列号不同。为了控制本申请说明书的篇幅,在实施例一中,并没有记载这个特征。但是本领域技术人员在阅读本申请说明书后,应该能够想到,实施例一所提供的多终端音频传输方法也可以包括该特征。
下面对各实施例进行详细说明。
实施例一
图1为本发明实施例一提供的一种多终端音频传输方法的流程图。实施例中提供的多终端音频传输方法可以由音频传输设备执行,该音频传输设备可以通过软件和/或硬件的方式实现,该音频传输设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。例如,音频传输设备可以是手机、工业控制计算机等。
在多客户端的远程会议过程中,所有与会的客户端接入到服务器,在会议过程中,客户端的麦克风进行现场语音数据的采集并发送到服务器,服务器从接收到的多个现场语音数据中选择一路或多路语音数据发送到所有客户端,并在所有的客户端进行播放,也就是说,对于不需要在其它客户端进行播放的语音数据,直接不予发送,从而实现多客户端的远程会议过程中,尽可能全面和有效的语音数据转发,本方案提供的是语音数据转发过程中的详细数据处理机制,以提高服务器在进行语音数据转发时的处理效率,简化不必要的数据处理过程。
在多客户端的远程会议过程中,对于某个客户端与服务器之间的音频传输,一般通过RTP(Real-time Transport Protocol,实时传输协议)实现。在多客户端的应用场景下,每个客户端通过同步信源(Synchronization source,ssrc)标识符进行区分标识;对于某个具体的客户端,RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置。
但是对于多个客户端之间的音频的有效传输,服务器有全面的调度策略。如图2所示,在一场有101个客户端参与的多方语音交互活动的实施过程中,服务器每收到一个需要进行转发的音频数据时,创建RtpRtcp发送模块都会对应于该音频数据的ssrc创建100个RtpRtcp发送模块,音频发送模块在具体进行数据发送时,通过100个RtpRtcp发送模块将该音频数据独立地网络传输到另外100个客户端。同样的,客户端的媒体包接收模块每发现一个新的ssrc,创建音频接收模块都会为其创建一个音频包接收模块,Rtp包接收模块在具体进行数据接收时,通过100个音频包接收模块独立地进行前向纠错编码、丢包请求重传和音频解码等,等这些结束之后,再由混音器进行混音,经扬声器播放出来。
具体的,参考图1,该多终端音频传输方法具体包括:
步骤S101:接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符。
在远程会议过程中,每个客户端只要麦克风正常工作,就会不断生成音频数据流,并把音频数据流发送到服务器,对应的,服务器在远程会议过程中持续接收当前连接的所有客户端发送的音频数据流,服务器对于接收到的每一路音频数据流,能获得其基本信息,例如音频数据流的来源,各个数据包的序列号等,服务器基于接收到的音频数据流的各种基本信息,实现远程会议过程中音频数据流的转发调度。
步骤S102:从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流。
从所有音频数据流中筛选出需要向所有客户端传输的音频数据流,具体的筛选过程可以有多个指标作为筛选参考。例如以声音的能量强度作为参考,筛选能量强度最大的三路音频数据流作为目标音频数据流;也可以进一步结合各个客户端的权限,例如某个客户端作为会议的发起终端,具有会议的主持角色,该客户端生成的音频数据流中携带的语音很可能用于会议过程控制,因此该客户端具备最高权限,只要声音的能量强度达到语音存在的最低门限值,该路音频数据流即确认为目标音频数据流;此外,还可以进一步统计每路音频数据流中声音能量强度达到语音存在的最低门限值的时长状态,如果只是在较短时长内(例如1秒、2秒)达到语音存在的最低门限值,则该路音频数据流则暂不筛选为目标音频数据流。
通常来说,目标音频数据流不会筛选出太多路,一般在5路以内,例如3路。如果筛选出太多,同时发声的客户端太多太杂,对会议过程中有效信息的传递干扰很大,如果筛选出太少,可能会漏掉重要的有效信息。当然,细节的筛选策略可以根据具体参与会议的客户端规模进行常规性的调整,例如总共有4个客户端接入一场会议,那么肯定不能筛选出5路备用音频数据流,可以考虑筛选出3路备用音频数据流,或者将所有客户端发送的音频数据流都固定为备用音频数据流。本方案中,参与会议的客户端规模越大,数据传输的效果越明显。此外,应当理解目标音频数据流是一个持续筛选不断更新的过程,即每次生成的目标音频数据流可能来自不同的客户端,并且每段目标音频数据流的持续时长也可能不固定,具体的筛选过程通过周期判断实现,或者对各种指标状态进行累计等,与现有的筛选过程控制相同,在此不做过多阐述。
步骤S103:根据标识符映射关系确认所述目标音频数据流关联的转发标识符。
服务器在将目标音频数据流发送到客户端的过程中,会将目标音频数据流中的数据包添加到某个转发标识符对应的转发数据流,为尽可能避免转发过程中数据包在不同转发标识符之间的切换,来自同一客户端的数据包最好通过同一个转发数据流进行转发,这种相对静态的转发关系通过标识符映射关系进行维护。具体来说,标识符映射关系记录最近一段时间内进行转发时,客户端标识符和转发标识符之间的关联关系,整体上,如果当前待转发的目标音频数据流对应的客户端标识符在标识符映射关系中已经存在有关联的转发标识符,则将该路目标音频数据流通过该转发标识符对应的转发数据流进行转发;否则从所有可选的转发标识符中选择一个转发标识符进行数据包的转发。标识符映射关系可以通过预设的空白文件进行记录,每次结束会议之后清除该空白文件中的内容;也可以开辟一块缓存空间,在缓存空间中记录并不断更新标识符映射关系。
步骤S104:将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流。
在本方案中,将服务器向客户端转发音频数据流的过程拆分为两个独立的音频传输过程,即服务器从客户端接收音频数据流的过程和服务器向客户端发送音频数据流(为区别于服务器从客户端接收的音频数据流,服务器向客户端发送的音频数据流定义为转发音频数据流,对应的信源标识符分别定义为客户端标识符和转发标识符)的过程,服务器从客户端接收的音频数据流具有标识固定和序列号连续的特征,服务器向客户端发送转发音频数据流具有标识相对固定和序列号相对连续的特征。当然,每路转发音频数据流的转发标识符互不相同。每次筛选出的目标音频数据流并不是直接发送到客户端,而是会将目标音频数据流中的数据包的传输信息做调整之后进行发送,具体调整过程使得目标音频数据流中的数据包按同样的先后顺序添加到对应的转发音频数据流,这一调整过程最终使得这些数据包发送时,与服务器之前发送的转发音频数据流中的某一路具备相同的转发标识符,以及接续之前发送的数据包的序列号形成的连续序列号。整体而言,服务器最终向客户端发送的转发音频数据流分配有静态且不同的转发标识符,每路转发音频数据流的数据包的序列号连续。
步骤S105:向所述客户端发送所述转发音频数据流。
在多方远程语音会议过程中,服务器一般都会持续筛选出目标音频数据流,对应的,转发音频数据流的发送也是持续的过程,当有目标音频数据流中的数据包添加到转发音频数据流,即按序列号进行发送。
在两个设备间的数据传输过程中,为保证数据传输的完整性,接收端通常会有基于序列号的抗丢包判断以及后续请求过程。例如客户端向服务器发送10个数据包,序列号为1-10,这10个数据包在传输过程中,可以发生丢失,最终达到服务器20的只有1、2、3、7、8、9、10共7个数据包,服务器根据序列号的连续状态会向客户端要求重新发送4、5、6共3个数据包。在远程会议过程中,筛选出的目标音频数据流随时可能发生变化,也就是说有可能某个时段ssrc1筛选为目标音频数据流,下一时段ssrc1没有筛选为目标音频数据流,再下一时段ssrc1筛选为目标音频数据流,如果按每路目标音频数据流各自独立转发的处理方式,同一个客户端标识符会有多段目标音频数据流转发到其他客户端,并且多段目标音频数据流之间存在序列号的正常跳跃,但是对于接收到这些目标音频数据流的客户端来说,序列号的正常跳跃很可能会判断为丢包,进而进行不必要的抗丢包处理。
本方案所采用的技术方案中,在客户端的数量较大的情况下,转发标识符的数量远小于客户端标识符的数量,客户端能收到的音频数据都是以设定好的这几个转发标识符进行标记,对于单个转发标识符来说,数据包的序列号的连续性相对稳定,能够在有效降低服务器的无效数据处理的同时,将客户端不必要的抗丢包处理维持在相当低的程度。
在具体的转发过程中,向所述客户端发送转发音频数据流可以是向选择的客户端标识之外的客户端发送转发音频数据流,例如在ssrc1、ssrc2、ssrc3和ssrc4中,当前选中有ssrc1和ssrc2的客户端标识,那么ssrc1对应的转发音频数据流需要向ssrc2、ssrc3和ssrc4发送,ssrc2对应的转发音频数据流需要向ssrc1、ssrc3和ssrc4发送。
上述,通过接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;向所述客户端发送所述转发音频数据流。在多端远程会议过程中,服务器预设若干转发标识符,将待转发的音频数据流添加到转发标识符对应的转发音频数据流以向其他客户端进行音频发送,在服务器实现相对简单的客户端转发维护即可实现所有音频数据流的高效转发,减少了服务器和客户端的无效数据的管理,提高计算能力的使用效率。
实施例二
图3为本发明实施例二提供的一种多终端音频传输方法的流程图。本实施例是在上述实施例的基础上进行具体化。
具体的,参考图3,本实施例提供的多终端音频传输方法具体包括:
步骤S201:检测到有客户端接入时,为所述客户端分配客户端标识符。
当客户端接入服务器时,服务器根据设定的分配规则或者从预设的多个客户端标识符中,为客户端分配与当前接入同一会议的其他客户端不同的客户端标识符。客户端向服务器发送音频数据流时,即带上该分配好的客户端标识符,一般来说,从客户端接入服务器到断开期间,客户端的同步信源标识固定不变。
步骤S202:接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符。
步骤S203:通过预设的设备信息信道接收所述音频数据流的客户端信息。
整个会议过程中的数据传输并不是通过一个数据通道完成,例如音频数据流通过RTP实现,对于客户端的其它无需实时传输的信息,例如客户端的用户账号信息、当前麦克风的开启状态信息等,则可以通过预设的设备信息信号传输,至需要在这类信息有变化时将新的信息发送到服务器即可,不要求采用实时传输完成。
步骤S204:从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流。
步骤S205:判断所述标识符映射关系中是否存在与所述目标音频数据流对应的客户端标识符关联的转发标识符,若是则执行步骤S206,否则执行步骤S207。
目标音频数据流中的数据包添加到转发音频数据流的过程,也可以视为对目标音频数据流中的数据包进行重新封装的过程,该重新封装的过程不改变数据包中的实质性内容,主要的变化是将原有的客户端标识符替换为预设的转发标识符中的一个,当前确认的目标音频数据流中,客户端标识符不同,对应的转发标识符也不同。在具体的替换过程中,如果某客户端标识符连续筛选为目标音频数据流,可以参考前一次该客户端标识符替换的转发标识符,尽量使客户端标识符与转发标识符之间的对应关系变动最小,具体而言,先判断目标音频数据流对应的客户端标识符在标识符映射关系中是否有记录,如果有,则执行步骤S206,否则执行步骤S207。
步骤S206:确认为所述目标音频数据流关联的转发标识符。
如果标识符映射关系中存在客户端标识符关联的转发标识符,可以将该路目标音频数据流继续通过其原有的转发标识符进行转发,即维持原有的转发关系不变。
步骤S207:确认一个未关联客户端标识符的转发标识符,或与其他客户端标识符的关联时间最早的转发标识符为所述目标音频数据流关联的转发标识符。
如果目标音频数据流对应的客户端标识符在标识符映射关系中没有记录,则需要为该客户端标识符新建与某个转发标识符的关联关系。具体可以是一个未关联客户端标识符的转发标识符(如果有多个随机选一个),也可以是与其他客户端标识符的关联时间最早的转发标识符,在这两种情况中,前一种具有较高的优先级,即优先与未关联客户端标识符的转发标识符建立关联关系,如果没有这样的转发标识符,则与建立关联关系最早的转发标识符建立关联关系,此时相当于解除该转发标识符与原来关联的客户端标识符的关联关系。
具体请结合参考图4-图9,如图4所示,在刚刚创建远程会议时,所有的转发标识符(outputssrc1、outputssrc2、outputssrc3和outputssrc4)均未与其他客户端标识符(ssrcx)建立关联关系,随着会议进程的推进,如图5所示,ssrc1、ssrc2和ssrc3分别与outputssrc1、outputssrc2和outputssrc3建立关联关系,转发标识符中仅剩outputssrc4为空闲状态。
在下一次音频数据流的筛选中,如图6所示,客户端标识符分别为ssrc1、ssrc2和ssrc4的三路音频数据流筛选为目标音频数据流,此时ssrc1和ssrc2根据标识符映射关系可以确认继续分别通过outputssrc1和outputssrc2进行转发,关于ssrc4则先行判断是否有未关联的转发标识符存在,并基于判断结果建立ssrc4与outputssrc4之间的关联关系,此时的转发状态和关联状态如图7所示,其中ssrc3-outputssrc3的关联关系的最近一次使用时间停留在T3。
在下一次的音频数据流的筛选中,如图8所示,客户端标识符分别为ssrc1、ssrc2和ssrc5的三路音频数据流筛选为目标音频数据流,此时ssrc1和ssrc2根据标识符映射关系可以确认继续分别通过outputssrc1和outputssrc2进行转发,关于ssrc5则先行判断是否有未关联的转发标识符存在,很显然,不能建立ssrc5与空闲的转发标识符的关联关系,继而从已有的关联关系中解除未使用状态的持续时间最长的关联关系(ssrc3-outputssrc3:T3),并建立ssrc5与outputssrc3之间的关联关系,此时的转发状态和关联状态如图9所示,其中ssrc4-outputssrc4的关联关系的最近一次使用时间停留在T6,是当前所有关联关系中最近一次使用时间最早的,如果下一次需要建立新的关联关系,则优先解除ssrc4-outputssrc4的关联关系。
步骤S208:将所述标识符映射关系中的时间戳更新为接收到对应的目标音频数据流的时间戳。
时间戳可以有多种标记方式,只要能够确认关联的客户端标识符和转发标识符进行数据转发业务的先后关系。例如,将最近一次收到数据包的时间作为时间戳,这种情况下可以通过各个关联关系的绝对使用时间判断使用的先后顺序;又例如对各个存在关联关系的转发标识符进行排序作为时间戳,即最近一次使用时间越早,排序越靠后,通过一种类似于“最近使用”的排序方式确认各个关联关系的相对使用时间,使用时间越早,越有可能在建立新的关联关系时解除原来的关联关系。在图4-图9的示例说明中,采用的是绝对使用时间的时间戳更新方式。
步骤S209:将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流。
在具体的处理过程中,所述转发音频数据流的起始序列号不同。例如outputssrc1、outputssrc3和outputssrc3的起始序列号分别是1、5000和10000,这种设计方式能够从序列号形成客户端在同一时刻收到的数据包之间的差异,提高数据处理效率。具体的序列号替换,例如outputssrc1序列号已经排序到999,接下来的两次筛选分别筛选出两段目标音频数据流(ssrc1:1、2、3和4;ssrc2:500、501、502和503),那么outputssrc新确认的数据包的序列号应该为:1000、1001、1002、1003(对应ssrc1中的1、2、3、4共4个数据包)、1004、1005、1006、1007(对应ssrc2中的500、501、502、503共4个数据包)。
最终,音频数据流在转发时能够形成相对稳定的数据参数,即所述转发音频数据流分配有相对静态且不同的转发标识符,每路转发音频数据流的数据包的序列号连续。
步骤S210:向所述客户端发送所述转发音频数据流。
在发送转发音频数据流的同时,可以通过预设的设备信息信道发送所述音频数据流的客户端信息。为进一步提高音频数据在客户端的播放效果,服务器会通过预设设备信息通道发送音频数据流的客户端信息,例如当前发送的音频数据流是哪些设备,哪个设备的声音能量最强,客户端可以通过这些客户端信息突出显示该设备对应的视频画面或用户标识等。具体的界面呈现在现有技术多有实现,在此不做过多阐述。
步骤S211:当标识符映射关系中的时间戳与当前时间达到预设时长时,删除该时间戳对应的关联关系。
在具体实施过程中,可以对标识符映射关系进行实时维护,即对于在设定时间段内一直没有使用的关联关系,删除该关联关系,使该转发标识符恢复到空闲状态,需要特别说明的是,这种方式只有在时间戳采用绝对使用时间记录的方式才能实现。
上述,转发时客户端标识符与转发标识符的关联关系的建立,使得客户端标识符与转发标识符的对应关系变动最小,减少数据处理的复杂度。转发音频数据流的起始序列号不同,也有助于区分同时收到的多个数据包的来源,提高抗丢包判断的准确性。
实施例三
图10为本发明实施例三提供的一种多终端音频传输装置的结构示意图。参考图10,该多终端音频传输装置包括:数据接收单元301、数据筛选单元302、标识符关联单元303、数据包添加单元304和数据转发单元305。
数据接收单元301,用于接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;数据筛选单元302,用于从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;标识符关联单元303,用于根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;数据包添加单元304,用于将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;数据转发单元305,用于向所述客户端发送所述转发音频数据流。
在上述实施例的基础上,所述标识符关联单元303,包括:
关联判断单元,用于判断所述标识符映射关系中是否存在与所述目标音频数据流对应的客户端标识符关联的转发标识符;
第一确认单元,用于若存在与所述目标音频数据流对应的客户端标识符关联的转发标识符,则将该转发标识符确认为所述目标音频数据流关联的转发标识符;
第二确认单元,用于若不存在与所述目标音频数据流对应的客户端标识符关联的转发标识符,则确认一个未关联客户端标识符的转发标识符,或与其他客户端标识符的关联时间最早的转发标识符为所述目标音频数据流关联的转发标识符。
在上述实施例的基础上,所述装置,还包括:
时序更新单元,用于将所述标识符映射关系中的时间戳更新为接收到对应的目标音频数据流的时间戳。
在上述实施例的基础上,所述装置,还包括:
关联删除单元,用于当所述标识符映射关系中的时间戳与当前时间达到预设时长时,删除该时间戳对应的关联关系。
在上述实施例的基础上,所述装置,还包括:
客户端接入单元,用于检测到有客户端接入时,为所述客户端分配客户端标识符。
在上述实施例的基础上,所述转发音频数据流的起始序列号不同。
在上述实施例的基础上,所述装置,还包括:
信息收发单元,用于通过预设的设备信息信道接收和发送所述音频数据流的客户端信息。
本发明实施例提供的多终端音频传输装置包含在音频传输设备中,且可用于执行上述实施例一和实施例二中提供的任一多终端音频传输方法,具备相应的功能和有益效果。
实施例四
图11为本发明实施例四提供的一种终端设备的结构示意图,该终端设备是前文所述音频传输设备的一种具体的硬件呈现方案。如图11所示,该终端设备包括处理器410、存储器420、输入装置430、输出装置440以及通信装置450;终端设备中处理器410的数量可以是一个或多个,图11中以一个处理器410为例;终端设备中的处理器410、存储器420、输入装置430、输出装置440以及通信装置450可以通过总线或其他方式连接,图11中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的多终端音频传输方法对应的程序指令/模块(例如,多终端音频传输装置中的数据接收单元301、数据筛选单元302、标识符关联单元303、数据包添加单元304和数据转发单元305)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述的多终端音频传输方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
上述终端设备包含多终端音频传输装置,可以用于执行任意多终端音频传输方法,具备相应的功能和有益效果。
实施例五
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请任意实施例中提供的多终端音频传输方法中的相关操作,且具备相应的功能和有益效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。
因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种多终端音频传输方法,其特征在于,包括:
接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;
从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;
根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;
将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;
向所述客户端发送所述转发音频数据流。
2.根据权利要求1所述的方法,其特征在于,所述根据标识符映射关系确认所述目标音频数据流关联的转发标识符,包括:
判断所述标识符映射关系中是否存在与所述目标音频数据流对应的客户端标识符关联的转发标识符;
若存在,则确认为所述目标音频数据流关联的转发标识符;
否则,确认一个未关联客户端标识符的转发标识符,或与其他客户端标识符的关联时间最早的转发标识符为所述目标音频数据流关联的转发标识符。
3.根据权利要求1或2所述的方法,其特征在于,所述根据标识符映射关系确认所述目标音频数据流关联的转发标识符之后,还包括:
将所述标识符映射关系中的时间戳更新为接收到对应的目标音频数据流的时间戳。
4.根据权利要求3所述的方法,其特征在于,所述方法,还包括:
当所述标识符映射关系中的时间戳与当前时间达到预设时长时,删除该时间戳对应的关联关系。
5.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
检测到有客户端接入时,为所述客户端分配客户端标识符。
6.根据权利要求1所述的方法,其特征在于,所述转发音频数据流的起始序列号不同。
7.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
通过预设的设备信息信道接收和发送所述音频数据流的客户端信息。
8.一种多终端音频传输装置,其特征在于,包括:
数据接收单元,用于接收多个客户端发送的音频数据流,每个所述客户端对应不同的客户端标识符;
数据筛选单元,用于从所述音频数据流中按预设规则筛选出至少一路音频数据流作为目标音频数据流;
标识符关联单元,用于根据标识符映射关系确认所述目标音频数据流关联的转发标识符,所述标识符映射关系用于记录每个转发标识符最近一次关联的客户端标识符,所述转发标识符的个数大于所述目标音频数据流的个数;
数据包添加单元,用于将所述目标音频数据流中的数据包依序添加到关联的转发标识符对应的转发音频数据流;
数据转发单元,用于向所述客户端发送所述转发音频数据流。
9.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的多终端音频传输方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的多终端音频传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010045272.9A CN111245851B (zh) | 2020-01-13 | 2020-01-13 | 多终端音频传输方法、装置、终端设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010045272.9A CN111245851B (zh) | 2020-01-13 | 2020-01-13 | 多终端音频传输方法、装置、终端设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111245851A CN111245851A (zh) | 2020-06-05 |
CN111245851B true CN111245851B (zh) | 2021-12-03 |
Family
ID=70872689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010045272.9A Active CN111245851B (zh) | 2020-01-13 | 2020-01-13 | 多终端音频传输方法、装置、终端设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111245851B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112188144B (zh) * | 2020-09-14 | 2023-03-24 | 浙江华创视讯科技有限公司 | 音频的发送方法及装置、存储介质和电子装置 |
CN112203038B (zh) * | 2020-10-12 | 2022-09-16 | 北京字节跳动网络技术有限公司 | 在线会议的处理方法、装置、电子设备及计算机存储介质 |
CN114500130A (zh) * | 2021-12-30 | 2022-05-13 | 北京字节跳动网络技术有限公司 | 音频数据推送方法、装置、***、电子设备及存储介质 |
CN114884924A (zh) * | 2022-04-24 | 2022-08-09 | 康键信息技术(深圳)有限公司 | 一种音视频通道的选择方法、装置、电子设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8385233B2 (en) * | 2007-06-12 | 2013-02-26 | Microsoft Corporation | Active speaker identification |
CN101547265B (zh) * | 2008-10-20 | 2014-07-30 | 华为终端有限公司 | 一种3d音频会议的信号处理方法、设备以及*** |
US8711736B2 (en) * | 2010-09-16 | 2014-04-29 | Apple Inc. | Audio processing in a multi-participant conference |
CN106028076A (zh) * | 2016-06-22 | 2016-10-12 | 天脉聚源(北京)教育科技有限公司 | 一种获取关联用户视频的方法、服务器及终端 |
CN106331095A (zh) * | 2016-08-23 | 2017-01-11 | 惠州市拉维尼科技有限公司 | 信息转发方法 |
CN108881783B (zh) * | 2017-05-09 | 2020-09-08 | 腾讯科技(深圳)有限公司 | 实现多人会话的方法和装置、计算机设备和存储介质 |
CN110602338B (zh) * | 2019-07-30 | 2021-04-13 | 广州视源电子科技股份有限公司 | 音频处理方法、装置、***、存储介质以及设备 |
-
2020
- 2020-01-13 CN CN202010045272.9A patent/CN111245851B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111245851A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111245851B (zh) | 多终端音频传输方法、装置、终端设备和存储介质 | |
US11917498B2 (en) | Communication method and communications apparatus | |
US10091644B2 (en) | System and method for implementing capability exposure, and capability exposure platform | |
KR100754293B1 (ko) | 디지털 콘텐츠 배포 시스템, 디지털 콘텐츠 배포 방법, 이 방법을 실행하기 위한 프로그램을 기억한 컴퓨터 판독 가능한 기록 매체, 및 이를 위한 서버 및 클라이언트 | |
CN101040277B (zh) | 用于流送媒体数据的方法 | |
CN109067578B (zh) | 一种组播快速切换的方法和装置 | |
CN111049792B (zh) | 音频传输方法、装置、终端设备和存储介质 | |
CN101925151A (zh) | 接入控制方法、设备及*** | |
RU2435205C2 (ru) | Способ законного перехвата информации и устройство для этого | |
CN109891826B (zh) | 网络数据处理方法及装置 | |
CN110445723B (zh) | 一种网络数据调度方法及边缘节点 | |
WO2006107164A1 (en) | Apparatus and method for delivering stream in a mobile broadcast system | |
US7428271B2 (en) | Network device and data transmission method for efficient data transmission and reception in mobile ad hoc network environment | |
JP2008131262A (ja) | 通話サーバ、通話端末、通話システム、転送処理方法および転送処理プログラム | |
KR20230150878A (ko) | 데이터 송신 방법 및 장치, 그리고 서버, 저장 매체, 및 프로그램 제품 | |
US20140043430A1 (en) | Apparatus and method for providing group communication service | |
KR20060108474A (ko) | 멀티미디어 데이터 전송 방법, 장치 및 이를 위한프로그램이 기록된 기록매체 및 멀티미디어 데이터 전송제어 방법 | |
US8305876B2 (en) | Accelerated recovery during negotiation between a media gateway and a media gateway controller | |
US11882340B2 (en) | Content distribution system, unicast multicast converter, content distribution method and content distribution program | |
CN105210347A (zh) | 监控服务器、解析服务器、请求设备及节点选择方法 | |
WO2017140076A1 (zh) | 一种数据传输方法及装置 | |
CN110166185B (zh) | 音频数据的处理方法、装置、存储介质和处理器 | |
CN110324477B (zh) | 一种通讯录的处理方法和装置 | |
US7016322B1 (en) | Generating graded packets for packet voting in wireless communications systems | |
WO2024098815A1 (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 |