A streaming media data distribution transmission method, system and related device

By managing the load status of the pull and push streaming service nodes through the scheduling server and establishing the target stream link, the single-machine performance bottleneck problem in the traditional streaming media data forwarding mode is solved, and the effective distribution and resource optimization of high-concurrency audio and video data are realized.

CN115955469BActive Publication Date: 2026-04-14VTRON GRP CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-29
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

Traditional streaming media data forwarding models cannot meet the demands of large-scale, high-concurrency audio and video forwarding, suffer from single-machine performance bottlenecks, and are difficult to effectively utilize hardware resources.

Method used

By dynamically managing the load status of pull and push service nodes through the scheduling server, target stream links are established to achieve load balancing and horizontal scaling. Existing stream links are reused first, and service nodes are dynamically added to improve network throughput.

Benefits of technology

It effectively utilizes hardware resources to support the distribution of streaming media data from a massive number of playback terminals, improves network throughput, avoids resource waste, and achieves highly elastic real-time expansion capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115955469B_ABST
    Figure CN115955469B_ABST
Patent Text Reader

Abstract

The application discloses a streaming media data distribution transmission method, system and related equipment, and the method comprises the following steps: when receiving a streaming media data request of a playing terminal, a signal source contained in the streaming media data request is acquired; it is judged whether the signal source has established at least one code stream link outside; if yes, the code stream links are acquired, and a target code stream link is determined based on the code stream links; if no, based on the load states of each pull streaming service node and the load states of each push streaming service node, the target code stream link is established, which is used for transmitting the streaming media data of the signal source to the playing terminal; the load state of each pull streaming service node is obtained by the pull streaming service node reporting periodically, and the load state of each push streaming service node is obtained by the push streaming service node reporting periodically. The application can reuse the existing code stream link, realize the load balancing of each pull streaming service node and each push streaming service node, and effectively utilize the existing software resources and hardware resources.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of streaming media data processing technology, and more specifically, to a streaming media data distribution and transmission method, system, and related equipment. Background Technology

[0002] In applications such as video surveillance, video conferencing, live internet streaming, and the Internet of Things (IoT), various audio and video data sources need to be forwarded via public or private clouds. Traditional forwarding methods can no longer meet the ever-increasing demand for high-concurrency forwarding. How to meet the needs of large-scale, high-concurrency audio and video forwarding and overcome the limitations of single-machine performance has become an urgent technical problem to be solved. Summary of the Invention

[0003] In view of this, this application provides a streaming media data distribution and transmission method, system and related equipment to solve at least one of the problems mentioned above.

[0004] To achieve the above objectives, the first aspect of this application provides a streaming media data distribution and transmission method, comprising:

[0005] When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained;

[0006] Determine whether the signal source has established at least one external code stream link;

[0007] If so, obtain each bitstream link and determine the target bitstream link based on each bitstream link;

[0008] If not, establish the target stream link based on the load status of each pull stream service node and the load status of each push stream service node;

[0009] The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting.

[0010] Preferably, the process of determining the target bitstream link based on each bitstream link includes:

[0011] Obtain the load status of the push streaming service node in each stream link;

[0012] Based on the load status of the push service nodes in each stream link, the candidate push service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate push service node are determined.

[0013] Determine whether the number of stream output paths of the candidate push streaming service node is less than a first preset threshold;

[0014] if:

[0015] A third stream split is established between the candidate push service node and the playback terminal, and the first stream split between the signal source and the pull service node, the second stream split between the pull service node and the candidate push service node, and the third stream split between the candidate push service node and the playback terminal in the candidate stream link are determined as the target stream link;

[0016] If not:

[0017] The target stream link is obtained based on the load status of each stream link and the pull service node in each stream link.

[0018] Preferably, the process of obtaining the target stream link based on the load status of each stream link and the pull service node in each stream link includes:

[0019] Obtain the load status of the pull service node in each stream link;

[0020] Based on the load status of the streaming service nodes in each stream link, the candidate streaming service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate streaming service node are determined.

[0021] Determine whether the number of stream output paths of the candidate streaming service node is less than a second preset threshold;

[0022] If so, establish the target stream link based on the candidate stream link, the candidate pull stream service node, and the service status of each push stream service node;

[0023] If not, establish the target stream link based on the load status of each pull stream service node and the service status of each push stream service node.

[0024] Preferably, the process of establishing the target stream link based on the candidate stream links, the candidate pull stream service nodes, and the service status of each push stream service node includes:

[0025] Based on the load status of each streaming service node, determine the target streaming service node with the lowest load index value;

[0026] Control the establishment of a second stream split between the candidate streaming service node and the target streaming service node, and control the establishment of a third stream split between the target streaming service node and the playback terminal;

[0027] The first stream split between the signal source and the candidate pull stream service node, the second stream split between the candidate pull stream service node and the target push stream service node, and the third stream split between the target push stream service node and the playback terminal in the candidate stream link are determined as the target stream link.

