Method, device and equipment for transmitting media stream in conference system and medium

By dynamically allocating media servers based on the number of participants and preset threshold relationships in the video conferencing system, the meeting delay problem caused by multimedia servers and joint forwarding is solved, and the effect of reducing latency and improving efficiency is achieved.

CN119652875APending Publication Date: 2025-03-18HAOXINYUN (BEIJING) NETWORK COMM CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510161248.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-13
Publication Date
2025-03-18

AI Technical Summary

Technical Problem

In the existing video conferencing system, the inter-relay between multiple media servers leads to an increase in the meeting delay, and how to reduce the meeting delay has become a technical problem that needs to be solved.

Method used

Through the control end, based on the current number of participants in the meeting and the preset threshold relationship, it is decided whether the media server allocated to the client is an existing media server for the meeting or a new media server is added on the basis of the existing media server, so as to minimize the inter-media transmission between media servers.

Benefits of technology

This method can reduce the occurrence of joints, reduce conference overhead and delays, and improve conference efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119652875A_ABST
    Figure CN119652875A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a method, a device, equipment and a medium for transmitting a media stream in a conference system, which are applied to the field of video conferences, the method is applied to a control end, and the method comprises the following steps: acquiring a conference joining request of a client, the conference joining request carrying a conference identifier of a conference; according to the relationship between the current number of participants of the conference and a preset threshold value, determining that the media server allocated to the client is an existing media server of the conference or a media server selected after a new media server is added on the basis of the existing media server; and sending a conference joining feedback message to the client, the conference joining feedback message carrying an address of a signaling gateway corresponding to the allocated media server, and the signaling gateway being used for establishing a connection between the client and the allocated media server and transmitting a media stream. According to the method and the device, the problems of resource waste and conference delay caused by randomly selecting the media server from the server cluster are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of video conferencing, and in particular to a method, apparatus, device and medium for transmitting media streams in a conference system. Background Art

[0002] With the rapid development of network technology, video conferencing has become an important tool for people to communicate. In existing video conferencing, before a terminal device enters a conference, the control end will allocate a media server for the terminal device to access the conference. The existing control end will randomly allocate the media server that the terminal device needs to access. For a conference, if multiple media servers are allocated, the multiple media servers need to cascade forward the media streams to achieve the transmission of media streams between multiple terminal devices.

[0003] When there are too many cascades between media servers, the conference delay will increase. Therefore, how to reduce the conference delay becomes a technical problem that needs to be solved. Summary of the invention

[0004] An object of an embodiment of the present application is to provide a method, apparatus, device and medium for transmitting media streams in a conference system. The technical solution of the embodiment of the present application can reduce conference delay.

[0005] In a first aspect, an embodiment of the present application provides a method for transmitting media streams in a conference system, the conference system comprising a media server, a client and a control end, the method being applied to the control end, the method comprising: obtaining a joining request from the client, the joining request carrying a conference identifier of the conference; determining, based on a relationship between a current number of participants in the conference and a preset threshold, that a media server assigned to the client is an existing media server for the conference or a media server selected after a new media server is added on the basis of an existing media server, wherein when the current number of participants and the preset threshold meet a first condition, the media server assigned to the client is an existing media server for the conference, and when the current number of participants and the preset threshold meet a second condition, the media server assigned to the client is a media server selected after a new media server is added on the basis of an existing media server; sending a joining feedback message to the client, the joining feedback message carrying an address of a signaling gateway corresponding to the assigned media server, the signaling gateway being used to establish a connection between the client and the assigned media server and to transmit media streams.

[0006] In the embodiments of the present application, a certain rule is adopted to select, as much as possible, a media server assigned to a client from existing media servers, and the number of media servers is increased only when a second condition is met, that is, a media server is added, thus abandoning the solution in the prior art of randomly assigning a server to a client from all media servers (i.e., a server cluster), which can reduce the occurrence of cascading, reduce the meeting overhead, and reduce the meeting delay.

[0007] In one implementation, when T is an integer multiple of N, the second condition is met; when T takes other values, the first condition is met, where T represents the current number of participants joining the meeting, and N is a positive integer representing the preset threshold; when the second condition is met, the number of existing media servers for the meeting is m, where m is a positive integer representing the multiple value of the current number of participants joining the meeting being N, i.e., T = m * N; when the first condition is met, the number of existing media servers for the meeting is n, and the value of n satisfies the following condition: n * N - N < T < n * N, where n is a positive integer.

