Live broadcast back-to-source stream pulling method and system, storage medium and electronic equipment
By using multiple stream pulling nodes in the live streaming system to pull back the source stream and perform combined processing, the problem of live streaming instability caused by network jitter or data congestion in a single stream pulling link is solved, and a stable live streaming output and an improved user experience is achieved.
Patent Information
- Application Number
- CN202510450746.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-11
- Publication Date
- 2025-05-13
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
In traditional streaming and streaming solutions, when a single streaming link experiences network jitter or data congestion, the live streaming transmission is unstable and the user's viewing experience is affected.
Multiple stream pulling nodes are used to pull multiple return source streams from the live stream source station, inject these return source streams into the internal transmission system, and then use the combined nodes to combine to output a stable live data stream.
Through the confluence processing of multiple return source streams, the instability of a single pull-through link is avoided, the stable transmission of live data streams is ensured, and the user's viewing experience is improved.
Smart Images

Figure CN119996732A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of live broadcast technology, and in particular to a live broadcast source streaming method and system, a storage medium and an electronic device. Background Art
[0002] With the rapid development of Internet technology and mobile communication technology, real-time audio and video live broadcast has become a core application scenario in the fields of social entertainment, online education, e-commerce sales, game competition, etc. As the key link of audio and video data transmission, the stability of live streaming and push streaming directly affects the viewing experience of end users.
[0003] Traditional push and pull streaming solutions usually use a single pull streaming link to transmit audio and video data. However, when a single pull streaming link experiences occasional network jitter or data congestion, the live streaming transmission may become unstable or even disconnected and reconnected, causing the live streaming watched by users to become stuck, the screen may jump, or even go black, greatly affecting the user's viewing experience. Summary of the invention
[0004] In view of this, an embodiment of the present application provides a live broadcast back-to-source streaming solution, which uses multiple streaming nodes to pull back-to-source streams from a live broadcast source station, injects multiple back-to-source streams into an internal transmission system, and then uses a converging node to obtain multiple back-to-source streams from the internal transmission system, and merges the multiple back-to-source streams, thereby outputting a stable live broadcast data stream, avoiding problems with a single streaming link that lead to unstable live broadcast transmission and disconnection and reconnection, and providing users with a good live broadcast viewing experience.
[0005] To achieve the above objectives, the present application provides the following technical solutions:
[0006] A first aspect discloses a live streaming back-source pulling method, comprising:
[0007] Generate a stream pulling task, and configure a first task parameter for the stream pulling task;
[0008] Determine each target stream pulling node based on the first task parameter;
[0009] The stream pulling task is issued to each of the target stream pulling nodes, so that each of the target stream pulling nodes injects the back-source stream obtained by pulling the stream into a preset internal transmission network; the back-source stream is the live stream pulled by the target stream pulling node from the live stream source station corresponding to the stream pulling task;
[0010] Generate a merging task corresponding to the pulling task, and configure a second task parameter for the merging task;
[0011] A target confluence node is assigned to the confluence task, and the confluence task is sent to the target confluence node, so that the target confluence node determines each target return source flow in the internal transmission network based on the second task parameter of the confluence task, and performs confluence processing on each of the target return source flows to output a live data stream.
[0012] In the above method, optionally, determining each target stream pulling node based on the first task parameter includes:
[0013] Send streaming quality evaluation requests to each streaming node in each region;
[0014] Obtaining an evaluation result of each of the stream pulling nodes based on the stream pulling quality evaluation request feedback;
[0015] Determine the pull flow node corresponding to the good evaluation result as the first pull flow node;
[0016] Based on the number of stream pulling nodes in the first task parameter, target stream pulling nodes are selected from the first stream pulling nodes, and the target stream pulling nodes are located in different regions and have different service providers.
[0017] The above method may optionally include causing each of the target stream pulling nodes to inject the back-to-source stream obtained by pulling the stream into a preset internal transmission network, including:
[0018] For each of the target stream pulling nodes, trigger the target stream pulling node and the live stream source station corresponding to the stream pulling task to establish a stream pulling link, pull the return stream of the live stream source station through the stream pulling link, add the internal transmission address corresponding to the target stream pulling node to the return stream, and then inject it into the preset internal transmission network.
[0019] In the above method, optionally, enabling the target confluence node to determine each target back-to-source flow in the internal transmission network based on the second task parameter of the confluence task includes:
[0020] The target confluence node is triggered to initiate a subscription request to the internal transmission network based on the second task parameter of the confluence task, so as to obtain each target back-to-source flow corresponding to the subscription request from the internal transmission network.
[0021] In the above method, optionally, the step of combining the target back-to-source flows and outputting the live data flow includes:
[0022] The target confluence node receives each video frame transmitted by each target back-to-source stream;
[0023] For each of the video frames, when the video frame does not meet the preset delay discarding condition and the target confluence node has never obtained a video frame identical to the video frame, the target confluence node stores the video frame in a preset cache queue; otherwise, the target confluence node performs a frame discarding operation;
[0024] The target merging node uses the video frames in the cache queue to output a live data stream.
[0025] The above method may optionally further include:
[0026] Based on a preset detection cycle, sending a stream pulling quality detection request to each of the target stream pulling nodes;
[0027] Obtaining the detection result of each target stream pulling node;
[0028] When there is a detection result characterized as poor, a new target stream pulling node is selected to replace the target stream pulling node corresponding to the detection result characterized as poor;
[0029] The stream pulling task is sent to the replaced target stream pulling node, so that the replaced target stream pulling node injects the back-to-source stream obtained by pulling the stream into the internal transmission network.
[0030] The above method may optionally further include:
[0031] Based on the replaced target stream pulling node, a stream pulling node update notification is sent to the target stream converging node, so that the target converging node re-determines each target back-to-source flow in the internal transmission network based on the stream pulling node update notification.
[0032] A second aspect discloses a live streaming back-to-source streaming system, including:
[0033] Live broadcast scheduling center, multiple streaming nodes and at least one merging node;
[0034] The live broadcast scheduling center is used to generate a stream pulling task and configure a first task parameter for the stream pulling task; determine each target stream pulling node in each stream pulling node based on the first task parameter; issue the stream pulling task to each target stream pulling node; after each target stream pulling node injects the live stream pulled from the live stream source station corresponding to the stream pulling task as a back-source stream into a preset internal transmission network, generate a merging task corresponding to the stream pulling task and configure a second task parameter for the merging task; assign a target merging node to the merging task in each merging node, and issue the merging task to the target merging node;
[0035] The target confluence node is used to determine each target back-to-source flow in the internal transmission network based on the second task parameter of the confluence task, and perform confluence processing on each target back-to-source flow to output a live data stream.
[0036] In the above system, optionally, the process of determining each target stream pulling node among each stream pulling node based on the first task parameter includes:
[0037] Send streaming quality evaluation requests to each streaming node in each region;
[0038] Obtaining an evaluation result of each of the stream pulling nodes based on the stream pulling quality evaluation request feedback;
[0039] Determine the pull flow node corresponding to the good evaluation result as the first pull flow node;
[0040] Based on the number of stream pulling nodes in the first task parameter, target stream pulling nodes are selected from the first stream pulling nodes, and the target stream pulling nodes are located in different regions and have different service providers.
[0041] In the above system, optionally, the process of injecting the live stream pulled by the target stream pulling node from the live stream source station corresponding to the stream pulling task as the back-source stream into the preset internal transmission network includes:
[0042] For each of the target stream pulling nodes, trigger the target stream pulling node and the live stream source station corresponding to the stream pulling task to establish a stream pulling link, pull the return stream of the live stream source station through the stream pulling link, add the internal transmission address corresponding to the target stream pulling node to the return stream, and then inject it into the preset internal transmission network.
[0043] In the above system, optionally, the process of determining each target back-to-source flow in the internal transmission network based on the second task parameter of the merging task includes:
[0044] The target confluence node is triggered to initiate a subscription request to the internal transmission network based on the second task parameter of the confluence task, so as to obtain each target back-to-source flow corresponding to the subscription request from the internal transmission network.
[0045] In the above system, optionally, the process of combining the target back-to-source flows and outputting the live data flow includes:
[0046] The target confluence node receives each video frame transmitted by each target back-to-source stream;
[0047] For each of the video frames, when the video frame does not meet the preset delay discarding condition and the target confluence node has never obtained a video frame identical to the video frame, the target confluence node stores the video frame in the cache queue; otherwise, the target confluence node performs a frame discarding operation;
[0048] The target merging node uses the video frames in the cache queue to output a live data stream.
[0049] In the above system, optionally, the live broadcast scheduling center further performs the following operations:
[0050] Based on a preset detection cycle, sending a stream pulling quality detection request to each of the target stream pulling nodes;
[0051] Obtaining the detection result of each target stream pulling node;
[0052] When there is a detection result characterized as poor, a new target stream pulling node is selected to replace the target stream pulling node corresponding to the detection result characterized as poor;
[0053] The stream pulling task is sent to the replaced target stream pulling node, so that the replaced target stream pulling node injects the back-to-source stream obtained by pulling the stream into the internal transmission network.
[0054] In the above system, optionally, the live broadcast scheduling center further performs the following operations:
[0055] Based on the replaced target stream pulling node, a stream pulling node update notification is sent to the target stream converging node, so that the target converging node re-determines each target back-to-source flow in the internal transmission network based on the stream pulling node update notification.
[0056] A third aspect discloses a storage medium, which includes stored instructions, wherein when the instructions are executed, a device where the storage medium is located is controlled to execute the live broadcast source pulling method as described above.
[0057] A fourth aspect discloses an electronic device, comprising a memory, and one or more instructions, wherein the one or more instructions are stored in the memory and configured to be executed by one or more processors to implement the live broadcast back-to-source streaming method as described above.
[0058] Compared with the prior art, this application has the following advantages:
[0059] The present application provides a live streaming back-to-source streaming method and system, storage medium and electronic device, configures a first task parameter for a generated streaming task, determines each target streaming node for the streaming task, issues a streaming task to each target streaming node, so that the target streaming node injects the back-to-source stream pulled from the live streaming source station corresponding to the streaming task into a preset internal transmission network; generates a confluence task, assigns a target confluence node to the confluence task, and sends the confluence task to the target confluence node, so that the target confluence node determines each target back-to-source stream from the internal transmission network, and then performs confluence processing on each target back-to-source stream to output a live streaming data stream. The present application obtains a stable live streaming data stream by pulling multiple back-to-source streams and confluence processing on the multiple back-to-source streams, thereby avoiding the redundancy of data of other back-to-source streams when a single back-to-source stream is due to network jitter or data congestion, solving the problem of unstable live streaming transmission caused by network jitter of a single back-to-source stream, and there is no need to perform link switching when there is network jitter or data congestion, thereby ensuring that the live streaming data is not interrupted, providing users with a good live streaming viewing experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0060] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.
[0061] Figure 1 A method flow chart of a live streaming back-to-source streaming method provided in an embodiment of the present application;
[0062] Figure 2 An example diagram of a process for determining each target stream pulling node based on a first task parameter provided in an embodiment of the present application;
[0063] Figure 3 A flowchart for monitoring each target streaming node provided in an embodiment of the present application;
[0064] Figure 4 A schematic diagram of the system structure of a live streaming back-to-source streaming system provided in an embodiment of the present application;
[0065] Figure 5 A flowchart of another live streaming back-to-source streaming method provided in an embodiment of the present application;
[0066] Figure 6 This is an example diagram of a scenario application of the live broadcast back-to-source streaming system provided in an embodiment of the present application;
[0067] Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0068] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0069] In this application, the terms "comprises", "comprising" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising the element.
[0070] Terminology explanation:
[0071] GOP group: Group of Pictures, also known as image group, is a group of continuous image frames in video encoding, starting with an I frame (key frame) and containing subsequent P frames (forward prediction frames) and B frames (bidirectional prediction frames).
[0072] ISP: Internet Service Provider, network service provider or service provider.
[0073] In recent years, the scale of live broadcasting has experienced explosive growth. All walks of life have realized their value through live broadcasting to varying degrees. All kinds of apps have basically developed live broadcasting-related functions and opened live broadcasting traffic portals. At the same time, a variety of vertical live broadcasting platforms have also emerged. However, not every platform has the time, energy, financial resources or technical capabilities to access, manage and distribute numerous live broadcasting media streams. Handing over the media streams to a third-party commercial cloud platform for hosting is a convenient, labor-saving and economical option. When the business needs to reprocess and create the live broadcasting stream, it only needs to pull the stream back to the live broadcasting service center for processing. After completion, the stream will be pushed back to the third-party platform for content distribution and playback.
[0074] At present, both the push client and the pull stream playback client have technical solutions to ensure the quality of media stream transmission through multiple optional communication links. In the push client, the push end with abundant resources can push the live stream to multiple third-party commercial cloud platforms at the same time, and select a main platform by default for push streaming, pull stream back to the source, distribution, and playback. When the main link has network jitter or data congestion, the live service center can actively switch to the backup platform to pull the stream back to the source, or the playback client can actively or automatically select the playback line to trigger the source back to the backup platform, thereby effectively avoiding the instability of live stream transmission or even disconnection and reconnection caused by occasional network jitter or data congestion of a single push link. Since the push operation belongs to the upstream of the live link, the push quality directly affects the viewing experience of the entire live broadcast. In the pull stream playback client, multiple playback lines are opened for users to choose. When the default line and the default bit rate level are stuck, the network quality perceived by the player is notified to the user, and the user decides whether to reduce the bit rate level or switch the playback line, giving the decision-making power to the user.
[0075] In the above technical solution, whether it is a streaming push client or a streaming pull client, when the main link has network fluctuations or data congestion, it is simply and roughly switched to the backup link to re-push and pull the stream, resulting in data interruption and discontinuity of the live media stream. In particular, when the streaming push client adopts this rough method, it is easy to cause each user to watch the live broadcast to experience freezes, picture jumps or even black screens, which greatly affects the user's viewing experience.
[0076] In order to solve the problems mentioned above and in the background technology, the present application provides a live broadcast back-to-source streaming solution, which uses multiple target stream pulling nodes to pull multiple back-to-source streams from the live broadcast source station, injects the pulled multiple back-to-source streams into a preset internal transmission network, and then uses the target confluence node to obtain the multiple back-to-source streams through the internal transmission network, and then performs confluence processing on the obtained multiple back-to-source streams to output the live broadcast data stream. It effectively avoids problems such as freezes and screen jumps in live broadcasts caused by network fluctuations in a single link, and by pulling multiple back-to-source streams, a stable live broadcast data stream is synthesized without link switching, thereby ensuring that the live broadcast data is not interrupted and the user has a good live viewing experience.
[0077] The present application can be applied to a live broadcast back-to-source streaming system, which includes a live broadcast scheduling center, multiple streaming nodes and at least one merging node; wherein the live broadcast scheduling center, the streaming nodes and the merging nodes are all devices assembled using computer-related devices.
[0078] Reference Figure 1 , is a method flow chart of a live broadcast source back-to-source streaming method provided in an embodiment of the present application. The method is applied to a live broadcast scheduling center in a live broadcast source back-to-source streaming system. The relevant description of the method is as follows:
[0079] S101: Generate a stream pulling task and configure a first task parameter for the stream pulling task.
[0080] The live broadcast dispatch center generates the streaming tasks for the live stream source stations. Different live stream source stations correspond to different streaming tasks.
[0081] The live broadcast scheduling center configures the first task parameters for the generated stream pulling task. The first task parameters include but are not limited to the number of stream pulling nodes, the size of the cache queue, the frame loss strategy, and the like.
[0082] The number of stream pulling nodes can be determined according to the network bandwidth information of the live stream source station; the size of the cache queue can be determined according to the real-time requirements of the live stream source station. Furthermore, the smaller the cache queue, the higher the real-time requirements, and the larger the cache queue, the lower the real-time requirements. For example, the live stream source station is the source station for live broadcast with microphones connected. When the delay exceeds 400ms, the microphone connection experience will deteriorate. Therefore, a cache queue of more than 400ms cannot be established during converging. The size of the cache queue can be calculated according to the number of frames. The number of cached frames is determined according to the frame rate of the live stream and the length of time the live stream needs to be cached, thereby determining the size of the cache queue; the frame loss strategy includes a strategy for dropping frames when the network is abnormal, thereby ensuring the stability of the output live data stream and the smoothness of the live broadcast.
[0083] Furthermore, in order to ensure the smoothness of the live broadcast picture, when actively discarding video frames to ensure the smoothness of the live broadcast picture, priority is given to ensuring audio transmission and not triggering screen distortion, popping sounds, and audio and video asynchrony problems. There are three types of video frame dropping strategies, and different frame dropping methods are applied to different live broadcast types. The first frame dropping method is: discarding B frames, non-reference frames, and the tail P frames in the GOP group. This discarding method will not cause screen distortion. The second frame dropping method is: discarding all frames in the GOP group except key frames. This discarding method will not cause screen distortion but will cause a short period of screen stagnation. The third frame dropping method is: directly discarding the entire GOP group or directly clearing the cache queue. This discarding method may cause screen distortion.
[0084] Different frame dropping methods are suitable for different live broadcast types. The first frame dropping method is suitable for live broadcast types with less high real-time requirements, such as commercial performances and TV programs. That is, this frame dropping method is suitable for live broadcast types with low real-time requirements. This dropping method needs to discard B frames, non-reference frames and the tail P frames in the GOP group; there are B frames that require bidirectional reference inside the live stream, and the cache queue is relatively large. As long as the frames can be decoded normally, no frame dropping is performed; the second dropping method is suitable for live broadcast scenarios with high real-time requirements but non-microphone interaction, such as shopping and selling types. Even if it is used for live broadcast types with high real-time requirements but non-microphone interaction, this dropping method needs to discard all frames in the GOP group except key frames to ensure that the live broadcast screen is not black; the third dropping method is suitable for live broadcast types with high real-time requirements, such as live broadcast with microphones. The cache queue established for this type of live broadcast is relatively small. When the cache queue is full and exceeds a certain delay, the delayed live broadcast data needs to be discarded in the entire GOP group.
[0085] It should be noted that the live stream generated by the live stream source station is composed of multiple continuous GOP groups, and the GOP group includes I frames, P frames and B frames.
[0086] S102: Determine each target stream pulling node based on the first task parameter.
[0087] The target stream pulling nodes are determined according to the number of stream pulling nodes in the first task parameter, and the number of the determined target stream pulling nodes is equal to the number of stream pulling nodes in the first task parameter.
[0088] Furthermore, each target stream pulling node has a different Internet service provider, and each target stream pulling node is a stream pulling node in a different region. For example, each target stream pulling node is A, B, and C, where the region of target stream pulling node A is 1, the Internet service provider is a, the region of target stream pulling node is 2, the Internet service provider is b, and the region of target stream pulling node is 3, the Internet service provider is c.
[0089] The region in this application can be understood as the working area where the stream pulling node is located, and each region has multiple stream pulling nodes.
[0090] Preferably, when determining each target streaming node, priority is given to the region. First, a target streaming node is determined among each streaming node in the same region as the live stream source station. Then, a target streaming node is determined among each streaming node in an region adjacent to the live stream source station. Finally, a target streaming node is determined among each streaming node in the region closest to the live broadcast scheduling center or in the same region. At this point, each target streaming node can be determined.
[0091] S103, issuing a stream pulling task to each target stream pulling node, so that each target stream pulling node injects the back-to-source stream obtained by pulling the stream into a preset internal transmission network; the back-to-source stream is the live stream pulled by the target stream pulling node from the live stream source station corresponding to the stream pulling task.
[0092] After determining each target stream pulling node, the stream pulling task is sent to each target stream pulling node, thereby triggering each target stream pulling node to start streaming, triggering the target stream pulling node and the live stream source station to establish a stream pulling link, and pulling the return stream of the live stream source station through the stream pulling link. After adding the internal transmission address corresponding to the target stream pulling node to the return stream, it is injected into the preset internal transmission network.
[0093] Before injecting the return flow into the internal transmission network, the target stream pulling node assigns an internal transmission address in the internal transmission network to the return flow, adds the internal transmission address to the return flow and then injects it into the internal transmission network. The internal transmission address is unique in the internal transmission network.
[0094] The internal transmission network of this application is a self-built network, which can be built using a self-developed private transmission protocol. The internal transmission network can be understood as the internal transmission and distribution network of the live broadcast back-source streaming system, and has the function of a content delivery network (CDN).
[0095] In the solution provided in the present application, the stream is pulled simultaneously through the stream pulling nodes in multiple different regions and different ISPs, and by integrating the existing server resources and combining with the intelligent scheduling system to dynamically select multiple service nodes in different regions and different ISP server nodes and with stable network connections with the live stream source station, multiple different communication links are established, thereby effectively avoiding the occurrence of unstable stream pulling caused by network fluctuations or even disconnection in a single link.
[0096] S104: Generate a merging task corresponding to the stream pulling task, and configure a second task parameter for the merging task.
[0097] The second task parameters include the first task parameters and back-to-source flow information. For the related description of the first task parameters, refer to the related description in S101 and will not be repeated here.
[0098] The source stream information includes the source stream pull address of each target stream pull node, the internal transmission address in the internal transmission network, the source stream name, etc. Furthermore, the source stream pull address of the target stream pull node is the address of the live stream source station.
[0099] When the solution of the present application is applied to a scenario where multiple merge tasks are executed in parallel, a merge node needs to be generated for each stream pulling task, that is, the stream pulling tasks correspond one to one to the merge tasks.
[0100] S105: Allocate a target confluence node for the confluence task, and send the confluence task to the target confluence node, so that the target confluence node determines each target back-to-source flow in the internal transmission network based on the second task parameter of the confluence task, and performs confluence processing on each target back-to-source flow to output a live data stream.
[0101] A target confluence node is assigned to the confluence task, and the confluence task is sent to the target confluence node, so that the target confluence node starts the confluence work.
[0102] The target confluence node initiates a subscription request to the internal transmission network based on the second task parameter of the confluence task to obtain each target back-to-source flow corresponding to the subscription request from the internal transmission network, and then merges each target back-to-source flow to obtain a stable live data stream.
[0103] Preferably, the target confluence node generates a subscription request based on the internal transmission address of the source flow of each target confluence node in the second task parameter of the confluence task, so that the subscription request includes the internal transmission address of the source flow of each target pulling node in the internal transmission network, and subscribes to each target source flow in the internal transmission network, and the target source flow corresponds one-to-one to the internal transmission address in the subscription request.
[0104] Furthermore, after the target confluence node determines each target back-to-source flow in the internal transmission network, the target confluence node receives each video frame transmitted by each target back-to-source flow; for each video frame, when the video frame does not meet the preset delay discarding condition and the target confluence node has never obtained a video frame identical to the video frame, the target confluence node stores the video frame in the cache queue; otherwise, the target confluence node performs a frame discarding operation; the target confluence node uses the video frames in the cache queue to output the live data stream.
[0105] Furthermore, when the target confluence node has obtained a video frame identical to the video frame, it means that the video frame is not obtained for the first time, and the video frame is discarded at this time; when the target confluence node has not yet obtained a video frame identical to the video frame, it means that the target confluence node has obtained the video frame for the first time. At this time, it is necessary to determine whether the video frame meets the preset delayed discarding condition. When it does, the target confluence node performs a frame discarding operation. When it does not, the video frame is saved in the cache queue.
[0106] The process of determining whether the video frame meets the delay discarding condition is as follows:
[0107] (1) When the cache queue is full and each video frame in the cache queue cannot be decoded into a complete video picture, it is determined that the video frame meets the delay discarding condition.
[0108] At this time, the target confluence node uses the video frame drop strategy to perform a frame drop operation on the cache queue; the process of the target confluence node using the video frame drop strategy to perform a frame drop operation on the cache queue is as follows: (a) When the live stream source station is a live broadcast type with low real-time performance, it is determined that the B frames, non-reference frames and tail P frames in each GOP group in the cache queue are all discarded. It should be noted that after the cache queue is subjected to frame drop processing, the currently received video frame is stored in the cache queue; (b) When the live stream source station is a live broadcast type with high real-time performance but not interactive, all non-key frames in each GOP group in the cache queue are discarded, that is, only the key frames in the GOP group are retained; it should be noted that after the cache queue is subjected to frame drop processing, the currently received video frame is stored in the cache queue; (c) When the live stream source station is a live broadcast type with high real-time requirements, the cache queue is cleared, and then the video frame is stored in the cache queue.
[0109] (2) When the cache queue is full and each video frame in the cache queue can be decoded into a complete video picture, the video frame meets the delay discarding condition. At this time, the target cache queue of the target converging node discards the video frame;
[0110] (3) When the cache queue is not full, it is determined that the video frame does not meet the delay discarding condition.
[0111] The solution provided in this application uses an independent convergence and confluence node, combines its own self-built network conditions, selects appropriate protocols and technology stacks, and converges multiple redundant back-source streams pulled to a confluence node for data stream merging. Compared with the traditional method of simply switching to a backup line, the solution provided in this application can make the audience end unaware of the jitter of the stream pulling network, providing stable high-quality transmission for live broadcast.
[0112] In the solution provided by the embodiment of the present application, the first task parameter is configured for the generated stream pulling task, each target stream pulling node is determined for the stream pulling task, and the stream pulling task is issued to each target stream pulling node, so that the target stream pulling node will inject the return source stream pulled from the live stream source station corresponding to the stream pulling task into the preset internal transmission network; a confluence task is generated, a target confluence node is assigned to the confluence task, and the confluence task is sent to the target confluence node, so that the target confluence node determines each target return source stream from the internal transmission network, and then performs confluence processing on each target return source stream to output the live data stream. The present application obtains a stable live data stream by pulling multiple return source streams and confluence processing on the multiple return source streams, thereby avoiding the unstable live stream transmission caused by a single return source stream due to network jitter or data congestion, and there is no need to perform link switching when the network is jittering or data congestion, thereby ensuring that the live data is not interrupted, providing users with a good live viewing experience.
[0113] Reference Figure 2, is a flowchart of determining each target stream pulling node based on the first task parameter provided in an embodiment of the present application, and is specifically described as follows:
[0114] S201. Send a streaming quality evaluation request to each streaming node in each area.
[0115] The area of this application is a divided geographical space range, such as a province as a region, or a city as a region, which is convenient for managing each stream pulling node, each converging node and each live stream source station.
[0116] There are multiple stream pulling nodes in different areas, and the stream pulling quality evaluation request is used to trigger the stream pulling node to perform stream pulling evaluation.
[0117] S202: Obtain the evaluation result of each stream pulling node based on the stream pulling quality evaluation request feedback.
[0118] After receiving the stream pulling quality evaluation request, the stream pulling node evaluates its own stream pulling quality to generate an evaluation result.
[0119] S203: Determine the stream pulling node corresponding to the good evaluation result as the first stream pulling node.
[0120] When the evaluation result is good, it means that the stream pulling node is a healthy stream pulling node, and the stream pulling node is used as the first stream pulling node; when the evaluation result is poor, it means that the stream pulling node is an unhealthy stream pulling node. At this time, the stream pulling node is not used as the first stream pulling node, thereby avoiding the use of unhealthy stream pulling nodes to pull streams and ensuring the stability of stream pulling.
[0121] S204: Based on the number of stream pulling nodes in the first task parameter, select target stream pulling nodes from the first stream pulling nodes, where the target stream pulling nodes have different regions and service providers.
[0122] Target stream pulling nodes satisfying the number of stream pulling nodes are selected from the first stream pulling nodes, and the regions and service providers of the selected target stream pulling nodes are different.
[0123] The method provided by the present application selects healthy stream pulling nodes as target stream pulling nodes, and pulls back source streams from stream pulling nodes of multiple regions and different service providers. When a service provider is unable to provide services or a crisis occurs in a certain region, other service providers or stream pulling nodes of other regions can be used to continue pulling streams, thereby ensuring that a single point failure does not affect the overall service, ensuring that the source stream can be continuously pulled back, and improving the system's risk resistance. Selecting stream pulling nodes of different regions and different ISP operators (i.e., service providers) is to establish different physical stream pulling links, so that the intermediate nodes of each stream pulling physical link are different, thereby avoiding the entire live broadcast experience being affected by problems with a certain transmission node in the middle.
[0124] By detecting the streaming quality of each target streaming node, this application can promptly remove the streaming nodes with unhealthy operating status, reselect the streaming nodes with good operating status as substitutes, dynamically adjust the target streaming nodes of the streaming task, achieve real-time and fast network transmission quality perception and network switching, and improve the stability of live broadcast.
[0125] In another embodiment provided by the present application, after determining each target stream pulling node, the stream pulling quality of each target stream pulling node will continue to be monitored. When an unhealthy target stream pulling node appears, the unhealthy target stream pulling node will be eliminated, and a new target stream pulling node will be added. The new target stream pulling node will be used to pull the stream, and the various target return source streams obtained by the converging node in the internal transmission network will be updated. The converging node will merge the updated target return source streams into a live data stream.
[0126] Reference Figure 3 , which is a flowchart for monitoring each target streaming node provided in an embodiment of the present application, is specifically described as follows:
[0127] S301: Based on a preset detection cycle, a stream pulling quality detection request is sent to each target stream pulling node.
[0128] The detection cycle can be set according to actual needs. For example, if a detection cycle is 5 seconds, a stream quality detection request is sent to each target stream pulling node every 5 seconds. The stream quality detection request is used to trigger the target stream pulling node to perform stream quality detection.
[0129] S302: Obtain the detection result of each target stream pulling node.
[0130] After the target stream pulling node performs the stream pulling quality test, a test result is generated. Furthermore, when the test result is characterized as poor, it means that the stream pulling quality of the target stream pulling node corresponding to the test result is poor, and the target stream pulling node is in an unhealthy state; when the test result is characterized as good, it means that the stream pulling quality of the target stream pulling node corresponding to the test result is good, and the target stream pulling node is in a healthy state.
[0131] S303: When there is a detection result characterized as poor, a new target stream pulling node is selected to replace the target stream pulling node corresponding to the detection result characterized as poor.
[0132] When there is a poor test result among the test results, the target stream pulling node corresponding to the poor test result needs to be removed, and a new target stream pulling node is selected to replace the target stream pulling node corresponding to the poor test result.
[0133] Preferably, the region and service provider of the new target stream pulling node and the target stream pulling node corresponding to the detection result characterized as poor may be the same as or different from each other.
[0134] It should be noted that the region and service provider of the selected target stream pulling node and the target stream pulling node corresponding to the good detection result are different.
[0135] S304: Send a stream pulling task to the replaced target stream pulling node, so that the replaced target stream pulling node injects the back-to-source stream obtained by pulling the stream into the internal transmission network.
[0136] Here, the replaced target stream pulling node is the new target stream pulling node. The purpose of sending the stream pulling task to the replaced target stream pulling node is to enable the replaced target stream pulling node to start stream pulling.
[0137] The stream pulling process of the replaced target stream pulling node can refer to the above description of the stream pulling process of the target stream pulling node, which will not be repeated here.
[0138] S305: Based on the replaced target stream pulling node, a stream pulling node update notification is sent to the target stream converging node, so that the target converging node re-determines each target back-to-source flow in the internal transmission network based on the stream pulling node update notification.
[0139] The target stream pulling node has changed, so it is necessary to update each target source flow determined by the target converging node in the internal transmission network. The stream pulling node update notification contains the relevant information of the removed target stream pulling node and the relevant information of the replaced target stream pulling node, such as the internal transmission address of the source flow of the removed target stream pulling node in the internal transmission network and the internal transmission address of the source flow of the replaced target stream pulling node in the internal transmission network.
[0140] For the internal transmission address of the target stream pulling node that was removed in the stream pulling node update notification, the target converging node cancels the subscription to the source stream of the internal transmission address, and no longer obtains any data of the source stream. For the target stream pulling node that was replaced in the stream pulling node update notification, the target converging node subscribes to the source stream of the internal transmission address, thereby using the source stream as the target source stream, and then obtaining the data of the source stream.
[0141] Furthermore, after updating the target back-to-source stream, the target confluence node performs confluence processing on each updated back-to-source stream, thereby outputting a live data stream.
[0142] In the method provided in the embodiment of the present application, by periodically detecting the stream pulling quality of each target stream pulling node, unhealthy target stream pulling nodes can be eliminated in a timely manner to ensure that healthy target stream pulling nodes are used for stream pulling, thereby avoiding interruption of the back-to-source stream and data loss due to poor stream pulling quality of the target stream pulling nodes, and ensuring the stability of the data of the pulled back-to-source stream.
[0143] Reference Figure 4 , is a schematic diagram of the system structure of a live streaming back-to-source streaming system provided in an embodiment of the present application, and is specifically described as follows:
[0144] A live broadcast scheduling center, n stream pulling nodes and m stream merging nodes, n and m are both positive integers, and preferably, the values of n and m are greater than or equal to 2.
[0145] The live broadcast scheduling center is used to generate a stream pulling task and configure a first task parameter for the stream pulling task; determine each target stream pulling node in each stream pulling node based on the first task parameter; issue the stream pulling task to each target stream pulling node; after each target stream pulling node injects the live stream pulled from the live stream source station corresponding to the stream pulling task as a back-source stream into a preset internal transmission network, generate a confluence task corresponding to the stream pulling task and configure a second task parameter for the confluence task; allocate a target confluence node to the confluence task in each confluence node, and issue the confluence task to the target confluence node;
[0146] The target confluence node is used to determine each target back-to-source flow in the internal transmission network based on the second task parameter of the confluence task, and perform confluence processing on each target back-to-source flow to output a live data stream.
[0147] The relevant work contents of the live broadcast scheduling, streaming nodes and merging nodes in the live broadcast back-to-source streaming system provided in this application can be referred to the above description and will not be described here.
[0148] The live streaming back-to-source streaming system provided by the present application uses multiple target streaming nodes to pull multiple back-to-source streams from the live streaming source station, and injects the pulled multiple back-to-source streams into the internal transmission network, and then uses the target confluence node to determine each target back-to-source stream in the internal transmission network, and performs confluence processing on each target back-to-source stream, and outputs the merged live streaming data stream. By using multiple streaming nodes to pull multiple back-to-source streams, and confluence multiple back-to-source streams into a stable live streaming data stream, it is possible to avoid the situation where the pulled back-to-source stream is interrupted or data is missing due to link network anomalies when there is a single back-to-source stream, avoid the situation where live streaming data is interrupted or the screen is stuck, and improve the user's experience of watching live streaming.
[0149] Reference Figure 5 , which is a flowchart of another live streaming back-source streaming method provided in an embodiment of the present application, and also shows Figure 4 The data interaction process between the live broadcast scheduling center, the streaming node, and the merging node in the live broadcast back-to-source streaming system shown in the figure. Figure 5 The relevant instructions are as follows:
[0150] S501: Generate a stream pulling task and configure a first task parameter for the stream pulling task.
[0151] The live broadcast scheduling center generates a stream pulling task and configures the first task parameter for the stream pulling task.
[0152] S502: Send a stream quality evaluation request.
[0153] The live broadcast scheduling center sends a stream quality evaluation request to the stream pulling node, thereby triggering the stream pulling node to perform stream quality evaluation and generate an evaluation result.
[0154] In the present application, a stream pulling quality evaluation request is sent to each stream pulling node, so that each stream pulling node performs a stream pulling quality evaluation.
[0155] S503. Feedback the evaluation results.
[0156] The streaming node feeds back the evaluation results to the live broadcast dispatch center.
[0157] S504: When the evaluation result indicates that it is good, the stream pulling node is determined as the target stream pulling node, and a stream pulling task is sent to it.
[0158] When the evaluation result of the stream pulling node is good, the stream pulling node is determined as the target stream pulling node, and the stream pulling task is sent to the stream pulling node; when the evaluation result of the stream pulling node is poor, the stream pulling node is not determined as the target stream pulling node.
[0159] S505: Inject the back-to-source stream pulled from the live stream source station into the internal transmission network.
[0160] After receiving the stream pulling task, the stream pulling node starts the stream pulling, adds the internal transmission address to the back-to-source stream pulled from the live stream source station, and injects it into the internal transmission network.
[0161] S506: Generate a merging task and allocate a merging node to the merging task.
[0162] The live broadcast scheduling center generates a merging task and allocates a merging node to the merging task. Preferably, the merging node allocated to the merging task can be used as a target merging node.
[0163] S507: Send the merging task.
[0164] The live broadcast scheduling center sends the merging task to the merging node assigned to the merging task.
[0165] S508: Initiate a subscription request to the internal transmission network.
[0166] After receiving the confluence task, the confluence node initiates a subscription request to the internal transmission network. The subscription request includes various internal transmission addresses for subscription requests. Preferably, each internal transmission address in the subscription request is the internal transmission address of the source flow of each target pulling node corresponding to the pulling node.
[0167] S509: Send the video frames of each back-source stream corresponding to the subscription request.
[0168] The live broadcast scheduling center sends the video frames of each back-source stream corresponding to the subscription request to the converging node.
[0169] S510: Combine the video frames of the source streams corresponding to the subscription request to output a live data stream.
[0170] The confluence node confluences the video frames of each source stream corresponding to the subscription request and outputs the live data stream.
[0171] Preferably, when the video frames of each return stream are merged, for a certain frame in the live stream of the live stream source station, the merging node stores the earliest received video frame of the frame in the cache queue, and discards the subsequently received video frames of the frame, and then outputs the live data stream according to the various video frames in the cache queue.
[0172] Exemplarily, the confluence node subscribes to three back-to-source streams, namely, back-to-source stream 1 of stream pulling node 1, back-to-source stream 2 of stream pulling node 2, and back-to-source stream 3 of stream pulling node 3; for frame a in the live stream of the live stream source station, the confluence node first receives the video frame of frame a transmitted by back-to-source stream 2, then receives the video frame of frame a transmitted by back-to-source stream 3, and finally receives the video frame of frame a transmitted by back-to-source stream 1. At this time, the confluence node receives the video frame of frame a transmitted by back-to-source stream 2 first, so it saves the video frame of frame a transmitted by back-to-source stream 2 to the cache queue, and discards the video frames of frame a transmitted by back-to-source streams 3 and back-to-source 1; for frame b in the live stream of the live stream source station, the confluence node first receives the video frame of frame b transmitted by back-to-source stream 1, at this time, it stores the video frame of frame b transmitted by back-to-source stream 1 in the cache queue, and discards the video frames of frame b transmitted by back-to-source streams 2 and 3.
[0173] Different back-source streams may have different delays. Therefore, for the same video frame of the live stream of the live stream source station, the confluence node adopts a first-come-first-served and late-arrived confluence method. That is, for a certain frame of the live stream of the live stream source station, the video frame of the frame is obtained from different back-source streams, the first obtained video frame is stored in the cache queue, and the later obtained video frame is discarded, and then the video frame in the cache queue is used to output the live data stream. In this way, the data stability of the live data stream is guaranteed and data interruption is avoided.
[0174] S511. Send live data stream.
[0175] The confluence node sends the live data stream to the live scheduling center.
[0176] S512: Push the live data stream to the processing node.
[0177] The live broadcast scheduling center pushes the live broadcast data stream to the processing node; preferably, the confluence node can directly push the live broadcast data stream to the processing node.
[0178] The processing node distributes the live data stream to each live viewing terminal; preferably, the processing node can be a content distribution network or a node that further processes the live data stream.
[0179] S513: Send a stream quality detection request.
[0180] During the streaming process, the live broadcast scheduling center sends a streaming quality detection request to each target streaming node, thereby monitoring the streaming quality of each target streaming node.
[0181] S514. Feedback the test results.
[0182] After receiving the stream quality detection request, the target stream pulling node performs a stream quality detection, generates a detection result, and feeds the detection result back to the live broadcast scheduling center.
[0183] S515: Update the stream pulling node of the stream pulling task based on the detection result.
[0184] When there is no detection result indicated as poor, there is no need to replace the stream pulling node of the stream pulling task, and each stream pulling node of the stream pulling task continues to be monitored.
[0185] When there is a detection result that is expressed as poor, the stream pulling node corresponding to the detection result that is expressed as poor is eliminated, and a new stream pulling node is selected to replace the eliminated stream pulling node, and then a stream pulling task is sent to the new stream pulling node so that the new stream pulling node starts pulling streams. The new stream pulling node pulls the return source stream from the live stream source station, and adds a pre-assigned internal transmission address to the pulled return source stream and then inputs it into the internal transmission network; the live broadcast scheduling center sends a stream pulling node update notification to the converging node, so that the converging node subscribes to the return source of the new stream pulling node in the internal transmission network based on the stream pulling node update notification, and cancels the subscription to the return source of the eliminated stream pulling node, and then performs converging processing according to the subscribed return source streams to output the live data stream.
[0186] In the solution provided in the present application, multiple stream pulling nodes are used to pull multiple return source streams, so that when a single return source stream experiences network fluctuations or data congestion, other return source streams can still provide stable data, thereby ensuring stable transmission of live broadcast data, avoiding interruptions in live broadcast data, freezes, jumps or black screens in live broadcasts, and improving users' live broadcast viewing experience.
[0187] Reference Figure 6 , which is an example diagram of a scenario application of the live broadcast source back-to-source streaming system provided in an embodiment of the present application, and shows contents such as a live broadcast source station, a live broadcast source back-to-source streaming system, a content distribution network, and multiple viewer terminals.
[0188] The live streaming back-to-source streaming system pulls the live streaming from the live streaming source station, and outputs the live streaming data stream after the live streaming pulled from the live streaming source station. The live streaming data stream output by the live streaming back-to-source streaming system can be media processed, and then the media-processed live streaming data stream is distributed to each audience terminal through the content distribution network.
[0189] Generate a streaming task corresponding to the live streaming source station for the live streaming back-to-source streaming system, configure the first task parameter for the streaming task, trigger each streaming node to perform streaming quality detection, obtain the detection result fed back by each streaming node, and then select each target streaming node for the streaming task based on each detection result. The live streaming dispatch center sends the streaming task to each target streaming node.
[0190] After receiving the stream pulling task, each target stream pulling node starts pulling the stream. Each target stream pulling node pulls the live stream from the live stream source station, and adds the pulled live stream to the internal transmission address assigned to the target stream pulling node. The live stream after adding the internal transmission address is then input into the internal transmission network as the back-to-source stream.
[0191] The live broadcast scheduling center generates a merging task corresponding to the stream pulling task, configures a second task parameter for the merging task, allocates a target merging node for the merging task in each merging node, and sends the merging task to the target merging node.
[0192] After receiving the confluence task, the target confluence node initiates a subscription request to the internal transmission network. The subscription request contains the internal transmission address of the source flow of each target stream pulling node, so that the internal transmission network subscribes to the source flow corresponding to each internal transmission address in the subscription request. The subscribed source flow is the target source flow. The target confluence node merges the subscribed source flows to output the merged live data stream.
[0193] Furthermore, when the target converging node performs converging processing on each subscribed back-source stream, for any live frame in the live stream of the live stream source station, the target converging node obtains the video frame of the live frame through each subscribed back-source stream, stores the earliest obtained video frame in the cache queue, and discards the other video frames. For example, for the live frame K in the live stream of the live stream source station, the target converging node obtains the video frame of the live frame K through the subscribed back-source streams 1, 2 and 3, wherein the target converging node receives the video frame of the live frame K transmitted by the back-source stream 1 at the earliest, and stores the video frame in the cache queue. The video frame of the live frame K transmitted by the back-source streams 2 and 3 is transmitted later than the back-source stream 1, and the video frame of the live frame K transmitted by the back-source streams 2 and 3 is discarded. Therefore, the purpose of using multiple stream pulling nodes to pull the live stream of the same live broadcast for redundant stream pulling is to prevent network jitter when a single node pulls the stream, resulting in abnormalities in the subsequent live broadcast terminal or live broadcast screen.
[0194] When network jitter or data congestion occurs in the subscribed back-source streams, the target confluence node will also adopt a frame drop strategy to appropriately discard delayed video frames to ensure smooth live broadcasting. Furthermore, when the target confluence node outputs the live data stream, it will also perform key frame alignment and packet redundancy detection on the live data stream to ensure data stability and accuracy of the output live data stream.
[0195] The live broadcast scheduling center will also perform network detection on the internal transmission network, that is, it will monitor the quality of each target stream pulling node of the stream pulling task, and periodically send stream pulling quality detection requests to each target stream pulling node, so that each target stream pulling node will perform stream pulling quality detection. The live broadcast scheduling center determines whether there is an unhealthy target stream pulling node based on each detection result. When there is an unhealthy target stream pulling node, the unhealthy target stream pulling node will be eliminated, and a new target stream pulling node will be reselected to replace the unhealthy target stream pulling node, and a stream pulling task will be issued to the new target stream pulling node, so that the new target stream pulling node will inject the live stream pulled from the live stream source station as the back-source stream into the internal transmission network; among them, the target stream pulling node corresponding to the poor detection result is an unhealthy target stream pulling node.
[0196] When the target stream pulling node of the stream pulling task changes, the live broadcast scheduling center sends a stream pulling node update notification to the target converging node, so that the target converging node cancels the subscription to the source stream of the internal transmission address of the source stream of the target stream pulling node that is removed in the stream pulling node update notification; and subscribes to the source stream of the internal transmission address of the source stream of the new target stream pulling node in the stream pulling node update notification; so that the target converging node updates each subscribed source stream, and then performs converging processing on each updated source stream, thereby outputting the live broadcast data stream.
[0197] The solution provided in this application is intended to solve the problem of live streaming scenarios that require back-to-source streaming. Since the live streaming source station and the live streaming business service center are in two different networks, there are characteristics such as network heterogeneity, resource inequality and non-linkage. At the same time, the intermediate transmission network has uncertainty, instability and complexity, which may cause the occasional pulled live streaming data to be unstable or even disconnected.
[0198] In order to cope with different network conditions and improve the quality of streaming, the solution provided in this application adopts a series of technical strategies different from client-side streaming on the streaming server side. Redundant streaming is established through multiple different regions and different ISP nodes on the server side simultaneously with the live stream source station. Then, the internal transmission network is used to converge multiple redundant streams into one place for merging. Different parameter configurations are set according to the specific business type, demand background and network environment, such as data buffer size, frame loss strategy and the number of nodes pulling the stream at the same time. Finally, the merged live stream is processed for business and re-pushed to the content distribution network for distribution, so as to improve the overall live viewing experience.
[0199] In the solution provided by the present application, flexible business parameter settings can be performed, and different parameter options can be set according to the real-time requirements of different business types. First, network detection and real-time monitoring of the live stream source station and the stream pulling node are performed, and different stream pulling nodes and the number of stream pulling nodes are selected in real time according to different network environments to combat real-time network jitter changes. Then, multiple redundant return streams are converged and merged at the confluence node, and the first arriving video frame is used to merge into a complete live data stream.
[0200] This application sets different parameter configurations according to different live broadcast service types, resource status of each link node and network environment to achieve the best media stream transmission quality.
[0201] In the process of merging multiple return streams, the first arriving video frames are used to merge into a live data stream, and the subsequently arriving data frames are simply discarded. This can not only counteract the impact of network jitter on a single or multiple links, but also select the fastest and best link for live streaming transmission, while reducing latency, so that the back end of the live link, including the audience end, has no perception of the link switching action, avoiding freezes, picture jumps, or even black screens, improving the stability of live media streaming transmission, and thus improving the overall live viewing experience. In the solution provided in this application, when facing a return stream pulling environment with an extremely weak network environment, when multiple links of the pulling stream simultaneously experience an increase in RTT value, a higher packet loss rate, and a decrease in throughput, it is necessary to enable a frame loss strategy at the converged converging node. The worse the weak network environment, the more aggressive the frame loss strategy is, in order to ensure the continuity of the live picture. In addition, if the internal transmission network is not particularly perfect and is unable to achieve low-latency transmission of data across regions, provinces, or even cities, you can choose to implement the technical solution of the present invention in a single BGP computer room, with multiple ISP nodes in the same computer room initiating multiple communication links, and deploying the confluence nodes that aggregate data in the same computer room, shortening the overall data transmission link while saving the resource overhead caused by data transmission in the internal network.
[0202] Although the present invention depicts operations in a particular order, this should not be understood as requiring that the operations be performed in the particular order shown or in a sequential order.Multitasking and parallel processing may be advantageous under certain circumstances.
[0203] It should be understood that the various steps described in the method embodiments of the present disclosure may be performed in different orders and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this respect.
[0204] An embodiment of the present invention further provides a storage medium, which includes stored instructions, wherein when the instructions are executed, the device where the storage medium is located is controlled to execute the above-mentioned live broadcast source pulling method.
[0205] The embodiment of the present invention further provides an electronic device, the structural diagram of which is shown in FIG. Figure 7 As shown, it specifically includes a memory 601 and one or more instructions 602, wherein the one or more instructions 602 are stored in the memory 601 and are configured to be executed by one or more processors 603 to implement the above-mentioned live broadcast back-to-source streaming method.
[0206] It should be noted that the information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards in the relevant regions.
[0207] The specific implementation processes and derivative methods of the above-mentioned embodiments are all within the protection scope of the present invention.
[0208] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can refer to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system or system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can refer to the partial description of the method embodiment. The system and system embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without creative work.
[0209] Professionals may further 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 the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may 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.
[0210] The above description of the disclosed embodiments enables one skilled in the art to implement or use the present invention. Various modifications to these embodiments will be apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A live streaming back-to-source streaming method, characterized in that: include: Generate a stream pulling task, and configure a first task parameter for the stream pulling task; Determine each target stream pulling node based on the first task parameter; The stream pulling task is issued to each of the target stream pulling nodes, so that each of the target stream pulling nodes injects the back-to-source stream obtained by pulling the stream into a preset internal transmission network; The back-to-source stream is a live stream pulled by the target stream pulling node from the live stream source station corresponding to the stream pulling task; Generate a merging task corresponding to the pulling task, and configure a second task parameter for the merging task; A target confluence node is assigned to the confluence task, and the confluence task is sent to the target confluence node, so that the target confluence node determines each target return source flow in the internal transmission network based on the second task parameter of the confluence task, and performs confluence processing on each of the target return source flows to output a live data stream.
2. The method according to claim 1, characterized in that The determining each target stream pulling node based on the first task parameter includes: Send streaming quality evaluation requests to each streaming node in each region; Obtaining an evaluation result of each of the stream pulling nodes based on the stream pulling quality evaluation request feedback; Determine the pull flow node corresponding to the good evaluation result as the first pull flow node; Based on the number of stream pulling nodes in the first task parameter, target stream pulling nodes are selected from the first stream pulling nodes, and the target stream pulling nodes are located in different regions and have different service providers.
3. The method according to claim 1, characterized in that: The step of causing each of the target stream pulling nodes to inject the back-to-source stream obtained by pulling the stream into a preset internal transmission network includes: For each of the target stream pulling nodes, trigger the target stream pulling node and the live stream source station corresponding to the stream pulling task to establish a stream pulling link, pull the return stream of the live stream source station through the stream pulling link, add the internal transmission address corresponding to the target stream pulling node to the return stream, and then inject it into the preset internal transmission network.
4. The method according to claim 1, characterized in that The step of enabling the target confluence node to determine each target back-to-source flow in the internal transmission network based on the second task parameter of the confluence task includes: The target confluence node is triggered to initiate a subscription request to the internal transmission network based on the second task parameter of the confluence task, so as to obtain each target back-to-source flow corresponding to the subscription request from the internal transmission network.
5. The method according to claim 1, characterized in that The step of combining the target back-to-source flows and outputting a live data stream includes: The target confluence node receives each video frame transmitted by each target back-to-source stream; For each of the video frames, when the video frame does not meet the preset delay discarding condition and the target confluence node has never obtained a video frame identical to the video frame, the target confluence node stores the video frame in a preset cache queue; otherwise, the target confluence node performs a frame discarding operation; The target merging node uses the video frames in the cache queue to output a live data stream.
6. The method according to claim 1, characterized in that Also includes: Based on a preset detection cycle, sending a stream pulling quality detection request to each of the target stream pulling nodes; Obtaining the detection result of each target stream pulling node; When there is a detection result characterized as poor, a new target stream pulling node is selected to replace the target stream pulling node corresponding to the detection result characterized as poor; The stream pulling task is sent to the replaced target stream pulling node, so that the replaced target stream pulling node injects the back-to-source stream obtained by pulling the stream into the internal transmission network.
7. The method according to claim 6, characterized in that Also includes: Based on the replaced target stream pulling node, a stream pulling node update notification is sent to the target stream converging node, so that the target converging node re-determines each target back-to-source flow in the internal transmission network based on the stream pulling node update notification.
8. A live streaming back-to-source streaming system, characterized in that: include: Live broadcast scheduling center, multiple streaming nodes and at least one merging node; The live broadcast scheduling center is used to generate a stream pulling task and configure a first task parameter for the stream pulling task; Determine each target stream pulling node among each stream pulling node based on the first task parameter; Sending the stream pulling task to each of the target stream pulling nodes; After each of the target stream pulling nodes injects the live stream pulled from the live stream source station corresponding to the stream pulling task as a back-source stream into the preset internal transmission network, a merging task corresponding to the stream pulling task is generated, and a second task parameter is configured for the merging task; a target merging node is allocated to the merging task in each of the merging nodes, and the merging task is sent to the target merging node; The target confluence node is used to determine each target back-to-source flow in the internal transmission network based on the second task parameter of the confluence task, and perform confluence processing on each target back-to-source flow to output a live data stream.
9. A storage medium, characterized in that: The storage medium includes stored instructions, wherein when the instructions are executed, the device where the storage medium is located is controlled to execute the live broadcast source pulling method according to any one of claims 1 to 7.
10. An electronic device, characterized in that: It includes a memory and one or more instructions, wherein the one or more instructions are stored in the memory and are configured to be executed by one or more processors to implement the live broadcast back-to-source streaming method as described in any one of claims 1-7.
Citation Information
Patent Citations
Data stream processing method, device and equipment and medium
CN110198311A
Edge node scheduling method and device
CN114745565A
Source return path determination method, content distribution network, storage medium and program product
CN114945046A
Data processing method and device, storage medium and electronic equipment
CN115209163A
Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution
KR1020120064969A