[0028] Preferably, the process of establishing the target stream link based on the load status of each pull stream service node and the load status of each push stream service node includes:

[0029] Based on the load status of each streaming service node, the target streaming service node with the lowest load index value is determined, and the first stream split is established between the signal source and the target streaming service node.

[0030] Based on the load status of each streaming service node, the target streaming service node with the lowest load index value is determined, and a second stream split is established between the target streaming service node and the target streaming service node.

[0031] The system controls the establishment of a third stream split between the target streaming service and the playback terminal, and determines the first stream split, the second stream split, and the third stream split as the target stream link.

[0032] Preferably, the load status of each streaming service node includes: CPU utilization, memory utilization, network card speed, number of stream output channels, and number of stream input channels of the streaming service node;

[0033] The load status of each streaming service node includes: CPU utilization, memory utilization, network card speed, number of stream output channels, and number of stream input channels.

[0034] A second aspect of this application provides a streaming media data distribution and transmission system, including a scheduling server and multiple signal sources, multiple pull streaming service nodes, multiple push streaming service nodes, and multiple playback terminals that are communicatively connected to the scheduling server;

[0035] The signal source is used to provide streaming media data;

[0036] The streaming service node periodically reports its load status to the scheduling server, which is used to pull streaming media data from the signal source through the first stream splitting between the signal source and the signal source.

[0037] The push streaming service node periodically reports its load status to the scheduling server, which is used to pull streaming media data to the pull streaming service node through the second stream splitting between the push streaming service node and the pull streaming service node.

[0038] The playback terminal is used to submit a streaming media data request for a specified signal source to the scheduling server, and to pull streaming media data to the streaming service node through a third bitstream splitter between the streaming service node and the streaming service node.

[0039] The scheduling server is used to implement the streaming media data distribution and transmission method described above.

[0040] A third aspect of this application provides a streaming media data distribution and transmission apparatus, comprising:

[0041] The request receiving unit is used to obtain the signal source contained in the streaming media data request when it receives a streaming media data request from the playback terminal;

[0042] The link determination unit is used to determine whether the signal source has established at least one external code stream link;

[0043] The link multiplexing unit is used to acquire each code stream link and determine the target code stream link based on each code stream link when the link determination unit determines that the signal source has established at least one code stream link to the outside world.

[0044] The link creation unit is used to establish a target stream link based on the load status of each pull stream service node and the load status of each push stream service node when the link judgment unit determines that the signal source has not established any external stream link.

[0045] The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting.

[0046] A fourth aspect of this application provides an electronic device, including: a memory and a processor;

[0047] The memory is used to store programs;

[0048] The processor is used to execute the program to implement the various steps of the above-described streaming media data distribution and transmission method.

[0049] The fifth aspect of this application provides a storage medium having a computer program stored thereon, which, when executed by a processor, implements the various steps of the streaming media data distribution and transmission method described above.

[0050] As can be seen from the above technical solution, in the streaming media data distribution and transmission method applied to the scheduling server provided in this application, each pull-stream service node and each push-stream service node constituting the transmission link periodically reports their respective load status to the scheduling server. When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained. It can be understood that the signal source is specified by the user of the playback terminal. It is determined whether the signal source has established at least one external stream link. If it is determined that the signal source has established at least one external stream link, each stream link is obtained, and a target stream link is determined based on each stream link. The target stream link is used to transmit the streaming media data of the signal source to the playback terminal. By determining the target stream link based on the established stream links, existing stream links can be reused, effectively utilizing existing software resources. If it is determined that the signal source has not established any external stream links, a target stream link is established based on the load status of each pull-stream service node and each push-stream service node. By considering the load status of each streaming service node and each push streaming service node, load balancing can be achieved, effectively utilizing hardware resources. Furthermore, since each streaming service node has the independent function of pulling streaming media data from various signal sources, and each push streaming service node has the independent function of pulling streaming media data from various streaming service nodes, horizontal scaling can be achieved by dynamically adding a corresponding number of streaming service nodes and / or push streaming service nodes. This improves network throughput, effectively distributes more media data, and well supports a massive number of playback terminals. Attached Figure Description

[0051] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0052] Figure 1 This is a schematic diagram of the streaming media data distribution and transmission system disclosed in the embodiments of this application;

[0053] Figure 2 This is a schematic diagram of the streaming media data distribution and transmission method disclosed in the embodiments of this application;

[0054] Figure 3 A schematic diagram illustrating the reuse of an established bitstream link disclosed in the application embodiments is provided;

[0055] Figure 4An example is provided in the illustration of the re-determining of the push service node to reuse part of the bitstream splitting disclosed in the application embodiment;

[0056] Figure 5 A schematic diagram illustrating the process of establishing a code stream link as disclosed in the application embodiments is provided;