[0008] In one implementation, when the first condition is met and the number of existing media servers for the meeting is multiple, the media server assigned to the client is one media server selected from multiple existing media servers according to the number of people in the meeting that have been assigned to the multiple existing media servers.

[0009] In one implementation, the media server assigned to the client is the one with the least number of people in the meeting that have been assigned among multiple existing media servers; or, when the number of people in the meeting that have been assigned to multiple existing media servers is the same, the media server assigned to the client is one randomly selected from multiple existing media servers; or, the media server assigned to the client is the last added one among multiple existing media servers.

[0010] In one implementation, when the first condition is met and the number of existing media servers is multiple, the media server assigned to the client is one media server selected from multiple existing media servers according to the load conditions of the multiple existing media servers.

[0011] In one implementation, the media server assigned to the client is the one with the smallest load among multiple existing media servers; or, when the loads of multiple existing media servers are the same, the media server assigned to the client is one randomly selected from multiple existing media servers.

[0012] In one embodiment, when the second condition is met, a media server is randomly selected from other media servers in the media server cluster except the existing media server, or a media server with the lowest load is selected as the newly added media server, and the media server cluster is determined based on the physical distance from the client or based on the area to which the client belongs; wherein the media server assigned to the client is the newly added media server; or the media server assigned to the client is a media server with the least number of conference participants or the lowest load selected after a new media server is added on the basis of the existing media servers.

[0013] In one embodiment, the preset threshold is a load threshold of the media server; when the load corresponding to the current number of participants does not exceed the load threshold of the media server, the first condition is met, and the media server assigned to the client is the last media server added; when the load corresponding to the current number of participants reaches the load threshold of the media server, the second condition is met, a new media server is added based on the existing media servers of the conference, and the media server assigned to the client is determined to be the newly added media server.

[0014] In a second aspect, an embodiment of the present application provides a device for transmitting media streams in a conference system, the conference system comprising a media server, a client and a control end, the device being applied to the control end, the device comprising: an acquisition unit, used to acquire a conference joining request from the client, the conference joining request carrying a conference identifier of the conference; a determination unit, used to determine, based on a relationship between the current number of participants in the conference and a preset threshold, that the media server assigned to the client is an existing media server for the conference or a media server selected after a new media server is added on the basis of the existing media servers, wherein when the current number of participants and the preset threshold meet a first condition, the media server assigned to the client is an existing media server for the conference, and when the current number of participants and the preset threshold meet a second condition, the media server assigned to the client is a media server selected after a new media server is added on the basis of the existing media servers; a sending unit, used to send a conference joining feedback message to the client, the conference joining feedback message carrying an address of a signaling gateway corresponding to the assigned media server, the signaling gateway being used to establish a connection between the client and the assigned media server and transmit media streams.

[0015] In a third aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, and when the program is executed by a processor, the method described in the first aspect and any one of the embodiments of the first aspect can be implemented.

[0016] In a fourth aspect, an embodiment of the present application provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the method described in the first aspect and any one of the embodiments of the first aspect can be implemented.

[0017] In a fifth aspect, an embodiment of the present application provides a computer program product, wherein the computer program product includes a computer program, wherein when the computer program is executed by a processor, it can implement the method described in the first aspect and any one of the embodiments of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] In order to more clearly illustrate the technical solution of an embodiment of the present application, the drawings required for use in an embodiment of the present application will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0019] Figure 1 A schematic diagram of a video conferencing system scenario provided for an embodiment of the present application; Figure 2 A schematic diagram of a method for transmitting a media stream in the prior art; Figure 3 It is a flowchart of another method for transmitting media streams in the prior art; Figure 4 A schematic flow chart of a method for transmitting a media stream in a conference system provided in accordance with an embodiment of the present application; Figure 5 A schematic flow chart of a method for transmitting a media stream in a conference system provided in another embodiment of the present application; Figure 6 A schematic flow chart of a method for transmitting a media stream in a conference system provided in yet another embodiment of the present application; Figure 7 A schematic diagram of a device for transmitting a media stream in a conference system provided by an embodiment of the present application; Figure 8 A schematic diagram of an electronic device is provided for one embodiment of the present application. DETAILED DESCRIPTION

[0020] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application.

[0021] like Figure 1 As shown, a video conferencing system provided by an embodiment of the present application includes: multiple clients, a control terminal and a media server.