[0057] Figure 6 This is a schematic diagram of the streaming media data distribution and transmission apparatus disclosed in the embodiments of this application;

[0058] Figure 7 This is a schematic diagram of a streaming media data distribution and transmission device disclosed in an embodiment of this application. Detailed Implementation

[0059] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0060] The following describes a streaming media data distribution and transmission system provided in an embodiment of this application. Please refer to [link / reference]. Figure 1 The streaming media data distribution and transmission system provided in this application embodiment may include a scheduling server 20 and multiple signal sources 10, multiple pull streaming service nodes 40, multiple push streaming service nodes 50 and multiple playback terminals 60 that are communicatively connected to the scheduling server 20.

[0061] The signal source 10 is used to provide streaming media data, and the user can specify which signal source to select for playing streaming media on the playback terminal 60.

[0062] The streaming service node 40 periodically reports its own load status to the scheduling server 20, which is used to pull streaming media data to the signal source 10 through the first bitstream branch between the signal source and the signal source.

[0063] The push streaming service node 50 periodically reports its own load status to the scheduling server 20, which is used to pull streaming media data to the pull streaming service node 40 through the second bitstream split between it and the pull streaming service node.

[0064] The playback terminal 60 is used to submit streaming media data requests for a specified signal source to the scheduling server 20, and to pull streaming media data to the streaming service node 50 through a third stream splitter between the playback terminal 60 and the streaming service node 50.

[0065] The scheduling server 20 is used to receive streaming media data requests from the playback terminal 60, parse the signal source specified by the playback terminal 60 from the streaming media data request, and further determine the target streaming media link based on the currently established stream link, the load status of each pull stream service node 40 and the load status of each push stream service node 50.

[0066] Understandably, during the initialization of a streaming media data distribution and transmission system, each signal source, pull streaming service node, push streaming service node, and player registers with the scheduling server so that the scheduling server can track the latest information and load status of these participants. When dynamic expansion is required, newly added signal sources, pull streaming service nodes, or push streaming service nodes also need to register with the scheduling server.

[0067] The specific implementation of the scheduling server 20 is the key technology of this application. The following describes in detail the specific implementation process of the streaming media data distribution and transmission method from the perspective of the scheduling server 20.

[0068] The following describes a streaming media data distribution and transmission method provided in an embodiment of this application, which is applied to a scheduling server 20. Please refer to... Figure 2 The streaming media data distribution and transmission method provided in this application embodiment may include the following steps:

[0069] Step S101: When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained.

[0070] It is understandable that when a user initiates a streaming media data request through the playback terminal 60, the user-specified signal source will be included in the streaming media data request. When determining the bitstream link, the scheduling server 20 needs to consider using the signal source to provide a streaming media data source for the playback terminal 60.

[0071] Step S102: Determine whether the signal source has established at least one external code stream link. If yes, proceed to step S103; otherwise, proceed to step S104.

[0072] A complete stream link consists of three stream branches: the first stream branch from the signal source 10 to a pull stream service node 40, the second stream branch from the pull stream service node 40 to a push stream service node 50, and the third stream branch from the push stream service node 50 to a playback terminal 60.

[0073] Step S103: Obtain each bitstream link and determine the target bitstream link based on each bitstream link.

[0074] For example, reusable stream branches can be found based on each stream link, and then some stream branches can be newly built based on the load status of each push stream service node 50 and each pull stream service node 40, thereby building a complete target stream link.

[0075] Step S104: Based on the load status of each pull stream service node and the load status of each push stream service node, establish the target stream link.

[0076] When there is no stream link for the signal source specified by the playback terminal 60, it is necessary to determine the target pull stream service node 40 based on the load status of each pull stream service node 40, and the target push stream service node 50 based on the load status of each push stream service node 50, and then construct the target stream link using the target pull stream service node 40 and the target push stream service node 50.

[0077] The target stream link is used to transmit the streaming media data from the signal source 10 to the playback terminal 60. The load status of each pull stream service node 40 is obtained by the pull stream service node reporting periodically, and similarly, the load status of each push stream service node 50 is obtained by the push stream service node reporting periodically.

[0078] In the streaming media data distribution and transmission method applied to a scheduling server provided in this application, each pull-stream service node and each push-stream service node constituting the transmission link periodically reports their respective load status to the scheduling server. When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained. It can be understood that the signal source is specified by the user of the playback terminal. It is determined whether the signal source has established at least one external stream link. If it is determined that the signal source has established at least one external stream link, each stream link is obtained, and a target stream link is determined based on each stream link. The target stream link is used to transmit the streaming media data of the signal source to the playback terminal. By determining the target stream link based on the established stream links, existing stream links can be reused, effectively utilizing existing software resources. If it is determined that the signal source has not established any external stream links, a target stream link is established based on the load status of each pull-stream service node and each push-stream service node. By considering the load status of each streaming service node and each push streaming service node, load balancing can be achieved, effectively utilizing hardware resources. Furthermore, since each streaming service node has the independent function of pulling streaming media data from various signal sources, and each push streaming service node has the independent function of pulling streaming media data from various streaming service nodes, horizontal scaling can be achieved by dynamically adding a corresponding number of streaming service nodes and / or push streaming service nodes. This improves network throughput, effectively distributes more media data, and well supports a massive number of playback terminals.

[0079] In some embodiments of this application, the load status of the streaming service node mentioned in step S104 may include: CPU utilization, memory utilization, network card speed, number of stream outgoing paths, and number of stream incoming paths of the streaming service node.

[0080] Since the streaming service nodes need to periodically report their load status to the scheduling server, the CPU utilization, memory utilization, network card speed, number of stream output channels, and number of stream input channels in the load status can be real-time data collected at the time of reporting. Specifically, the number of stream output channels of the streaming service node is the number of stream splits between streaming service node 40 and streaming service node 50, and the number of stream input channels of the streaming service node is the number of stream splits between signal source 10 and streaming service node 40. Typically, each streaming service node has an upper limit on the number of stream output channels and the upper limit on the number of stream input channels; the specific upper limit values ​​depend on the hardware performance of the streaming service node.

[0081] Similarly, the load status of the streaming service node can include: CPU utilization, memory utilization, network card speed, number of stream output channels, and number of stream input channels.

[0082] Since the streaming service nodes need to periodically report their load status to the scheduling server, the CPU utilization, memory utilization, network card speed, number of stream output channels, and number of stream input channels in the load status can be real-time data collected at the time of reporting. Specifically, the number of stream output channels of the streaming service node is the number of stream splitters between streaming service node 50 and playback terminal 60, and the number of stream input channels of the streaming service node is the number of stream splitters between streaming service node 40 and streaming service node 50. Typically, each streaming service node has an upper limit on the number of stream output channels and the upper limit on the number of stream input channels; the specific upper limit values ​​depend on the hardware performance of the streaming service node.

[0083] In some embodiments of this application, step S103, which determines the target bitstream link based on each bitstream link, may include:

[0084] S1, obtain the load status of the push streaming service node in each stream link.

[0085] S2, based on the load status of the push service nodes in each stream link, determine the candidate push service node with the fewest stream outgoing paths, and the candidate stream link corresponding to that candidate push service node.

[0086] S3, determine whether the number of stream output paths of the candidate push service node is less than the first preset threshold. If yes, proceed to S4; otherwise, proceed to S5.

[0087] The first preset threshold is the upper limit of the number of stream output paths preset by the candidate streaming service node. Generally, for the current mainstream streaming service nodes, the first preset threshold can be set to 128, that is, each streaming service node 50 is allowed to connect to a maximum of 128 playback terminals 60.

[0088] S4, establish the third stream split between the candidate push service node and the playback end, and determine the first stream split between the signal source and the pull service node, the second stream split between the pull service node and the candidate push service node, and the third stream split between the candidate push service node and the playback end as the target stream link.

[0089] For example, please refer to Figure 3For signal source 1, a stream link {stream1-1,stream1-2,stream1-3} has already been established. If playback terminal 2 sends a streaming media data request to the scheduling server, specifying that it wants streaming media data from signal source 1, then the scheduling server, based on S1 and S2 above, obtains the candidate stream link {stream1-1,stream1-2,stream1-3} and identifies the candidate push-stream service node as push-stream service node 1. Next, based on S3 above, since the number of stream output paths for the candidate push-stream service node (i.e., push-stream service node 1) is 1, which is less than the first preset threshold of 128, therefore, based on S4, a third stream branch, stream1-4, is established between push-stream service node 1 and playback terminal 2, ultimately resulting in the target stream link {stream1-1,stream1-2,stream1-4}.

[0090] S5 obtains the target stream link based on the load status of each stream link and the pull service node in each stream link.

[0091] When the candidate streaming service node with the fewest stream output paths is determined in S3, and its stream output path count has reached the first preset threshold, it means that the stream output path count of all streaming service nodes in all stream links established by the specified signal source has reached the first preset threshold. In this case, the second stream split between the pull stream service node and the streaming service node should be abandoned, and a new streaming service node should be sought and connected to the already established stream link, reusing only the first stream split between the signal source and the pull stream service node. Specifically, the pull stream service node with the relatively light load in each stream link should be sought, and then a new streaming service node should be sought and connected to it.

[0092] In some embodiments of this application, the process of obtaining the target stream link based on the load status of each stream link and the pull service node in each stream link in S5 may include:

[0093] S51, obtain the load status of the pull service node in each stream link.

[0094] S52, based on the load status of the pull service nodes in each stream link, determine the candidate pull service node with the fewest stream outgoing paths, and the candidate stream link corresponding to the candidate pull service node.