[0022] In an embodiment of the present application, the control end may also be referred to as the management end or the signaling server. The control end is used to perform signaling interaction with the client to transmit the necessary information required to establish a connection between the clients. At the same time, the control end is used to allocate the media server required for the client to access the conference.

[0023] In the embodiment of the present application, the media server can accept the instructions of the control terminal to manage and control the producer and consumer objects, and then decide whether to receive and / or send the audio and / or video streams of the client's real-time communication. It should be understood that the media server can also be called a selective forwarding unit (Selective Forwarding Unit, SFU), an SFU server or a forwarding server or a media forwarding server. If there is no special explanation below, the several names of the media server can be replaced, and the embodiment of the present application does not limit this. It should be understood that in the present application, the control terminal and the media server can be two independent devices or integrated into one device. In the embodiment of the present application, the media server can correspond one-to-one with the signaling gateway, and the client can communicate with the media server through the signaling gateway corresponding one-to-one with the media server.

[0024] It should be understood that the client in the embodiment of the present application may also be referred to as a user end or user equipment or terminal equipment. In the real-time example of the present application, the terminal equipment may be installed with a browser, and real-time communication may be performed through the browser, or an APP or applet may be installed, and real-time communication may be performed through the APP or applet. The terminal equipment in the present application may include a smart phone, a tablet computer, (personal digital assistant, PDA personal digital assistant), a computer, a game console, a wearable device, a tablet computer (portable android device, PAD), etc., and the embodiment of the present application is not limited thereto.

[0025] It should be understood that Figure 1 In the video conferencing system scenario shown in , only two clients are illustrated, but the embodiments of the present application are not limited to this. In an actual video conferencing scenario, the number of clients may include any number, depending on the actual situation.

[0026] It should be understood that Figure 1The video conferencing system shown may be a conference system based on Web Real-Time Communications (WebRTC). The corresponding communication architecture may be a mesh architecture, a multipoint conferencing unit (MCU) architecture, or a selective forwarding unit (SFU) architecture, but the embodiments of the present application are not limited thereto.

[0027] like Figure 2 As shown, in the existing video conference, when the client accesses the conference, it will first request the scheduling service from the control end to obtain the address of the signaling gateway. For example, the client requests the scheduling service through http to obtain the address of the signaling gateway; after obtaining the request, the control end will randomly allocate the signaling gateway corresponding to the media server that the client needs to access from all media servers (or randomly allocate the media server that the client needs to access according to the load situation); then the client will establish a long connection with the media server, for example, through TCP (Transmission Control Protocol) or UDP (User Datagram Protocol) to establish communication with the signaling gateway, and finally, after signaling interaction, establish a UDP media connection with the media server to realize the transmission of the media stream.

[0028] like Figure 2 The conference access method shown in the figure has a problem, that is, when different clients are assigned different media servers, multiple media servers need to perform parallel forwarding of media streams to achieve the transmission of media streams between multiple terminal devices. Figure 3 As shown in the figure, if the publishing stream client and the subscribing stream client are assigned different media servers, the media server corresponding to the publishing stream needs to forward the RTP / RTCP (real-time transport protocol (RTP) / RTP Control Protocol (RTCP)) media stream to the media server corresponding to the subscribing stream client. In other words, after the media data stream of the streaming user is transferred to the media service, it can be transmitted to the user who subscribes to the media stream after being forwarded in parallel.

[0029] For example, the participants of a meeting are usually concentrated in the same area, a small number of users will attend the meeting in different places, and in the scenario of a meeting in a large company, due to the limitation of the venue, online meetings will be preferred, and it is very likely that hundreds or thousands of people will be concentrated in one building. If the traditional random allocation of media services is adopted, since it does not take into account whether the allocated media server is an existing media server of the meeting, and whether it is a media server in the same area, it will lead to a large number of cross-service communication scenarios, such as: the host / speaker publishes the media stream on the A media service, and the participants attend the meeting on the BCDE... servers. In this way, the speaker's media stream needs to be forwarded to the BCD service through the A media service, and then forwarded to other participants. This kind of linked transmission adds additional overhead and increases the delay of the meeting.

[0030] In view of the above problems of the prior art, the method for transmitting media streams in a conference system provided in an embodiment of the present application uses certain rules to try to select a media server assigned to a client from existing media servers. Only when the second condition is met will the number of media servers be expanded, that is, the media servers are increased. This abandons the solution in the prior art of randomly assigning servers to clients from all media servers (that is, server clusters), which can reduce the occurrence of connections, reduce conference overhead, and reduce conference delays.