[0095] S53, determine whether the number of stream output paths of the candidate pull service node is less than the second preset threshold. If yes, proceed to S54; if no, proceed to S55.

[0096] S54. Based on the candidate stream link, the candidate pull stream service node, and the service status of each push stream service node, establish the target stream link.

[0097] S55 establishes the target stream link based on the load status of each pull stream service node and the service status of each push stream service node.

[0098] When the number of stream output paths from each push service node in the established stream links of the signal source has reached a first preset threshold, and the number of stream output paths from each pull service node has also reached a second preset threshold, it means that all these established stream links are operating at full capacity and no stream branch can be reused. At this time, as in step S104, it is necessary to redetermine the target pull service node based on the load status of each pull service node, and redetermine the target push service node based on the service status of each push service node, and establish the target stream link based on the target pull node and the target push node.

[0099] For example, please refer to Figure 4 For signal source 1, a stream link {stream1-1,stream1-2,stream1-3} has already been established. If playback terminal 129 sends a streaming media data request to the scheduling server, specifying that it wants streaming media data from signal source 1, then the scheduling server, based on S1 and S2 above, obtains the candidate stream link {stream1-1,stream1-2,stream1-3} and identifies the candidate streaming service node as streaming service node 1. Next, based on S3 above, the number of stream output channels for streaming service node 1 is determined. Since the number of stream output channels for streaming service node 1 is already 128, reaching the first preset threshold, S4 is skipped, and execution proceeds to S5. At this point, since there is only one stream link {stream1-1,stream1-2,stream1-3}, and the number of stream output paths of the pull service node 1 in this stream link is 1, which is lower than the upper limit of the number of output paths of the pull service node, the push service node with the lowest load index value (such as push service node 2) can be selected from all the push service nodes, and a second stream branch stream1-131 from pull service node 1 to push service node 2 can be established, as well as a third stream branch stream1-132 from push service node 2 to playback terminal 129 can be established, and finally the target stream link {stream1-1,stream1-131,stream1-132} is obtained.

[0100] In some embodiments of this application, the process of establishing the target stream link based on the candidate stream link, the candidate pull stream service node, and the service status of each push stream service node in step S54 includes:

[0101] S541, based on the load status of each streaming service node, determine the target streaming service node with the lowest load index value.

[0102] S542, control the establishment of a second stream split between the candidate pull stream service node and the target push stream service node, and control the establishment of a third stream split between the target push stream service node and the playback end.

[0103] S543, the first stream split between the signal source and the candidate pull stream service node, the second stream split between the candidate pull stream service node and the target push stream service node, and the third stream split between the target push stream service node and the playback end in the candidate stream link are determined as the target stream link.

[0104] For example, please refer to Figure 4 The candidate stream link is {stream1-1,stream1-2,stream1-3}, the candidate pull stream service node is pull stream service node 1, and the target push stream service node is push stream service node 2. The scheduling server sends a first resource allocation request to the push stream service node, noting that this request includes information about pull stream service node 1. Push stream service node 2 responds to the first resource allocation request and establishes a second stream branch, stream1-131, with pull stream service node 1. Next, the scheduling server instructs signal source 1 to push stream to pull stream service node 1, and signal source 1 uses the established first stream branch, stream1-1, to push stream to pull stream service node 1. Then, push stream service node 2 uses the second stream branch, stream1-131, to pull streaming media data from pull stream service node 1. The scheduling server notifies the playback terminal 129 to establish a third stream splitter stream1-132 with the push streaming service node 2. After the playback terminal 129 establishes the third stream splitter stream1-132, it uses the third stream splitter stream1-132 to pull streaming media data from the push streaming service node 2.

[0105] In some embodiments of this application, step S104, which establishes the target stream link based on the load status of each pull stream service node and the load status of each push stream service node, may include:

[0106] S1, based on the load status of each streaming service node, determine the target streaming service node with the lowest load index value, and control the establishment of the first stream split between the signal source and the target streaming service node.

[0107] S2, based on the load status of each push service node, determine the target push service node with the lowest load index value, and control the establishment of a second stream split between the target pull service node and the target push service node.

[0108] S3, control the establishment of a third stream split between the target streaming service and the playback terminal, and determine the first stream split, the second stream split, and the third stream split as the target stream link.

[0109] For example, please refer to Figure 5 The process of establishing the target code stream link described above is as follows:

[0110] ①Player 1 sends a streaming media data request to the scheduling server, specifying signal source 1 as the signal source;

[0111] After receiving the streaming media data request, the scheduling server calculates the load index value of each streaming service node based on the load status of each streaming service node, and calculates the load index value of each streaming service node based on the load status of each streaming service node, and obtains the nodes that are currently suitable for providing services as streaming service node 1 and streaming service node 1.