[0031] In order to facilitate understanding and explanation, the following is an example rather than a limitation. Figure 4-Figure 6 The execution process and actions of the method for transmitting media streams of the present application in a video conferencing system are described below.

[0032] The following is combined with Figure 4 A method for transmitting media streams in a conference system provided by an embodiment of the present application is exemplarily described.

[0033] like Figure 4 The method shown is applied to Figure 1 In the video conferencing system shown, Figure 4 The methods shown include: 410. The control end obtains the client's request to join the meeting.

[0034] The conference joining request carries a conference identifier of the conference.

[0035] 420 , the control end determines that the media server allocated to the client is an existing media server of the conference or a media server selected after a new media server is added based on the relationship between the current number of participants in the conference and a preset threshold.

[0036] Among them, when the current number of participants meets the first condition with the preset threshold, the media server allocated to the client is the existing media server of the meeting. When the current number of participants meets the second condition with the preset threshold, the media server allocated to the client is a media server selected after adding a new media server to the existing media servers.

[0037] In other words, the control end determines whether to allocate the existing media server or a newly added media server to the client according to the relationship between the current number of participants and the preset threshold, and then selects a media server. It should be understood that the current number of participants here can be understood as the current number of participants who have already joined the meeting, that is, the number of people who have joined the meeting when the client's joining request is received.

[0038] Specifically, in the embodiments of the present application, when the number of people is small, the control end preferentially allocates the existing media server. Only when a certain condition is met, that is, the second condition is met, will a new media server be added. In this way, giving priority to the existing media server can minimize the connection between media servers, reduce resource overhead and meeting latency.

[0039] Optionally, in one implementation, when T is an integer multiple of N, the second condition is met; when T takes other values, the first condition is met, where T represents the current number of participants, and N is a positive integer representing the preset threshold; when the second condition is met, the number of existing media servers of the meeting is m, and m is a positive integer representing the multiple value of the current number of participants being N, T = m * N. That is to say, in the embodiments of the present application, only when the number of people reaches a certain scale, that is, T = m * N, will a new media server be added. When T is less than m * N, the media server allocated to the client is the existing media server.

[0040] When the first condition is met, the number of existing media servers of the meeting is n, where the value of n satisfies the following condition: n * N - N < T < n * N, and n is a positive integer.

[0041] It should be understood that the preset threshold can be adjusted according to the actual situation. For example, in one statistical result, in a single meeting, the meeting with the largest number of people is the meeting with less than 10 people, and the second largest is the meeting with 40 to 50 people, but the number of sessions with less than 20 people accounts for almost half of the sessions. In this case, based on the business scenario, 20 people are used as a scheduling unit, that is, the value of the preset threshold can be 20. Then in this case, only when the number of people is an integer multiple of 20 and the second condition is met, will a new media server be added; otherwise, the first condition is met, and when a client joins, the existing media server is allocated to the client.

[0042] For example, when the first user enters the conference, the first media server is assigned to the conference, which can be a media server with the lowest load. Assume that the assigned media server is media service 85001. When the number of users is less than 20, they are assigned to the same media server: 85001. When the number of users is equal to 20, a media service 85002 is added to share the load. When the number of users is greater than 20 and less than 40, the existing media server 85001 or 85002 is assigned to the user. When the number of users is equal to or greater than 40, the above process is repeated.

[0043] It should be noted that, when the first condition is met and there are multiple media servers in the conference, there are multiple situations for allocating the media server to the client.

[0044] Case 1: As an embodiment, when the first condition is met and there are multiple existing media servers for the conference, the media server allocated to the client is a media server selected from multiple existing media servers based on the number of people in the conference allocated to the multiple existing media servers.

[0045] Optionally, as an embodiment, the media server allocated to the client is a media server with the least number of people in the conference allocated to it among multiple existing media servers.

[0046] For example, when the number of users is greater than 20 and less than 40, users are allocated to 85002 first because the number of users in 85002 is relatively small.

[0047] Alternatively, as another embodiment, when the number of persons in the conference allocated to multiple existing media servers is equal, the media server allocated to the client is a randomly selected one from the multiple existing media servers.