[0112] ② The scheduling server sends a resource allocation request to the streaming service node 1;

[0113] ③ Streaming service node 1 responded successfully;

[0114] ④ The scheduling server sends a resource allocation request to the push streaming service node 1, wherein the resource allocation request carries information about the pull streaming service node 1 that has successfully responded;

[0115] ⑤ Push service node 1 responded successfully and established a second stream splitter stream1-2 with pull service node 1;

[0116] ⑥ The scheduling server notifies signal source 1 to push the stream to the streaming service node 1;

[0117] Signal source 1 and pull service node 1 establish the first stream splitter stream1-1 and start pushing the stream. Since the push service node 1 and pull service node 1 have successfully established the second stream splitter stream1-2 in step ⑤, the push service node 1 actively pulls the data stream from signal source 1 from the pull service node 1;

[0118] ⑦ The scheduling server responds to the streaming media data request from playback terminal 1 in ① by carrying the information of the streaming service node 1; playback terminal 1 establishes a third stream splitter stream1-3 with streaming service node 1 and starts pulling the data stream from signal source 1 from streaming service node 1.

[0119] This application provides a method to improve the service efficiency of cloud platforms in ultra-high concurrency application scenarios such as video surveillance, video conferencing, live internet streaming, and the Internet of Things. By prioritizing reuse, load balancing, intelligent scheduling, and supporting unlimited horizontal scaling, it improves the effective utilization rate of audio and video signals from devices throughout the system, avoids meaningless waste of CPU and network resources, effectively utilizes limited hardware devices, distributes more audio and video network data, and ultimately supports a massive number of terminals while maximizing cost savings and having highly elastic real-time scaling capabilities.

[0120] The streaming media data distribution and transmission apparatus provided in the embodiments of this application is described below. The streaming media data distribution and transmission apparatus described below can be referred to in correspondence with the streaming media data distribution and transmission method described above.

[0121] Please see Figure 6 The streaming media data distribution and transmission apparatus provided in this application embodiment may include:

[0122] The request receiving unit 21 is used to obtain the signal source contained in the streaming media data request when it receives a streaming media data request from the playback end;

[0123] Link determination unit 22 is used to determine whether the signal source has established at least one code stream link to the outside world;

[0124] The link multiplexing unit 23 is used to acquire each code stream link and determine the target code stream link based on each code stream link when the link determination unit determines that the signal source has established at least one code stream link to the outside world.

[0125] Link creation unit 24 is used to establish a target stream link based on the load status of each pull stream service node and the load status of each push stream service node when the link judgment unit determines that the signal source has not established any external stream link.

[0126] The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting.

[0127] In some embodiments of this application, the process by which the link multiplexing unit 23 determines the target code stream link based on each code stream link may include:

[0128] Obtain the load status of the push streaming service node in each stream link;

[0129] Based on the load status of the push service nodes in each stream link, the candidate push service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate push service node are determined.

[0130] Determine whether the number of stream output paths of the candidate push streaming service node is less than a first preset threshold;

[0131] if:

[0132] A third stream split is established between the candidate push service node and the playback terminal, and the first stream split between the signal source and the pull service node, the second stream split between the pull service node and the candidate push service node, and the third stream split between the candidate push service node and the playback terminal in the candidate stream link are determined as the target stream link;

[0133] If not:

[0134] The target stream link is obtained based on the load status of each stream link and the pull service node in each stream link.

[0135] In some embodiments of this application, the process by which the link multiplexing unit 23 obtains the target stream link based on the load status of each stream link and the pull service node in each stream link may include:

[0136] Obtain the load status of the pull service node in each stream link;

[0137] Based on the load status of the streaming service nodes in each stream link, the candidate streaming service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate streaming service node are determined.

[0138] Determine whether the number of stream output paths of the candidate streaming service node is less than a second preset threshold;

[0139] If so, establish the target stream link based on the candidate stream link, the candidate pull stream service node, and the service status of each push stream service node;

[0140] If not, establish the target stream link based on the load status of each pull stream service node and the service status of each push stream service node.

[0141] In some embodiments of this application, the process by which the link multiplexing unit 23 establishes the target stream link based on the candidate stream links, the candidate pull stream service nodes, and the service status of each push stream service node may include:

[0142] Based on the load status of each streaming service node, determine the target streaming service node with the lowest load index value;

[0143] Control the establishment of a second stream split between the candidate streaming service node and the target streaming service node, and control the establishment of a third stream split between the target streaming service node and the playback terminal;

[0144] The first stream split between the signal source and the candidate pull stream service node, the second stream split between the candidate pull stream service node and the target push stream service node, and the third stream split between the target push stream service node and the playback terminal in the candidate stream link are determined as the target stream link.

[0145] In some embodiments of this application, the process by which the link creation unit 24 establishes a target stream link based on the load status of each pull stream service node and the load status of each push stream service node may include:

[0146] Based on the load status of each streaming service node, the target streaming service node with the lowest load index value is determined, and the first stream split is established between the signal source and the target streaming service node.

[0147] Based on the load status of each streaming service node, the target streaming service node with the lowest load index value is determined, and a second stream split is established between the target streaming service node and the target streaming service node.

[0148] The system controls the establishment of a third stream split between the target streaming service and the playback terminal, and determines the first stream split, the second stream split, and the third stream split as the target stream link.

[0149] The streaming media data distribution and transmission device provided in this application embodiment can be applied to streaming media data distribution and transmission equipment, such as computers. Optionally, Figure 7 A hardware block diagram of a streaming media data distribution and transmission device is shown, with reference to... Figure 7 The hardware structure of a streaming media data distribution and transmission device may include: at least one processor 31, at least one communication interface 32, at least one memory 33, and at least one communication bus 34.

[0150] In this embodiment, the number of processor 31, communication interface 32, memory 33 and communication bus 34 is at least one, and processor 31, communication interface 32 and memory 33 communicate with each other through communication bus 34;

[0151] The processor 31 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of this application.

[0152] The memory 33 may include high-speed RAM, and may also include non-volatile memory, such as at least one disk storage device;

[0153] The memory 33 stores a program, and the processor 31 can call the program stored in the memory 33. The program is used for:

[0154] When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained;

[0155] Determine whether the signal source has established at least one external code stream link;

[0156] If so, obtain each bitstream link and determine the target bitstream link based on each bitstream link;

[0157] If not, establish the target stream link based on the load status of each pull stream service node and the load status of each push stream service node;

[0158] The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting.

[0159] Optionally, the refined and extended functions of the program can be found in the description above.

[0160] This application embodiment also provides a storage medium that can store a program suitable for execution by a processor, the program being used for:

[0161] When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained;

[0162] Determine whether the signal source has established at least one external code stream link;

[0163] If so, obtain each bitstream link and determine the target bitstream link based on each bitstream link;

[0164] If not, establish the target stream link based on the load status of each pull stream service node and the load status of each push stream service node;

[0165] The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting.

[0166] Optionally, the refined and extended functions of the program can be found in the description above.

[0167] In summary:

[0168] In the streaming media data distribution and transmission method applied to a scheduling server provided in this application, each pull-stream service node and each push-stream service node constituting the transmission link periodically reports their respective load status to the scheduling server. When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained. It can be understood that the signal source is specified by the user of the playback terminal. It is determined whether the signal source has established at least one external stream link. If it is determined that the signal source has established at least one external stream link, each stream link is obtained, and a target stream link is determined based on each stream link. The target stream link is used to transmit the streaming media data of the signal source to the playback terminal. By determining the target stream link based on the established stream links, existing stream links can be reused, effectively utilizing existing software resources. If it is determined that the signal source has not established any external stream links, a target stream link is established based on the load status of each pull-stream service node and each push-stream service node. By considering the load status of each streaming service node and each push streaming service node, load balancing can be achieved, effectively utilizing hardware resources. Furthermore, since each streaming service node has the independent function of pulling streaming media data from various signal sources, and each push streaming service node has the independent function of pulling streaming media data from various streaming service nodes, horizontal scaling can be achieved by dynamically adding a corresponding number of streaming service nodes and / or push streaming service nodes. This improves network throughput, effectively distributes more media data, and well supports a massive number of playback terminals.

[0169] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0170] The various embodiments in this specification are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. The various embodiments can be combined as needed, and the same or similar parts can be referred to each other.

[0171] The above description of the disclosed embodiments enables those skilled in the art to make or use this application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this application. Therefore, this application is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method for distributing and transmitting streaming media data, characterized in that, include: When a streaming media data request is received from the playback terminal, the signal source contained in the streaming media data request is obtained; Determine whether the signal source has established at least one external code stream link; If so, obtain each bitstream link and determine the target bitstream link based on each bitstream link; If not, establish the target stream link based on the load status of each pull stream service node and the load status of each push stream service node; The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting. The process of determining the target bitstream link based on each bitstream link includes: Obtain the load status of the push streaming service node in each stream link; the load status of the push streaming service node includes the number of stream output paths; Based on the load status of the push service nodes in each stream link, the candidate push service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate push service node are determined. Determine whether the number of stream output paths of the candidate push streaming service node is less than a first preset threshold; if: A third stream split is established between the candidate push service node and the playback terminal, and the first stream split between the signal source and the pull service node, the second stream split between the pull service node and the candidate push service node, and the third stream split between the candidate push service node and the playback terminal in the candidate stream link are determined as the target stream link; If not: The target stream link is obtained based on the load status of each stream link and the pull service node in each stream link.