[0048] It should be understood that the number of people here is equivalent to that the difference in the number of people is less than a certain ratio, that is, the number of people on the two servers is close. For example, when the difference in the ratio of the number of people on the two servers is less than 0.7, that is, the difference in the number of people on the two servers is less than 6, it can be determined that the number of people is equivalent. At this time, when the number of people is equivalent, a media server can be randomly assigned to the client.

[0049] Furthermore, as another embodiment, in the above situation, the existing media server needs to have sufficient load, that is, the load needs to be lower than a certain load threshold, such as lower than 70% load, and the number of people in the allocated meeting is also equal, before random allocation.

[0050] Case 2, as an embodiment, when the first condition is met and there are multiple existing media servers, the media server allocated to the client is a media server selected from multiple existing media servers according to the load conditions of the multiple existing media servers.

[0051] For example, as an embodiment, the media server allocated to the client is a media server with the smallest load among multiple existing media servers.

[0052] For example, if the assigned servers are 85001 and 85002, when the 21st client joins the meeting, if the load on 85001 is light, 85001 is assigned to the user; if the load on 85002 is light, 85002 is assigned to the user.

[0053] Alternatively, as an embodiment, when the loads of multiple existing media servers are similar, the media server allocated to the client is a randomly selected one from the multiple existing media servers.

[0054] It should be understood that the load here is equivalent to that the load difference is less than a certain ratio, that is, the loads of the two servers are relatively close. For example, when the load difference between the two servers is less than 0.7, a media server can be randomly assigned to the client.

[0055] Further, as another embodiment, when the above loads are equal, the premise for allocating the media servers at any time is that the loads of the media servers are all lower than the load threshold.

[0056] Alternatively, as another embodiment, when the first condition is met, the media server allocated to the client is a server with the least number of members and the lowest load, or a server determined based on the weighted number of members and the load. The specific selection of the allocated server may also adopt other rules that can be thought of by those skilled in the art in this application embodiment. For example, it may be determined based on one or a combination of multiple parameters such as the number of members, load, network, physical distance from the client, etc. The embodiment of the application is not limited to this.

[0057] Case three, as an embodiment, when the first condition is met and there are multiple existing media servers, the media server allocated to the client is the last media server added among the multiple existing media servers.

[0058] For example, in the above example, when the number of users is greater than 20 and less than 40, since 85002 is the last media server added, the media server allocated to the client is 85002.

[0059] Optionally, as another embodiment, when the second condition is met, a media server is randomly selected from other media servers in the media server cluster except the existing media server, or a media server with the lowest load is selected as the newly added media server, and the media server cluster is determined based on the physical distance from the client or based on the area to which the client belongs; wherein the media server assigned to the client is the newly added media server; or the media server assigned to the client is a media server with the least number of conference participants or a media server with the lowest load selected after a new media server is added on the basis of the existing media servers.

[0060] It should be understood that the media server cluster here can be a cluster composed of servers in the same area, or a cluster composed of media servers in different areas, and the embodiments of the present application are not limited to this. In the prior art, media servers are usually allocated to clients from the server cluster at any time, without giving priority to the allocated media servers. The present application will only add another media server to the server cluster when the second condition is met, which can reduce the problem of parallel transmission in the prior art, save resources, and reduce delays.

[0061] It should be understood that when the second condition is met, after a new media server is added, which media server is allocated to the client can refer to the solution of selecting the allocated media server after the first condition is met in the above text, which will not be repeated here.

[0062] In order to minimize the number of connections, the previous article introduced a strategy for allocating media servers based on the number of members and the preset number threshold. Only when certain conditions are met, that is, the number of people reaches the threshold, will a media server be added, avoiding the problem of increased connections caused by the existing technology based on random allocation of available media servers.

[0063] Alternatively, other strategies may be used in the embodiments of the present application to determine the media server, for example, a strategy of allocating media servers one by one. For example, in order to minimize connections, the embodiments of the present application may determine the first media server and then determine whether the load corresponding to the current number of members reaches or exceeds the load threshold of the first media server. If the load upper limit is not reached, the first media server continues to be allocated to the client until the load is reached or exceeded, and then a second media server is added. Subsequent members are allocated to the second media server until the load threshold is reached, and then a third media server is added, and so on.

[0064] Correspondingly, as an alternative embodiment, the preset threshold is the load threshold of the media server; when the load corresponding to the current number of people joining the meeting does not exceed the load threshold of the media server, the first condition is met, and the media server assigned to the client is the last media server added; when the load corresponding to the current number of people joining the meeting reaches the load threshold of the media server, the second condition is met, a new media server is added on the basis of the existing media servers of the conference, and the media server assigned to the client is determined to be the newly added media server.