2. The method according to claim 1, characterized in that, The process of obtaining the target stream link based on the load status of each stream link and the pull service node in each stream link includes: Obtain the load status of the pull service node in each stream link; Based on the load status of the streaming service nodes in each stream link, the candidate streaming service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate streaming service node are determined. Determine whether the number of stream output paths of the candidate streaming service node is less than a second preset threshold; If so, establish the target stream link based on the candidate stream link, the candidate pull stream service node, and the service status of each push stream service node; If not, establish the target stream link based on the load status of each pull stream service node and the service status of each push stream service node.

3. The method according to claim 2, characterized in that, The process of establishing a target stream link based on the candidate stream links, the candidate pull service nodes, and the service status of each push service node includes: Based on the load status of each streaming service node, determine the target streaming service node with the lowest load index value; Control the establishment of a second stream split between the candidate streaming service node and the target streaming service node, and control the establishment of a third stream split between the target streaming service node and the playback terminal; The first stream split between the signal source and the candidate pull stream service node, the second stream split between the candidate pull stream service node and the target push stream service node, and the third stream split between the target push stream service node and the playback terminal in the candidate stream link are determined as the target stream link.

4. The method according to claim 1, characterized in that, The process of establishing the target stream link based on the load status of each pull stream service node and each push stream service node includes: Based on the load status of each streaming service node, the target streaming service node with the lowest load index value is determined, and the first stream split is established between the signal source and the target streaming service node. Based on the load status of each streaming service node, the target streaming service node with the lowest load index value is determined, and a second stream split is established between the target streaming service node and the target streaming service node. The system controls the establishment of a third stream split between the target streaming service and the playback terminal, and determines the first stream split, the second stream split, and the third stream split as the target stream link.

5. The method according to any one of claims 1 to 4, characterized in that, The load status of each streaming service node includes: CPU utilization, memory utilization, network card speed, number of stream output channels, and number of stream input channels of the streaming service node; The load status of each streaming service node also includes: CPU utilization, memory utilization, network card speed, and number of streams transferred to the streaming service node.

6. A streaming media data distribution and transmission system, characterized in that, It includes a scheduling server and multiple signal sources, multiple pull streaming service nodes, multiple push streaming service nodes, and multiple playback terminals that are communicatively connected to the scheduling server; The signal source is used to provide streaming media data; The streaming service node periodically reports its load status to the scheduling server, which is used to pull streaming media data from the signal source through the first stream splitting between the signal source and the signal source. The push streaming service node periodically reports its load status to the scheduling server, which is used to pull streaming media data to the pull streaming service node through the second stream splitting between the push streaming service node and the pull streaming service node. The playback terminal is used to submit a streaming media data request for a specified signal source to the scheduling server, and to pull streaming media data to the streaming service node through a third bitstream splitter between the streaming service node and the streaming service node. The scheduling server is used to implement the streaming media data distribution and transmission method as described in any one of claims 1 to 5.

7. A streaming media data distribution and transmission device, characterized in that, include: The request receiving unit is used to obtain the signal source contained in the streaming media data request when it receives a streaming media data request from the playback terminal; The link determination unit is used to determine whether the signal source has established at least one external code stream link; The link multiplexing unit is used to acquire each code stream link and determine the target code stream link based on each code stream link when the link determination unit determines that the signal source has established at least one code stream link to the outside world. The link creation unit is used to establish a target stream link based on the load status of each pull stream service node and the load status of each push stream service node when the link judgment unit determines that the signal source has not established any external stream link. The target stream link is used to transmit the streaming media data of the signal source to the playback terminal; the load status of each pull stream service node is obtained by the pull stream service node periodically reporting, and the load status of each push stream service node is obtained by the push stream service node periodically reporting. The process by which the link multiplexing unit determines the target code stream link based on each code stream link includes: Obtain the load status of the push streaming service node in each stream link; the load status of the push streaming service node includes the number of stream output paths; Based on the load status of the push service nodes in each stream link, the candidate push service node with the fewest stream outgoing paths and the candidate stream link corresponding to the candidate push service node are determined. Determine whether the number of stream output paths of the candidate push streaming service node is less than a first preset threshold; if: A third stream split is established between the candidate push service node and the playback terminal, and the first stream split between the signal source and the pull service node, the second stream split between the pull service node and the candidate push service node, and the third stream split between the candidate push service node and the playback terminal in the candidate stream link are determined as the target stream link; If not: The target stream link is obtained based on the load status of each stream link and the pull service node in each stream link.

8. An electronic device, characterized in that, include: Memory and processor; The memory is used to store programs; The processor is used to execute the program to implement each step of the streaming media data distribution and transmission method as described in any one of claims 1 to 5.

9. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements each step of the streaming media data distribution and transmission method as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • Stream service node scheduling method and device, and scheduling node

    CN108307198A

  • Candidate streaming media determination method and device, candidate streaming media load balancing method and device, server and medium

    CN114244848A