[0065] Optionally, when someone exits the conference and the corresponding media server has spare load, the allocation rules for the media servers of the newly joined clients are still in the above manner, that is, the allocation strategy is determined only based on whether the load of the last added media server reaches the load threshold. Alternatively, for the newly joined clients, the media server corresponding to the exited user can also be preferentially allocated. In the above manner, the embodiment of the present application can minimize the connection and improve the efficiency of the meeting.

[0066] It should be understood that the above-mentioned load threshold can be determined according to actual conditions, for example, it can be 70%, 80%, 90% or 100% of the load capacity, and the embodiments of the present application are not limited to this.

[0067] 430. The control end sends a conference joining feedback message to the client.

[0068] The conference joining feedback message carries the address of the signaling gateway corresponding to the assigned media server, and the signaling gateway is used to establish a connection between the client and the assigned media server and transmit media streams.

[0069] After the client obtains the signaling gateway address, it can establish a connection with the corresponding media server to realize the transmission of the media stream. The specific process of establishing a connection with the media server and transmitting the media stream after the client obtains the signaling gateway can be referred to the description of the existing solution, which will not be repeated here.

[0070] For example, using the solution of the embodiment of the present application, when the preset threshold is 20, if the number of user clients is less than 20, or the first 19 user clients are all assigned to the same media server, for example, Figure 5 As shown in the figure, there are only two clients in the conference. In this case, both the publishing stream client and the subscribing stream client will connect to the same media server, which can reduce or avoid the consumption of the connection. Figure 6As shown, even when there are multiple clients, if the number of user clients is less than 20, the multiple clients will all access the same media server, for example, including one publishing stream client and three subscribing stream clients, and these clients all access the same media server, which can avoid or reduce the situation of parallel connection. Similarly, only when more clients are connected, for example, more than 20 clients, will a media server be added. In this case, although there will be parallel connection, it can reduce the occurrence of parallel connection compared with the prior art.

[0071] Please refer to Figure 7 , Figure 7 A block diagram showing a composition of an apparatus for transmitting a media stream in a conference system provided by an embodiment of the present application is shown. Figure 7 The device 700 shown can be a control end or a unit in the control end. It should be understood that the device 700 corresponds to the control end in the above method embodiment and can execute each step performed by the control end involved in the above method embodiment. The specific functions of the device 700 can be found in the description above. To avoid repetition, the detailed description is appropriately omitted here.

[0072] Figure 7 The device 700 shown includes at least one software function module that can be stored in a memory or fixed in the device in the form of software or firmware. Figure 7 The device 700 shown includes: an acquisition unit 710, which is used to acquire a conference joining request from a client, wherein the conference joining request carries a conference identifier of the conference; a determination unit 720, which is used to determine, based on the relationship between the current number of participants in the conference and a preset threshold, that the media server assigned to the client is an existing media server for the conference or a media server selected after a new media server is added on the basis of the existing media servers, wherein when the current number of participants and the preset threshold meet a first condition, the media server assigned to the client is an existing media server for the conference, and when the current number of participants and the preset threshold meet a second condition, the media server assigned to the client is a media server selected after a new media server is added on the basis of the existing media servers; a sending unit 730, which is used to send a conference joining feedback message to the client, wherein the conference joining feedback message carries an address of a signaling gateway corresponding to the assigned media server, and the signaling gateway is used to establish a connection between the client and the assigned media server and transmit media streams.

[0073] In one embodiment, when T is an integer multiple of N, the second condition is satisfied; when T takes other values, the first condition is satisfied, where T represents the current number of participants joining the meeting, and N is a positive integer representing the preset threshold; when the second condition is satisfied, the number of existing media servers in the meeting is m, where m is a positive integer representing the multiple value of the current number of participants joining the meeting being N, i.e., T = m * N; when the first condition is satisfied, the number of existing media servers in the meeting is n, where the value of n satisfies the following condition: n * N - N < T < n * N, and n is a positive integer.

[0074] In one embodiment, when the first condition is satisfied and the number of existing media servers in the meeting is more than one, the media server assigned to the client is a media server selected from multiple existing media servers according to the number of people in the meeting that have been assigned to the multiple existing media servers.

[0075] In one embodiment, the media server assigned to the client is the media server with the least number of people in the meeting that have been assigned among multiple existing media servers; or, when the number of people in the meeting that have been assigned to multiple existing media servers is the same, the media server assigned to the client is a media server randomly selected from multiple existing media servers; or, the media server assigned to the client is the last added media server among multiple existing media servers.

[0076] In one embodiment, when the first condition is satisfied and the number of existing media servers is more than one, the media server assigned to the client is a media server selected from multiple existing media servers according to the load conditions of the multiple existing media servers.

[0077] In one embodiment, the media server assigned to the client is the media server with the lowest load among multiple existing media servers; or, when the loads of multiple existing media servers are the same, the media server assigned to the client is a media server randomly selected from multiple existing media servers.

[0078] In one embodiment, when the second condition is satisfied, a media server is randomly selected or the media server with the lowest load is selected from other media servers in the media server cluster except the existing media servers as the newly added media server, and the media server cluster is determined based on the physical distance from the client or based on the area to which the client belongs; where the media server assigned to the client is the newly added media server; or the media server assigned to the client is the media server with the least number of people in the meeting or the lowest load selected after adding a new media server to the existing media servers.

[0079] In one embodiment, the preset threshold is a load threshold of the media server; when the load corresponding to the current number of participants does not exceed the load threshold of the media server, the first condition is met, and the media server assigned to the client is the last media server added; when the load corresponding to the current number of participants reaches the load threshold of the media server, the second condition is met, a new media server is added based on the existing media servers of the conference, and the media server assigned to the client is determined to be the newly added media server.

[0080] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the device described above can refer to the corresponding process in the aforementioned method, and will not be described in detail here.

[0081] like Figure 8 As shown, an embodiment of the present application provides an electronic device 800, which includes: a memory 810, a processor 820, and a computer program stored in the memory 810 and executable on the processor 820, wherein the processor 820 reads the program from the memory 810 through a bus 830 and executes the program to implement the method executed by the control end in any of the above embodiments. Optionally, Figure 8 The illustrated device may also include a transceiver, which may be used for sending and / or receiving signaling.

[0082] Processor 820 can process digital signals and can include various computing structures, such as complex instruction set computer structure, reduced instruction set computer structure, or a structure that implements a combination of multiple instruction sets. In some examples, processor 820 can be a microprocessor.

[0083] The memory 810 can be used to store instructions executed by the processor 820 or data related to the instruction execution process. These instructions and / or data may include codes for implementing some functions or all functions of one or more modules described in the embodiments of the present application. The processor 820 of the disclosed embodiment can be used to execute instructions in the memory 810 to implement the method performed by the control end shown above. The memory 810 includes a dynamic random access memory, a static random access memory, a flash memory, an optical memory, or other memories known to those skilled in the art.

[0084] An embodiment of the present application further provides a computer-readable storage medium having a computer program stored thereon. When the program is executed by a processor, the method executed by the control end in any of the above methods provided in the above embodiments can be implemented.

[0085] An embodiment of the present application further provides a computer program product, which includes a computer program, wherein when the computer program is executed by a processor, it can implement the method executed by the control end in any of the above methods provided in the above embodiments.

[0086] It should be noted that the processor in the embodiment of the present invention (for example, Figure 8 The processor in the embodiment of the present invention may be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method embodiment may be completed by an integrated logic circuit of hardware in the processor or an instruction in software form. The above processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The disclosed methods, steps and logic block diagrams in the embodiments of the present invention may be implemented or executed. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The software module may be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.

[0087] It can be understood that the memory in the embodiment of the present invention (for example, Figure 8The memory in the memory may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory. Among them, the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DR RAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0088] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present invention. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present invention, the size of the sequence number of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present invention.

[0089] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.

[0090] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0091] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic, for example, the division of units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, or can be electrical, mechanical or other forms of connection.

[0092] In short, the above is only a preferred embodiment of the technical solution of the present invention, and is not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims

1. A method for transmitting media streams in a conference system, characterized in that: The conference system includes a media server, a client, and a control terminal. The method is applied to the control terminal and includes: Obtaining an access request from the client, where the access request carries a conference identifier of the conference; Determining, according to the relationship between the current number of participants in the conference and a preset threshold, that the media server allocated to the client is either the existing media server of the conference or a media server selected after adding a new media server based on the existing media server. Among them, when the current number of participants and the preset threshold meet the first condition, the media server allocated to the client is the existing media server of the conference; when the current number of participants and the preset threshold meet the second condition, the media server allocated to the client is a media server selected after adding a new media server based on the existing media server; Sending an access feedback message to the client, where the access feedback message carries the address of the signaling gateway corresponding to the allocated media server, and the signaling gateway is used to establish a connection between the client and the allocated media server and transmit media streams; 2. The method according to claim 1, characterized in that When T is an integer multiple of N, the second condition is satisfied; when T takes other values, the first condition is satisfied, where T represents the current number of participants and N is a positive integer representing the preset threshold; When the second condition is satisfied, the number of existing media servers of the conference is m, and m is a positive integer representing that the current number of participants is a multiple value of N, T = m * N; When the first condition is satisfied, the number of existing media servers of the conference is n, where the value of n satisfies the following condition: n * N - N < T < n * N, and n is a positive integer; 3. The method according to claim 1 or 2, characterized in that: When the first condition is satisfied and the number of existing media servers of the conference is multiple, The media server allocated to the client is a media server selected from multiple existing media servers according to the number of people in the conference already allocated to the multiple existing media servers; 4. The method according to claim 3, wherein The media server allocated to the client is the media server with the least number of people in the conference already allocated among the multiple existing media servers; or When the number of people in the conference already allocated to the multiple existing media servers is the same, the media server allocated to the client is a randomly selected one among the multiple existing media servers; or The media server allocated to the client is the last added media server among the multiple existing media servers; 5. The method according to claim 1 or 2, characterized in that: When the first condition is satisfied and the number of existing media servers is multiple, The media server allocated to the client is a media server selected from multiple existing media servers according to the load conditions of the multiple existing media servers; Among them, the media server allocated to the client is the media server with the smallest load among the multiple existing media servers; or When the loads of the multiple existing media servers are the same, the media server allocated to the client is a randomly selected one among the multiple existing media servers.

6. The method according to claim 1 or 2, characterized in that: When the second condition is met, randomly selecting a media server from other media servers except the existing media server in the media server cluster or selecting a media server with the lowest load as the newly added media server, wherein the media server cluster is determined based on a physical distance from the client or based on an area to which the client belongs; The media server assigned to the client is the newly added media server; or the media server assigned to the client is a media server with the least number of conference participants or the lowest load selected after a new media server is added on the basis of the existing media servers.

7. The method according to claim 1, characterized in that The preset threshold is a load threshold of the media server; When the load corresponding to the number of current members does not exceed the load threshold of the media server, the first condition is met, and the media server allocated to the client is the last media server added; When the load corresponding to the current number of conference participants reaches the load threshold of the media server, the second condition is met, a new media server is added based on the existing media servers of the conference, and the media server allocated to the client is determined to be the newly added media server.

8. A device for transmitting media streams in a conference system, characterized in that: The conference system includes a media server, a client and a control terminal, and the device is applied to the control terminal. The device includes: An acquiring unit, configured to acquire a conference joining request from a client, wherein the conference joining request carries a conference identifier of the conference; a determination unit, configured to determine, based on a relationship between the current number of participants in the conference and a preset threshold, that the media server assigned to the client is an existing media server for the conference or a media server selected after a new media server is added on the basis of the existing media servers, wherein when the current number of participants and the preset threshold satisfy a first condition, the media server assigned to the client is an existing media server for the conference, and when the current number of participants and the preset threshold satisfy a second condition, the media server assigned to the client is a media server selected after a new media server is added on the basis of the existing media servers; The sending unit is used to send a conference joining feedback message to the client, wherein the conference joining feedback message carries the address of a signaling gateway corresponding to the assigned media server, and the signaling gateway is used to establish a connection between the client and the assigned media server and transmit media streams.

9. An electronic device, characterized in that: The method comprises a memory, a processor, and a computer program stored in the memory and running on the processor, wherein the computer program executes the method according to any one of claims 1 to 7 when being run by the processor.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program executes the method according to any one of claims 1 to 7 when executed by a processor.

Citation Information

Patent Citations

  • Dynamic distribution method of video session media server resources

    CN102025971A

  • Server distribution method and device, equipment and medium

    CN112202755A

  • Streaming media cluster node management method and device and storage medium

    CN112468310A

  • Method and system for realizing massive terminals access of a streaming media server

    US20110296049A1

  • Application server and media resource allocation method

    WO2011020343A1