Data stream processing method and apparatus, system, and storage medium

By sharing data stream information and transcoding tasks among CDN central nodes, the data stream transmission and transcoding process in the live streaming system is optimized, solving the problems of network resource waste and duplicate transcoding, and achieving more efficient data stream processing.

WO2026011778A1PCT designated stage Publication Date: 2026-01-15HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/079342
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-12
Filing Date
2025-02-26
Publication Date
2026-01-15

Smart Images

  • Figure CN2025079342_15012026_PF_FP_ABST
    Figure CN2025079342_15012026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the field of communications, and discloses a data stream processing method and apparatus, a system, and a storage medium. The method is applied to a content delivery system. The content delivery system comprises a first CDN central node, and a region where the first CDN central node is located further comprises at least one CDN central node. The method comprises: the first CDN central node receives a first data stream of a live-streaming service; the first CDN central node separately sends first information of the first data stream to the at least one CDN central node, wherein the first information comprises identification information of the first data stream and location information; a second CDN central node among the at least one CDN central node sends a first pull-stream request to the first CDN central node on the basis of the first information; the first CDN central node sends the first data stream to the second CDN central node. The present application can reduce latency and save network resources.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, apparatus, systems and storage media for processing data streams

[0001] This application claims priority to Chinese Patent Application No. 202410939054.8, filed on July 12, 2024, entitled “Method, Apparatus, System and Storage Medium for Processing Data Streams”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of communications, and in particular to a method, apparatus, system, and storage medium for processing data streams. Background Technology

[0003] The live streaming system comprises multiple content delivery network (CDN) central nodes and a live streaming origin server data platform. Broadcasters can connect to the first CDN central node and push the live stream data to it. The first CDN central node then sends the data stream to the live streaming origin server data platform.

[0004] In related technologies, a first viewer might request the broadcaster's data stream from a first CDN central node, and the first CDN central node sends the requested data stream to the first viewer. Alternatively, a second viewer might request the broadcaster's data stream from a second CDN central node, which then requests the data stream from the live streaming origin server's data platform. The live streaming origin server's data platform sends the requested data stream to the second CDN central node, which then forwards the requested data stream to the second viewer.

[0005] In related technologies, it is possible to request the same data stream from both the first CDN central node and the live streaming origin data platform, resulting in a waste of network resources. Summary of the Invention

[0006] This application provides a method, apparatus, system, and storage medium for processing data streams to save network resources. The technical solution is as follows:

[0007] Firstly, this application provides a method for processing data streams. The method is applied to a content distribution system, which includes a first content distribution network (CDN) central node. The region where the first CDN central node is located also includes at least one other CDN central node. In the method, the first CDN central node receives a first data stream from a live streaming service. The first CDN central node sends first information about the first data stream to each of the at least one CDN central node. The first information includes the identifier and location information of the first data stream. A second CDN central node among the at least one CDN central nodes sends a first pull request to the first CDN central node based on the first information. The first CDN central node then sends the first data stream to the second CDN central node.

[0008] Since the first CDN central node is located in the same region as at least one CDN central node, after receiving the first data stream sent by the live stream user, the first CDN central node sends the first information of the first data stream to at least one CDN central node. Each of the at least one CDN central node receives the first information quickly. This ensures that when a viewer requests to pull the live stream from a second CDN central node after the live stream user sends the first data stream, the second CDN central node receives the first information earlier than it receives the viewer's request. Therefore, based on the first information, it can determine that the data stream requested by the viewer is located on the first CDN central node, and the viewer pulls the data stream from the first CDN central node. In other words, when a user in a region pulls the live stream, the first information allows the data stream to be pulled from the CDN central node in that region, thereby reducing latency and network resource consumption.

[0009] In one possible implementation, the first pull request carries a transcoding template. The first CDN central node transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. The first CDN central node then sends the transcoded first data stream to the second CDN central node. This ensures that all pull requests within the region are forwarded to the first CDN central node, which transcodes the first data stream, preventing other devices from transcoding it and thus avoiding redundant transcoding, saving computing and network resources.

[0010] In another possible implementation, after receiving a second pull request from the terminal device, the second CDN central node sends a first pull request to the first CDN central node based on the first information. Since the second CDN central node receives the first information earlier than it receives the second pull request from the terminal device, it can accurately determine whether the terminal device has a data stream available on the first CDN central node, thus ensuring that the data stream can be successfully pulled from the first CDN central node.

[0011] In another possible implementation, the first pull request carries a transcoding template. At least one third CDN central node sends a second pull request to the second CDN central node. The second pull request requests the second CDN central node to send the first pull request to the first CDN central node based on the first information. The second CDN central node transcodes the first data stream based on the transcoding template to obtain a transcoded first data stream. The second CDN central node then sends the transcoded first data stream to the third CDN central node.

[0012] Since the third CDN central node can choose the second CDN central node for transcoding, i.e., sending a second pull request to the second CDN central node, and the second CDN central node obtains the first data stream from the first CDN central node based on the first information and transcodes it, the third CDN central node can flexibly choose which node to transcode. Furthermore, if the first CDN central node has transcoding capabilities, the second CDN central node can share the transcoding task, improving transcoding efficiency; if the first CDN central node does not have transcoding capabilities, the third CDN central node chooses the second CDN central node for transcoding, ensuring successful transcoding.

[0013] In another possible implementation, the second CDN central node includes a first scheduling strategy, and at least one third CDN central node sends a second pull request to the second CDN central node. When the second CDN central node selects the first CDN central node to transcode the data stream based on the first scheduling strategy, it sends a first pull request to the first CDN central node based on the first information and the second pull request. This way, the first scheduling strategy controls who performs the transcoding, improving the flexibility of transcoding.

[0014] In another possible implementation, the third CDN central node includes a second scheduling strategy. When the third CDN central node selects a second CDN central node based on the second scheduling strategy, it sends a second pull request to the second CDN central node. This allows the second scheduling strategy to control where the pull request originates, improving the flexibility of the pull process.

[0015] In another possible implementation, the first CDN central node sends second information to at least one CDN central node and the global management platform. The second information includes the identifier and location information of the transcoded first data stream. The global management platform sends the second information to all CDN central nodes except the first CDN central node. Specifically, the timestamp at which each of the at least one CDN central node receives the second information sent by the first CDN central node is earlier than the timestamp at which it receives the second information sent by the global management platform. This allows each of the at least one CDN central node to quickly obtain the second information. When a viewer requests to pull the transcoded first data stream, the CDN central node can quickly pull the transcoded first data stream from the first CDN central node based on the second information, thus improving the streaming speed and avoiding repeated transcoding of the first data stream.

[0016] In another possible implementation, the region also includes a live streaming origin data platform. The first CDN central node includes a third scheduling strategy, and the first pull request carries a transcoding template. The first CDN central node sends a first data stream to the live streaming origin data platform. When the first CDN central node selects the live streaming origin data platform to transcode the data stream based on the third scheduling strategy, it sends a third pull request to the live streaming origin data platform, which carries the transcoding template. The live streaming origin data platform transcodes the first data stream based on the transcoding template, obtaining a transcoded first data stream. The live streaming origin data platform sends the transcoded first data stream to the first CDN central node. The first CDN central node then sends the transcoded first data stream to the second CDN central node. This third scheduling strategy controls who performs transcoding, improving transcoding flexibility. Alternatively, if the first CDN central node has transcoding capabilities, the live streaming origin data platform can be selected for transcoding, sharing the transcoding task of the first CDN central node and improving transcoding efficiency. Or, if the first CDN central node does not have transcoding capabilities, the live streaming origin data platform can be selected for transcoding, ensuring successful transcoding.

[0017] In another possible implementation, the range of the region is determined based on the latency and / or distance between the multiple CDN central nodes included in the region. This ensures that at least one CDN central node can quickly receive the first information after the first CDN central node sends it.

[0018] Secondly, this application provides a method for processing data streams. The method is applied to a live streaming origin data platform within a region, which includes a fourth scheduling strategy. The region also includes a third-party transcoding service platform and a Content Delivery Network (CDN) central node. In the method, the live streaming origin data platform receives a first data stream sent by the CDN central node. The live streaming origin data platform receives a third pull request, which carries a transcoding template. When the live streaming origin data platform selects a third-party transcoding service platform to transcode the data stream based on the fourth scheduling strategy, it sends the fourth pull request and the first data stream to the third-party transcoding service platform. The fourth pull request instructs the third-party transcoding service platform to transcode the first data stream based on the transcoding template, resulting in a transcoded first data stream. The live streaming origin data platform receives the transcoded first data stream sent by the third-party transcoding service platform.

[0019] This approach utilizes third-party transcoding service platforms to offload transcoding tasks from the live streaming origin data platform. For example, when the live streaming origin data platform lacks sufficient idle resources for transcoding, a third-party transcoding service platform can handle the transcoding promptly. Furthermore, when the transcoding cost on the live streaming origin data platform is higher than that on a third-party transcoding service platform, the third-party platform can be used to reduce transcoding costs.

[0020] In one possible implementation, when the live streaming origin data platform selects another live streaming origin data platform to transcode the data stream based on the fourth scheduling strategy, it transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. This allows for flexible control over who performs the transcoding through the fourth scheduling strategy. For example, when the live streaming origin data platform has sufficient idle resources for transcoding, it can perform the transcoding promptly. Another example is when the transcoding cost of the live streaming origin data platform is lower than that of a third-party transcoding service platform, the live streaming origin data platform can be used to reduce transcoding costs.

[0021] In another possible implementation, the live streaming source data platform sends third-party information to the global management platform. This third-party information includes the identifier and location information of the transcoded first data stream. This third-party information notifies the global management platform that the live streaming source data platform is transcoding the first data stream, allowing the global management platform to determine which devices are repeatedly transcoding the first data stream.

[0022] Thirdly, a method for processing data streams is provided. This method is applied to a global management platform, which manages live streaming origin data platforms and Content Delivery Network (CDN) central nodes within a region. The CDN central nodes send a first data stream to the live streaming origin data platform. In this method, the global management platform receives second information sent by the CDN central node when transcoding the first data stream to obtain a transcoded first data stream. The second information includes identification information and first location information of the transcoded first data stream. The global management platform also receives third information sent by the live streaming origin data platform when transcoding the first data stream to obtain a transcoded first data stream. The third information includes identification information and second location information of the transcoded first data stream. Based on the second and third information, the global management platform determines that if the CDN central node and the live streaming origin data platform are repeatedly transcoding the first data stream, it stops one of them from continuing to transcode the first data stream. This allows one device to continue transcoding the first data stream, stopping repeated transcoding and saving computing and network resources.

[0023] In one possible implementation, the global management platform sends a first stop command to the CDN central node, which instructs the CDN central node to stop transcoding the first data stream; or, the global management platform sends a second stop command to the live streaming origin data platform, which instructs the live streaming origin data platform to stop transcoding the first data stream.

[0024] In another possible implementation, the global management platform obtains the scheduling policy of the CDN central node and sends the scheduling policy to the CDN central node. This allows for flexible control of the CDN central node to select the devices used for transcoding through the scheduling policy.

[0025] Fourthly, this application provides a content distribution system for performing the methods in the first aspect or any possible implementation thereof. Specifically, the content distribution system includes devices for performing the methods in the first aspect or any possible implementation thereof.

[0026] Fifthly, this application provides an apparatus for processing data streams, used to perform the method in the second aspect or any possible implementation of the second aspect. Specifically, the apparatus includes units for performing the method in the second aspect or any possible implementation of the second aspect.

[0027] Sixthly, this application provides an apparatus for processing data streams, used to perform the method in the third aspect or any possible implementation of the third aspect. Specifically, the apparatus includes units for performing the method in the third aspect or any possible implementation of the third aspect.

[0028] In a seventh aspect, this application provides a computing device cluster, the computing device cluster including at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster performs the methods of the first aspect, the second aspect, the third aspect, any possible implementation of the first aspect, any possible implementation of the second aspect, or any possible implementation of the third aspect.

[0029] Eighthly, this application provides a computer program product containing instructions that, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the methods of the first aspect, the second aspect, the third aspect, any possible implementation of the first aspect, any possible implementation of the second aspect, or any possible implementation of the third aspect.

[0030] Ninthly, this application provides a computer-readable storage medium including computer program instructions, which, when executed by a cluster of computing devices, perform the methods of the first aspect, the second aspect, the third aspect, any possible implementation of the first aspect, any possible implementation of the second aspect, or any possible implementation of the third aspect.

[0031] In a tenth aspect, this application provides a chip including a memory and a processor. The memory is used to store computer instructions, and the processor is used to call and execute the computer instructions from the memory to perform the methods in the first aspect, the second aspect, the third aspect, any possible implementation of the first aspect, any possible implementation of the second aspect, or any possible implementation of the third aspect. Attached Figure Description

[0032] Figure 1 is a schematic diagram of the structure of a content distribution system provided in an embodiment of this application;

[0033] Figure 2 is a schematic diagram of another content distribution system provided in an embodiment of this application;

[0034] Figure 3 is a schematic diagram of another content distribution system provided in an embodiment of this application;

[0035] Figure 4 is a schematic diagram of another content distribution system provided in an embodiment of this application;

[0036] Figure 5 is a flowchart of a data stream processing method provided in an embodiment of this application;

[0037] Figure 6 is a schematic diagram of another content distribution system provided in an embodiment of this application;

[0038] Figure 7 is a flowchart of another method for processing data streams provided in an embodiment of this application;

[0039] Figure 8 is a schematic diagram of another content distribution system provided in an embodiment of this application;

[0040] Figure 9 is a schematic diagram of another content distribution system provided in an embodiment of this application;

[0041] Figure 10 is a schematic diagram of a device structure for processing data streams provided in an embodiment of this application;

[0042] Figure 11 is a schematic diagram of another data stream processing device provided in an embodiment of this application;

[0043] Figure 12 is a schematic diagram of the structure of a computing device provided in an embodiment of this application;

[0044] Figure 13 is a schematic diagram of a cluster structure for processing data streams provided in an embodiment of this application;

[0045] Figure 14 is a schematic diagram of another cluster structure for processing data streams provided in an embodiment of this application. Detailed Implementation

[0046] The following describes the relevant concepts appearing in the embodiments of this application:

[0047] The first CDN center node, the second CDN center node, and the third CDN center node are different nodes in the same region.

[0048] The first pull request, the second pull request, the third pull request, the fourth pull request, and the fifth pull request are used to request the pull of the data stream.

[0049] The first, second, third, and fifth pull requests may be the same, or the four pull requests may contain the same content but have different source and destination addresses.

[0050] The fifth pull request is a pull request sent by the viewer to the third CDN central node. The second pull request is a pull request sent by the viewer to the second CDN central node, or a pull request sent by the third CDN central node to the second CDN central node after receiving the fifth pull request. The first pull request is a pull request sent by the second CDN central node to the first CDN central node after receiving the second pull request. The third pull request is a pull request sent by the first, second, or third CDN central node to the live streaming origin data platform when selecting a live streaming origin data platform for transcoding the data stream. The fourth pull request is a pull request sent by the live streaming origin data platform to a third-party transcoding service platform when selecting a third-party transcoding service platform for transcoding the data stream.

[0051] Referring to Figure 1, this application embodiment provides a content distribution system 100, which covers multiple regions and is used to run live streaming services. The content distribution system 100 includes a global management platform 101, and multiple live streaming source data platforms 102 and multiple CDN center nodes 103 included in each region.

[0052] The global management platform 101 can communicate with the data platforms 102 of each live streaming source station included in each region, and can also communicate with each CDN center node 103 included in each region.

[0053] Each CDN central node 103 in the same region can communicate with each other, and each CDN central node 103 in the same region can communicate with each live streaming source data platform 102 in that region.

[0054] In some embodiments, a region can be a district or an administrative region. For example, a region can be a city, province, country, or continent. Optionally, the world includes multiple regions, and the global management platform 101 can manage the live streaming source data platform 102 and CDN center node 103 in the multiple regions included globally.

[0055] In some embodiments, multiple live streaming source data platforms 102 in a region include at least one main live streaming source data platform and one or more backup live streaming source data platforms corresponding to at least one main live streaming source data platform.

[0056] In some embodiments, the live streaming origin data platform 102 in the content distribution system 100 is deployed in a distributed manner. Optionally, the live streaming origin data platform 102 in the content distribution system 100 is deployed in the cloud. Optionally, the CDN central node 103 in the content distribution system 100 may also be deployed in the cloud. The cloud where the live streaming origin data platform 102 is located and the cloud where the CDN central node 103 is located may be different. For example, the cloud where the live streaming origin data platform 102 is located may be at a higher level than the cloud where the CDN central node 103 is located.

[0057] Optionally, the CDN central node 103 in the content distribution system 100 can be a CDN acceleration node, a CDN acceleration center node, or a CDN edge node. Optionally, the CDN central node 103 includes one or more physical devices and / or logical devices; for example, the CDN central node 103 includes one or more servers.

[0058] In some embodiments, the extent of a region can be determined based on factors such as latency and / or distance between multiple CDN central nodes 103 within the region. For example, a CDN central node 103 in a region can satisfy one or more of the following conditions: a first latency condition, a second latency condition, or a distance condition.

[0059] The first latency condition is that the transmission latency between any two CDN central nodes 103 in a region meets the latency threshold required for live streaming services.

[0060] Optionally, the latency threshold required for the live streaming service may be the time allowed between the streamer pushing the data stream and the first viewer requesting to retrieve the first frame of the data stream. After the streamer pushes the data stream, the viewer must wait at least this latency threshold before requesting to retrieve the data stream.

[0061] Optionally, the transmission latency between any two CDN central nodes 103 in a region is less than or equal to the latency threshold required for live streaming services, so as to meet the latency threshold required for live streaming services.

[0062] The distance condition is that for any CDN center node 103 located in the same area, the distance between the CDN center node 103 and each other CDN center node 103 in the same area may be less than the distance between the CDN center node 103 and the global management platform 101.

[0063] For any CDN central node 103 located in the same region, and for other CDN central nodes 103 in the same region besides the CDN central node 103, the second latency condition that the CDN central node 103 may satisfy is: the transmission latency between the CDN central node 103 and the other CDN central nodes 103 is less than the sum of the transmission latency between the CDN central node 103 and the global management platform 101 and the transmission latency between the global management platform 101 and the other CDN central nodes 103. The latency threshold required for live streaming services is less than this sum of values.

[0064] For example, referring to Figure 2, the multiple regions include a first region and a second region. The first region includes a first live streaming origin data platform 1021, a second live streaming origin data platform 1022, a first CDN center node 1031, a second CDN center node 1032, and a third CDN center node 1033. The first live streaming origin data platform 1021 is the primary live streaming origin data platform, and the second live streaming origin data platform 1022 is the backup live streaming origin data platform.

[0065] The global management platform 101 can communicate with the first live streaming origin data platform 1021, the second live streaming origin data platform 1022, the first CDN center node 1031, the second CDN center node 1032, and the third CDN center node 1033. The first live streaming origin data platform 1021 can communicate with the first CDN center node 1031, the second CDN center node 1032, and the third CDN center node 1033. The second live streaming origin data platform 1022 can communicate with the first CDN center node 1031, the second CDN center node 1032, and the third CDN center node 1033. The first CDN center node 1031, the second CDN center node 1032, and the third CDN center node 1033 can communicate with each other.

[0066] In the first region, the transmission latency between the first CDN central node 1031 and the second CDN central node 1032 meets the latency threshold required for live streaming services; the transmission latency between the second CDN central node 1032 and the third CDN central node 1033 meets the latency threshold required for live streaming services; and the transmission latency between the third CDN central node 1033 and the first CDN central node 1031 meets the latency threshold required for live streaming services.

[0067] The first CDN central node 1031 may satisfy the following second latency condition: the transmission latency between the first CDN central node 1031 and the second CDN central node 1032 is less than the sum of the transmission latency between the first CDN central node 1031 and the global management platform 101 and the transmission latency between the global management platform 101 and the second CDN central node 1032; the transmission latency between the first CDN central node 1031 and the third CDN central node 1033 is less than the sum of the transmission latency between the first CDN central node 1031 and the global management platform 101 and the transmission latency between the global management platform 101 and the third CDN central node 1033. And / or, the distance between the first CDN central node 1031 and the second CDN central node 1032, and the distance between the first CDN central node 1031 and the third CDN central node 1033 are both less than the distance between the first CDN central node 1031 and the global management platform 101.

[0068] The second CDN center node 1032 in the first region also satisfies the above distance condition and / or the second latency condition, and the third CDN center node 1033 also satisfies the above distance condition and / or the second latency condition.

[0069] The second region includes the third live streaming origin data platform 1023, the fourth live streaming origin data platform 1024, the fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036. The third live streaming origin data platform 1023 is the primary live streaming origin data platform, and the fourth live streaming origin data platform 1024 is the backup live streaming origin data platform.

[0070] The global management platform 101 can communicate with the third live streaming origin data platform 1023, the fourth live streaming origin data platform 1024, the fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036. The third live streaming origin data platform 1023 can communicate with the fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036. The fourth live streaming origin data platform 1024 can communicate with the fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036. The fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036 can communicate with each other.

[0071] In the second region, the transmission latency between the fourth CDN center node 1034 and the fifth CDN center node 1035 meets the latency threshold required for live streaming services; the transmission latency between the fifth CDN center node 1035 and the sixth CDN center node 1036 meets the latency threshold required for live streaming services; and the transmission latency between the sixth CDN center node 1036 and the fourth CDN center node 1034 meets the latency threshold required for live streaming services.

[0072] In the second region, the fourth CDN center node 1034 satisfies the above-mentioned distance condition and / or the second latency condition, the fifth CDN center node 1035 satisfies the above-mentioned distance condition and / or the second latency condition, and the sixth CDN center node 1036 satisfies the above-mentioned distance condition and / or the second latency condition.

[0073] Referring to Figure 3, for any given region, the region may also include a third-party transcoding service platform 104. The live streaming source data platform within the region can communicate with the third-party transcoding service platform 104. The third-party transcoding service platform 104 and the aforementioned live streaming source data platform 102 belong to different companies, organizations, or groups.

[0074] For example, referring to Figure 3, the first live streaming source data platform 1031 in the first area can communicate with the third-party transcoding service platform 104. The first live streaming source data platform 1031 and the third-party transcoding service platform 104 are platforms from different companies.

[0075] Referring to Figure 4, for live streaming users located within the region, they can communicate with the CDN central node 103 within the region and push the first data stream generated by the live stream to the CDN central node 103. For viewer users located within the region, they can communicate with the CDN central node 103 within the region and request to pull the second data stream from the CDN central node 103.

[0076] The second data stream is obtained by transcoding the first data stream. The content of the first and second data streams is the same, but their parameters differ. The parameters of the first data stream may include one or more of the following: bitrate, frame rate, resolution, or the dimensions of images within the first data stream. Similarly, the parameters of the second data stream may include one or more of the following: bitrate, frame rate, resolution, or the dimensions of images within the second data stream.

[0077] Some or all of the CDN central nodes 103 within the region have transcoding capabilities.

[0078] Optionally, the CDN central node 103 may include a transcoding component with transcoding functionality. For example, referring to Figure 4, both the first CDN central node 1031 and the second CDN central node 1032 in the first region include transcoding components, and both have transcoding functionality. Similarly, both the fourth CDN central node 1034 and the sixth CDN central node 1036 in the second region include transcoding components, and both have transcoding functionality.

[0079] Optionally, the transcoding component may include a transcoding virtual instance or a transcoding physical machine. For example, a transcoding virtual instance may include a virtual machine and / or a container, while a transcoding physical machine may be a transcoding card.

[0080] Each live streaming source data platform 102 within the region has a transcoding function. Optionally, the live streaming source data platform 102 may include a transcoding component.

[0081] In some embodiments, both the CDN central node 103 with transcoding capabilities and the live streaming origin data platform 102 within the region include at least one transcoding template, each transcoding template defining a different data stream. Optionally, the transcoding template includes parameters of the data stream defined by the transcoding template, that is, the transcoding template includes one or more of the following: the bitrate, frame rate, resolution, or dimensions of the data stream.

[0082] Taking Figure 4 as an example, the following describes the process of live streaming users pushing data streams and viewers pulling data streams: The first live streaming user in the first region pushes the first data stream to the first CDN central node 1031. The first CDN central node 1031 receives the first data stream, sends the first information of the first data stream to the global management platform 101, and sends the first data stream to multiple live streaming origin data platforms 102 in the first region. The first information of the first data stream includes the identifier information and location information of the first data stream.

[0083] Optionally, when the first live stream user pushes the first data stream, they also send the live stream application's push domain name to the first CDN central node 1031.

[0084] Optionally, the location information is the location information of the first CDN central node 1031.

[0085] In the first region, multiple live streaming origin data platforms 102 are associated with the push domain of the live streaming application. The live streaming application also has pull domains, and these multiple live streaming origin data platforms 102 are also associated with the pull domains of the live streaming application. Therefore, the first CDN central node 1031 can send the first data stream to the multiple live streaming origin data platforms 102 associated with the push domain.

[0086] The global management platform 101 receives the first information of the first data stream and sends it to all CDN center nodes except the first CDN center node 1031. For example, referring to Figure 4, the global management platform 101 sends the first information of the first data stream to the second CDN center node 1032 and the third CDN center node 1033 in the first region, and also sends it to the fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036 in the second region. This ensures that the second CDN center node 1032 and the third CDN center node 1033 in the first region both receive the first information of the first data stream, and that the fourth CDN center node 1034, the fifth CDN center node 1035, and the sixth CDN center node 1036 in the second region all receive the first information of the first data stream.

[0087] The global management platform 101 manages multiple regions. The distance between each CDN center node 103 in each region and the global management platform 101 is relatively long, resulting in significant transmission latency between them. The global management platform 101 also processes a large amount of data, leading to a long latency in forwarding the first information of the first data stream. Therefore, after the first CDN center node 1031 sends the first information of the first data stream, a considerable transmission delay is required before all other CDN center nodes can receive it.

[0088] Referring to Figure 4, assume that shortly after the first live stream user pushes the first data stream, the first viewer sends a pull request to the second CDN central node 1032. The pull request includes the pull domain name of the live stream application, the identification information of the first transcoding template and the identification information of the first data stream. The first transcoding template is used to define the second data stream.

[0089] The second CDN central node 1032 receives the streaming request, but has not yet received the first information of the first data stream sent by the global management platform 101. Therefore, the second CDN central node 1032 selects a live streaming source data platform 102 from the multiple live streaming source data platforms 102 associated with the streaming domain name and sends the streaming request to the selected live streaming source data platform 102.

[0090] The live streaming origin data platform 102 receives the streaming request, obtains the first transcoding template based on the identifier information of the first transcoding template, obtains the first data stream based on the identifier information of the first data stream, and transcodes the first data stream into a second data stream based on the parameters of the second data stream included in the first transcoding template, and sends the second data stream to the second CDN central node 1032. The second CDN central node 1032 receives the second data stream and sends it to the first viewer user.

[0091] After the first viewer user requested to pull the stream and after a period of time, a second viewer user sent the same request to the third CDN central node 1033. The request included the streaming domain name of the live application, the identification information of the first transcoding template, and the identification information of the first data stream.

[0092] The third CDN central node 1033 receives the pull request, but at this time the third CDN central node 1033 has already received the first information of the first data stream sent by the global management platform 101. Therefore, the third CDN central node 1033 obtains the first information including the identification information of the first data stream, and sends the pull request to the first CDN central node 1031 based on the location information included in the first information.

[0093] The first CDN central node 1031 receives the streaming request, obtains the first transcoding template based on the identifier information of the first transcoding template, obtains the first data stream based on the identifier information of the first data stream, and transcodes the first data stream into a second data stream based on the parameters of the second data stream included in the first transcoding template, and sends the second data stream to the third CDN central node 1033. The third CDN central node 1033 receives the second data stream and sends the second data stream to the second viewer user.

[0094] Similarly, referring to Figure 4, the second live streaming user in the second area can push data streams to the fourth CDN central node 1034, the third viewer user can pull data streams to the fifth CDN central node 1035, and the fourth viewer user can pull data streams to the sixth CDN central node 1036.

[0095] Because after the first CDN central node 1031 sends the first information of the first data stream, there is a relatively long transmission delay before the other CDN central nodes receive the first information. However, some viewers request to pull the second data stream from the second CDN central node 1032 earlier. Since the second CDN central node 1032 has not yet received the first information, it requests to pull the stream from the live streaming origin data platform 102. Similarly, some viewers request to pull the second data stream from the third CDN central node 1033 later. Since the third CDN central node 1033 has already received the first information, it requests to pull the stream from the first CDN central node 1031.

[0096] Therefore, when different viewers request the same data stream, they may request the stream from different devices, resulting in a waste of computing and network resources. Furthermore, both the first CDN central node 1031 and the live streaming origin data platform 102 repeatedly transcode the first data stream into the second data stream, causing duplicate transcoding and further wasting computing and network resources. To solve the above problems, any of the following examples can be used.

[0097] Referring to Figure 5, this application embodiment provides a method 500 for processing data streams. Method 500 can be applied to the content distribution system 100 shown in Figures 1, 2, 3, or 4. In method 500, a first CDN central node receives a first data stream, a second CDN central node sends a first pull request to the first CDN central node for pulling the data stream, and the first CDN central node sends the requested data stream to the second CDN central node. Method 500 includes the following steps.

[0098] Step 501: The first CDN central node receives the first data stream of the live streaming service. The first CDN central node is located in the first region.

[0099] The first terminal device corresponding to the first live stream user sends the first data stream of the live stream service to the first CDN central node using the live streaming application. Optionally, the first live stream user is a user in the first region, and the first CDN central node is a CDN central node close to the first live stream user. Therefore, the first terminal device corresponding to the first live stream user establishes a connection with the first CDN central node and sends the first data stream to the first CDN central node through this connection.

[0100] Optionally, referring to Figure 6, the first terminal device first connects to the first edge node close to the first live user, and communicates with the first CDN central node through the first edge node. That is, the connection between the first terminal device and the first CDN central node passes through the first edge node.

[0101] Optionally, the first terminal device corresponding to the first live user may also send the live application's push domain name to the first CDN central node.

[0102] Optionally, the first terminal device corresponding to the first live user may also send information such as the application identifier of the live application to the first CDN central node.

[0103] Step 502: The first CDN central node sends the first information of the first data stream to the CDN central nodes other than the first CDN central node in the first region. The first information of the first data stream includes the identification information and the first location information of the first data stream.

[0104] In some embodiments, the first location information is the location information of the first CDN central node, and the first information of the first data stream is used to indicate that there is a first data stream on the first CDN central node.

[0105] For example, referring to Figure 4, the CDN center nodes in the first region, in addition to the first CDN center node, include the second CDN center node and the third CDN center node.

[0106] The first CDN central node sends the first information of the first data stream to the second CDN central node and the third CDN central node.

[0107] The first CDN central node also sends the first information of the first data stream to the global management platform.

[0108] Step 503: The first CDN central node sends the first data stream to the live streaming origin data platform.

[0109] In step 503, the first CDN central node receives the push domain name of the live streaming application, identifies multiple live streaming origin data platforms associated with the push domain name in the first region, and sends a first data stream to the multiple live streaming origin data platforms. These multiple live streaming origin data platforms include at least one primary live streaming origin data platform and at least one backup live streaming origin data platform corresponding to the primary live streaming origin data platform.

[0110] In some embodiments, for each of the multiple live streaming source data platforms, after receiving the first data stream, the live streaming source data platform may also send the second information of the first data stream to the global management platform. The second information of the first data stream includes the identification information and the second location information of the first data stream.

[0111] In some embodiments, the second location information is the location information of the live streaming source data platform, and the second information of the first data stream is used to indicate that there is a first data stream on the live streaming source data platform.

[0112] For example, referring to Figure 4, the multiple live streaming origin data platforms associated with the push domain name in the first region include a first live streaming origin data platform and a second live streaming origin data platform. The first CDN central node sends a first data stream to the first live streaming origin data platform and the second live streaming origin data platform. The first live streaming origin data platform is the primary live streaming origin data platform, and the second live streaming origin data platform is the backup live streaming origin data platform.

[0113] The first live streaming source data platform receives the first data stream and sends the second information 1 of the first data stream to the global management platform. The second information 1 of the first data stream includes the identification information of the first data stream and the second location information 1. The second location information 1 is the location information of the first live streaming source data platform. The second information 1 of the first data stream is used to indicate that there is a first data stream on the first live streaming source data platform.

[0114] The second live streaming source data platform receives the first data stream and sends the second information 2 of the first data stream to the global management platform. The second information 2 of the first data stream includes the identification information of the first data stream and the second location information 2. The second location information 2 is the location information of the second live streaming source data platform. The second information 2 of the first data stream is used to indicate that there is a first data stream on the second live streaming source data platform.

[0115] The execution order of step 502 and step 503 is not important; that is, step 502 can be executed first and then step 503, or step 503 can be executed first and then step 502, or both steps 502 and 503 can be executed simultaneously.

[0116] In some embodiments, the global management platform receives the first information of the first data stream and sends the first information of the first data stream to CDN central nodes other than the first CDN central node.

[0117] In some embodiments, the global management platform receives the second information of the first data stream and sends the second information of the first data stream to CDN central nodes other than the first CDN central node.

[0118] The CDN center nodes other than the first CDN center node include the CDN center nodes in multiple regions managed by the global management platform, excluding the first CDN center node.

[0119] For example, referring to Figure 4, the multiple regions managed by the global management platform include the first region and the second region. The CDN center nodes other than the first CDN center node include the second and third CDN center nodes in the first region, as well as the fourth, fifth and sixth CDN center nodes in the second region.

[0120] In other words, the global management platform receives the first information of the first data stream sent by the first CDN center node, and sends the first information of the first data stream to the second and third CDN center nodes in the first region, as well as the fourth, fifth, and sixth CDN center nodes in the second region. And / or,

[0121] The global management platform receives the second information 1 of the first data stream sent by the first live streaming origin data platform, and sends the second information 1 of the first data stream to the second and third CDN center nodes in the first region, as well as the fourth, fifth, and sixth CDN center nodes in the second region. Also, the global management platform receives the second information 2 of the first data stream sent by the second live streaming origin data platform, and sends the second information 2 of the first data stream to the second and third CDN center nodes in the first region, as well as the fourth, fifth, and sixth CDN center nodes in the second region.

[0122] Step 504: The second CDN center node receives the first information of the first data stream. The CDN center nodes in the first region, excluding the first CDN center node, include the second CDN center node.

[0123] In some embodiments, the second CDN central node may also receive the first information of the first data stream sent by the global management platform.

[0124] Since the distance between the first CDN central node and the second CDN central node is typically smaller than the distance between the first CDN central node and the global management platform, and also smaller than the distance between the second CDN central node and the global management platform, the transmission latency between the first and second CDN central nodes is less than the sum of the transmission latency between the first and second CDN central nodes and the global management platform. Therefore, the timestamp at which the second CDN central node receives the first information of the first data stream sent by the first CDN central node is much earlier than the timestamp at which it receives the first information of the first data stream sent by the global management platform.

[0125] In some embodiments, the second CDN central node may also receive second information from the first data stream sent by the global management platform.

[0126] For example, referring to Figure 4, the second CDN central node and the third CDN central node in the first region both receive the first information of the first data stream from the first CDN central node.

[0127] The second and third CDN center nodes in the first region, as well as the fourth, fifth, and sixth CDN center nodes in the second region, also receive the first information of the first data stream, the second information 1 of the first data stream, and the second information 2 of the first data stream sent from the global management platform.

[0128] In some embodiments, the CDN central node with transcoding function in the first region may also send node information to the global management platform periodically or irregularly. The node information includes one or more of the following: the number of idle resources in the CDN central node used for transcoding, or the transcoding cost of the CDN central node, etc.

[0129] For example, referring to Figure 4, assume that the CDN central nodes with transcoding capabilities in the first region include a first CDN central node and a second CDN central node. The first CDN central node can periodically or irregularly send its node information to the global management platform. The node information of the first CDN central node includes the amount of idle resources used for transcoding and / or the transcoding cost of the first CDN central node, etc. The second CDN central node can periodically or irregularly send its node information to the global management platform. The node information of the second CDN central node includes the amount of idle resources used for transcoding and / or the transcoding cost of the second CDN central node, etc.

[0130] In some embodiments, the live streaming source data platform in the first region may also periodically or irregularly send platform information to the global management platform. The platform information includes one or more of the following: the number of idle resources in the live streaming source data platform used for transcoding, or the transcoding cost of the live streaming source data platform, etc.

[0131] For example, referring to Figure 4, the first live streaming source platform in the first region can periodically or irregularly send its platform information to the global management platform. This platform information includes one or more of the following: the amount of idle resources used for transcoding in the first live streaming source platform, or the transcoding cost of the first live streaming source platform, etc. Similarly, the second live streaming source platform in the first region can periodically or irregularly send its platform information to the global management platform. This platform information includes one or more of the following: the amount of idle resources used for transcoding in the second live streaming source platform, or the transcoding cost of the second live streaming source platform, etc.

[0132] In some embodiments, the global management platform can receive node information from CDN central nodes with transcoding capabilities in the first region and platform information from live streaming origin data platforms in the first region. Based on the received node and platform information, it configures scheduling policies for each CDN central node and each live streaming origin data platform in the first region. It then sends the scheduling policy for each CDN central node and the scheduling policy for each live streaming origin data platform in the first region.

[0133] The scheduling strategy of the CDN central node in the first region is used to indicate whether to select a CDN central node or a live streaming origin data platform to transcode the data stream.

[0134] For example, referring to Figure 4, the global management platform can receive node information from the first CDN central node, node information from the second CDN central node, and platform information from the first and second live streaming origin data platforms. Based on the received node and platform information, scheduling strategies are configured for the first, second, and third CDN central nodes in the first region, as well as for the first and second live streaming origin data platforms in the first region.

[0135] For ease of explanation, the scheduling strategy configured for the second CDN central node in the first region will be referred to as the first scheduling strategy, the scheduling strategy configured for the third CDN central node will be referred to as the second scheduling strategy, the scheduling strategy configured for the first CDN central node will be referred to as the third scheduling strategy, the scheduling strategy configured for the first live streaming origin data platform will be referred to as the fourth scheduling strategy, and the scheduling strategy configured for the second live streaming origin data platform will be referred to as the fifth scheduling strategy.

[0136] The global management platform sends a third scheduling policy to the first CDN central node, a second scheduling policy to the second CDN central node, a third scheduling policy to the third CDN central node, a fourth scheduling policy to the first live streaming origin data platform, and a fifth scheduling policy to the second live streaming origin data platform.

[0137] Optionally, the scheduling policy of the CDN central node is used to indicate that when there is insufficient idle resources for transcoding in a CDN central node with transcoding function in the first region, the live streaming origin data platform or other CDN central nodes with transcoding function should be selected for transcoding; and when there are sufficient idle resources for transcoding in the CDN central nodes with transcoding function in the first region, the CDN node should be selected for transcoding.

[0138] Optionally, the scheduling strategy for CDN central nodes may include one or more of the following: the number of idle resources of CDN central nodes with transcoding capabilities in the first region, the first weight for selecting CDN central nodes to transcode data streams, or the second weight for selecting live streaming origin data platforms to transcode data streams, etc.

[0139] Optionally, the more idle resources available for transcoding in the CDN center nodes with transcoding capabilities in the first region, the higher the first weight of the global management platform in selecting CDN center nodes for transcoding data streams, and the lower the second weight in selecting the live streaming origin data platform for transcoding data streams. And / or, the lower the transcoding cost of the CDN center nodes with transcoding capabilities in the first region, the higher the first weight of the global management platform in selecting CDN center nodes for transcoding data streams, and the lower the second weight in selecting the live streaming origin data platform for transcoding data streams.

[0140] Optionally, the fewer idle resources available for transcoding in the CDN center nodes with transcoding capabilities in the first region, the smaller the first weight of the global management platform in selecting CDN center nodes to transcode the data stream, and the larger the second weight in selecting the live streaming origin data platform to transcode the data stream.

[0141] Optionally, the first weight and the second weight can be two ratios. For example, assuming the first weight is 90% and the second weight is 10%, that is, 90% of the received pull requests are transcoded by the CDN central node, and 10% of the received pull requests are transcoded by the live streaming origin data platform.

[0142] The scheduling strategy of the live streaming source data platform in the first area is used to indicate whether to select the live streaming source data platform or a third-party transcoding service platform to transcode the data stream.

[0143] Optionally, the scheduling strategy of the live streaming origin data platform is used to indicate that when there are sufficient idle resources for transcoding on the live streaming origin data platform, the live streaming origin data platform should be selected for transcoding; and when there are insufficient idle resources for transcoding on the live streaming origin data platform, a third-party transcoding service platform should be selected for transcoding. And / or, the scheduling strategy of the live streaming origin data platform is used to indicate that when the transcoding cost on the live streaming origin data platform is lower than the transcoding cost of the third-party transcoding service platform, the live streaming origin data platform should be selected for transcoding; and when the transcoding cost on the live streaming origin data platform is higher than the transcoding cost of the third-party transcoding service platform, a third-party transcoding service platform should be selected for transcoding.

[0144] Optionally, the scheduling strategy of the live streaming source data platform may include a third weight for selecting the live streaming source data platform to transcode the data stream and a fourth weight for selecting a third-party transcoding service platform to transcode the data stream.

[0145] Optionally, the more idle resources available for transcoding in the live streaming origin data platform, the greater the third weight of the global management platform configuration for selecting the live streaming origin data platform for transcoding, and the smaller the fourth weight of the configuration for selecting a third-party transcoding service platform for transcoding. And / or, the lower the transcoding cost of the live streaming origin data platform, the greater the third weight of the global management platform configuration for selecting the live streaming origin data platform for transcoding, and the smaller the fourth weight of the configuration for selecting a third-party transcoding service platform for transcoding.

[0146] Optionally, when the number of idle resources for transcoding in the live streaming origin data platform is smaller, the third weight of the global management platform configuration for selecting the live streaming origin data platform to transcode the data stream is smaller, and the fourth weight of the configuration for selecting a third-party transcoding service platform to transcode the data stream is larger. And / or, when the transcoding cost of the live streaming origin data platform is higher, the third weight of the global management platform configuration for selecting the live streaming origin data platform to transcode the data stream is smaller, and the fourth weight of the configuration for selecting a third-party transcoding service platform to transcode the data stream is larger.

[0147] Optionally, the global management platform can periodically or periodically configure scheduling policies for each CDN central node and / or for each live streaming origin data platform.

[0148] Step 505: The second CDN central node receives the second pull request. The second pull request includes the first transcoding template and the identification information of the first data stream. The first transcoding template is used to define the second data stream.

[0149] Optionally, the second streaming request may exclude the first transcoding template, but include the identification information of the first transcoding template. That is, the second streaming request includes the identification information of the first transcoding template and the first data stream, or the second streaming request includes the identification information of the first transcoding template and the identification information of the first data stream.

[0150] In some embodiments, the second pull request is sent by the second terminal device corresponding to the first viewer user. After the first live streamer pushes the first data stream and a certain period of time has passed, a first viewer user needs to pull the data stream generated by the first live streamer. The duration of this period of time may be greater than or equal to the latency threshold required by the live stream service. The second terminal device corresponding to the first viewer user sends the second pull request to the second CDN central node.

[0151] Optionally, the first viewer user is a user in the first region, and the second CDN center node is a CDN center node close to the first viewer user. Therefore, the second terminal device corresponding to the first viewer user establishes a connection with the second CDN center node and sends a first pull request to the second CDN center node through this connection.

[0152] Optionally, referring to Figure 6, the second terminal device connects to the second edge node near the first viewer user, and then establishes a connection with the second CDN central node, which passes through the second edge node.

[0153] The parameters of the first data stream and the parameters of the second data stream that the second terminal device can play are different. The second terminal device can directly play the second data stream, but cannot directly play the first data stream. Therefore, the second pull request sent by the second terminal device includes a first transcoding template or identification information of the first transcoding template used to define the second data stream, in order to request that the first data stream be transcoded into the second data stream defined by the first transcoding template.

[0154] Optionally, the second pull request may also include the pull domain name of the live streaming application, etc.

[0155] Optionally, the first transcoding template includes one or more of the following: the resolution, frame rate, bit rate of the second data stream, or the dimensions of an image in the second data stream.

[0156] Optionally, the second pull request may also include the pull domain name of the live streaming application, etc.

[0157] In some embodiments, the second pull request is sent by a third CDN central node. The third CDN central node includes a second scheduling policy sent from the global management platform. The third CDN central node does not have transcoding capabilities, while the second CDN central node does. After a first live stream user pushes the first data stream and a period of time has passed, a second viewer user needs to pull the data stream generated by the first live stream user's broadcast. The third terminal device corresponding to the second viewer user sends a fifth pull request to the third CDN central node. The fifth pull request includes the identification information of the first data stream and the first transcoding template, or the fifth pull request includes the identification information of the first data stream and the identification information of the first transcoding template. Upon receiving the fifth pull request, the third CDN central node, when selecting a second CDN central node based on the second scheduling policy, sends the second pull request to the second CDN central node.

[0158] Optionally, the second and fifth pull requests may be the same, or the source and destination addresses of the second and fifth pull requests may be different. Similar scenarios will not be listed further.

[0159] Optionally, the fifth pull request may also include the pull domain of the live streaming application, and the second pull request may also include the pull domain of the live streaming application.

[0160] In some embodiments, the first CDN central node may also have transcoding capabilities, and the operation of the third CDN central node selecting a device for transcoding the data stream based on the second scheduling strategy can be as follows:

[0161] The third CDN central node selects either a CDN central node or a live streaming origin data platform to transcode the data stream based on the second scheduling strategy. When selecting a CDN central node to transcode the data stream, if the idle resources for transcoding in the first CDN central node are insufficient or the first CDN central node does not have transcoding capabilities, the second CDN central node with transcoding capabilities is selected, and a second pull request is sent to the second CDN central node.

[0162] Optionally, the second scheduling strategy includes the number of idle resources for transcoding in the CDN central nodes with transcoding capabilities. For example, referring to Figure 4, the CDN central nodes with transcoding capabilities include a first CDN central node and a second CDN central node. The third CDN central node obtains the number of idle resources for transcoding in the first CDN central node from the second scheduling strategy. If it is determined based on the number of idle resources that the first CDN central node has insufficient idle resources for transcoding, it obtains the number of idle resources for transcoding in the second CDN central node from the second scheduling strategy. If it is determined based on the number of idle resources that the second CDN central node has sufficient idle resources for transcoding, the third CDN central node is selected to transcode the data stream.

[0163] Optionally, the second scheduling strategy includes a first weight for selecting a CDN central node to transcode the data stream, and a second weight for selecting a live streaming origin data platform to transcode the data stream. The third CDN central node, based on the first and second weights, selects either a CDN central node to transcode the data stream or selects a live streaming origin data platform to transcode the data stream.

[0164] Sufficient idle resources for transcoding means that the number of idle resources for transcoding in the first CDN central node exceeds the quantity threshold, or that the idle resources for transcoding in the first CDN central node can meet the resource requirements for transcoding at least one data stream.

[0165] The so-called insufficient idle resources for transcoding means that the number of idle resources for transcoding in the first CDN central node does not exceed the quantity threshold, or that the idle resources for transcoding in the first CDN central node cannot meet the resources required for transcoding at least one data stream.

[0166] In some embodiments, when selecting a live streaming source data platform to transcode the data stream, the third CDN central node performs a hash operation on the identification information of the second data stream to obtain a first hash value. The identification information of the second data stream includes the identification information of the first transcoding template and the identification information of the first data stream. The first hash value is moduloed with a specified value to obtain the sequence number of the live streaming source data platform. At least one primary live streaming source data platform is determined from among multiple live streaming source data platforms associated with the streaming domain name. Based on the sequence number, a live streaming source data platform is selected from the at least one primary live streaming source data platform as the first live streaming source data platform. A third streaming request is sent to the first live streaming source data platform. The third streaming request includes the identification information of the first data stream and the first transcoding template, or the third streaming request includes the identification information of the first data stream and the identification information of the first transcoding template.

[0167] The specified value can be a preset value (such as 10, 20, 50, 80 or 100), or it can be the number of at least one main live streaming source data platform.

[0168] Step 506: The second CDN central node sends a first pull request to the first CDN central node based on the first information of the first data stream. The first pull request includes the identification information of the first data stream.

[0169] The second CDN central node may receive the first information of the first data stream sent by the first CDN central node before receiving the second pull request. This ensures that when the second CDN central node receives the second pull request, it can obtain the first information of the first data stream based on the identifier information of the first data stream included in the second pull request. The first information of the first data stream includes first location information, which indicates the location of the first CDN central node. Based on the first location information, the second CDN central node sends the first pull request to the first CDN central node.

[0170] In some embodiments, the second CDN central node may receive a first scheduling policy sent by the global management platform, and select either a CDN central node or the live streaming origin data platform to transcode the data stream based on the first scheduling policy. When selecting a CDN central node to transcode the data stream, if the first CDN central node has transcoding capabilities, it may be selected; if the second CDN central node has transcoding capabilities, it may be selected.

[0171] When selecting a CDN central node to transcode a data stream, if the first CDN central node has sufficient idle resources for transcoding, the second CDN central node sends a first pull request to the first CDN central node based on the first information of the first data stream. The first pull request includes the identifier information of the first data stream and the first transcoding template, or it includes both the identifier information of the first data stream and the identifier information of the first transcoding template. In this case, the first pull request is used to request the first CDN central node to transcode the first data stream into a second data stream defined by the first transcoding template.

[0172] If the first CDN central node has insufficient idle resources for transcoding while the second CDN central node has sufficient idle resources for transcoding, the second CDN central node chooses to transcode the data stream itself and sends a first pull request to the third CDN central node based on the first information of the first data stream. The first pull request includes the identifier information of the first data stream; in this case, the first pull request is used to request the first CDN central node to obtain the first data stream.

[0173] When selecting a live streaming source data platform to transcode the data stream, the second CDN central node sends a third pull request to the first live streaming source data platform in the first region. The third pull request includes the identification information of the first data stream and the first transcoding template, or the third pull request includes the identification information of the first data stream and the identification information of the first transcoding template.

[0174] Optionally, the first scheduling strategy includes the number of idle resources for transcoding in the CDN central nodes with transcoding capabilities. For example, referring to Figure 4, the CDN central nodes with transcoding capabilities include a first CDN central node and a second CDN central node. The second CDN central node obtains the number of idle resources for transcoding in the first CDN central node from the first scheduling strategy. When it is determined based on the number of idle resources that the first CDN central node has sufficient idle resources for transcoding, the second CDN central node is selected to transcode the data stream. When it is determined based on the number of idle resources that the first CDN central node has insufficient idle resources for transcoding, but the second CDN central node itself has sufficient idle resources for transcoding, the second CDN central node itself is selected to transcode the data stream.

[0175] Optionally, the first scheduling strategy includes a first weight for selecting a CDN central node to transcode the data stream, and a second weight for selecting a live streaming origin data platform to transcode the data stream. The second CDN central node selects either a CDN central node to transcode the data stream based on the first and second weights, or selects a live streaming origin data platform to transcode the data stream.

[0176] In some embodiments, when selecting a live streaming source data platform to transcode the data stream, the second CDN central node performs a hash operation on the identifier information of the second data stream to obtain a first hash value. The identifier information of the second data stream includes the identifier information of the first transcoding template and the identifier information of the first data stream. The first hash value is moduloed with a specified value to obtain the sequence number of the live streaming source data platform. At least one primary live streaming source data platform is determined from among multiple live streaming source data platforms associated with the streaming domain name. Based on the sequence number, a live streaming source data platform is selected from the at least one primary live streaming source data platform as the first live streaming source data platform, and a streaming request is sent to the first live streaming source data platform.

[0177] Step 507: The first CDN central node receives the first pull request and sends the first data stream to the second CDN central node.

[0178] In some embodiments, a first pull request is used to request a first CDN central node to obtain a first data stream, and the first pull request includes identification information of the first data stream. In this case, the first CDN central node sends the first data stream to a second CDN central node based on the identification information of the first data stream.

[0179] In some embodiments, the first pull request is used to request the first CDN central node to transcode the first data stream into a second data stream defined by the first transcoding template. The first data stream sent by the first CDN central node to the second CDN central node is the transcoded first data stream, and the transcoded first data stream is the second data stream.

[0180] In implementation, if the first pull request includes the identification information of the first data stream and the identification information of the first transcoding template, the first CDN central node transcodes the first data stream into the second data stream defined by the first transcoding template based on the identification information of the first transcoding template and the identification information of the first data stream, and sends the second data stream to the second CDN central node.

[0181] Optionally, the first CDN central node includes multiple transcoding templates, including a first transcoding template, which includes at least one parameter of the second data stream. In step 507, the first CDN central node obtains the first transcoding template based on its identification information. Based on the identification information of the first data stream, it obtains the first data stream from the received data stream. Based on at least one parameter of the second data stream included in the first transcoding template, it transcodes the first data stream into the second data stream defined by the first transcoding template.

[0182] If the first pull request includes the identifier information of the first data stream and the first transcoding template, the first CDN central node obtains the first data stream from the received data stream based on the identifier information of the first data stream. It then transcodes the first data stream into a second data stream defined by the first transcoding template and sends the second data stream to the second CDN central node.

[0183] In some embodiments, when the first pull request is used to request the first CDN central node to transcode the first data stream into a second data stream defined by the first transcoding template, the first CDN central node may receive a third scheduling policy sent by the global management platform. Based on the third scheduling policy, it selects either the first CDN central node or the live streaming origin data platform to transcode the data stream. When selecting the first CDN central node to transcode the data stream, the first data stream is transcoded into the second data stream defined by the first transcoding template. When selecting a live streaming origin data platform to transcode the data stream, a third pull request is sent to a live streaming origin data platform in the first region. The third pull request includes the identification information of the first data stream and the first transcoding template, or the third pull request includes the identification information of the first data stream and the identification information of the first transcoding template.

[0184] Optionally, the third scheduling strategy includes a first weight for selecting a CDN central node to transcode the data stream, and a second weight for selecting a live streaming origin data platform to transcode the data stream. The first CDN central node is selected based on the first and second weights; alternatively, a live streaming origin data platform may be selected to transcode the data stream.

[0185] In some embodiments, when selecting a live streaming source data platform to transcode the data stream, the first CDN central node performs a hash operation on the identification information of the second data stream to obtain a first hash value. The identification information of the second data stream includes the identification information of the first transcoding template and the identification information of the first data stream. The first hash value is moduloed with a specified value to obtain the sequence number of the live streaming source data platform. At least one primary live streaming source data platform is determined from among multiple live streaming source data platforms associated with the streaming domain name. Based on the sequence number, a live streaming source data platform is selected from the at least one primary live streaming source data platform, and a first streaming request is sent to the selected live streaming source data platform.

[0186] In this system, each CDN central node in the first region (such as the first, second, or third CDN central node) follows the same rules for selecting the live streaming origin data platform. This ensures that multiple CDN central nodes that need to transcode the first data stream into the second data stream will choose the same live streaming origin data platform. This allows a single live streaming origin data platform to transcode the first data stream into the second data stream and return it to multiple CDN central nodes, guaranteeing that only one live streaming origin data platform transcodes the first data stream into the second data stream. This avoids multiple live streaming origin data platforms repeatedly transcoding the first data stream into the second data stream, saving computing and network resources.

[0187] In some embodiments, when the first CDN central node transcodes the first data stream into the second data stream, the first CDN central node may also send the first information of the second data stream to CDN central nodes other than the first CDN central node in the first region. The first information of the second data stream includes the identification information and the first location information of the second data stream. The first information of the second data stream is used to indicate that there is a second data stream on the first CDN central node.

[0188] In some embodiments, the first CDN central node may also send the first information of the second data stream to the global management platform. The global management platform sends the first information of the second data stream to CDN central nodes other than the first CDN central node.

[0189] In the first region, the CDN center nodes other than the first CDN center node (as shown in Figure 4, the second and third CDN center nodes) receive the first information of the second data stream sent from the first CDN center node, and / or receive the first information of the second data stream sent from the global management platform. The timestamp for receiving the first information of the second data stream sent from the first CDN center node is earlier than the timestamp for receiving the first information of the second data stream sent from the global management platform.

[0190] Step 508: The second CDN central node receives the first data stream and sends the second data stream.

[0191] In some embodiments, when the second CDN central node selects itself to transcode the data stream, if the second pull request includes the identifier information of the first data stream and the identifier information of the first transcoding template, and the second CDN central node includes multiple transcoding templates, the second CDN central node obtains the first transcoding template based on the identifier information of the first transcoding template, and transcodes the first data stream into the second data stream defined by the first transcoding template based on at least one parameter of the second data stream included in the first transcoding template. If the second pull request includes the identifier information of the first data stream and the first transcoding template, the second CDN central node transcodes the first data stream into the second data stream defined by the first transcoding template based on at least one parameter of the second data stream included in the first transcoding template.

[0192] Optionally, the second CDN central node may also send second information of the second data stream to CDN central nodes other than the second CDN central node in the first region. The second information of the second data stream includes the identification information and second location information of the second data stream. The second information of the second data stream is used to indicate that there is a second data stream on the second CDN central node.

[0193] Optionally, the second CDN central node can also send second information about the second data stream to the global management platform. The global management platform sends the second information about the second data stream to CDN central nodes other than the second CDN central node.

[0194] In some embodiments, when the second CDN central node selects the first CDN central node to transcode the data stream, the first data stream received by the second CDN central node is the transcoded first data stream, which is the second data stream.

[0195] For the second data stream mentioned above, if the second pull request received by the second CDN central node is a request from the second terminal device, the second CDN central node sends the second data stream to the second terminal device corresponding to the first viewer user.

[0196] In some embodiments, for other audience users communicating with the second CDN central node, if the terminal device corresponding to the other audience user sends a pull request to the second CDN central node for pulling the second data stream, since the second CDN central node is continuously transcoding the received first data stream into the second data stream, or is continuously receiving the second data stream sent by the first CDN central node, the second CDN central node can directly send the second data stream to the terminal device corresponding to the other audience user.

[0197] If the second pull request received by the second CDN central node is a request from the third CDN central node, the second CDN central node sends the second data stream to the third CDN central node, and the third CDN central node sends the second data stream to the third terminal device corresponding to the second viewer user.

[0198] In the case where the first CDN central node transcodes the first data stream into the second data stream, for other CDN central nodes in the first region, the other CDN central nodes have received the first information of the second data stream. The first information of the second data stream includes the identification information and the first location information of the second data stream.

[0199] Therefore, other CDN central nodes receive pull requests from the terminal devices corresponding to the viewer users. These pull requests include the identifier information of the second data stream (the identifier information of the first data stream and the identifier information of the first transcoding template). Based on the identifier information of the second data stream, they obtain the first information of the second data stream and, based on the first location information included in the first information, send a pull request to the first CDN central node. The first CDN central node receives the pull request and, based on the identifier information of the second data stream, sends the second data stream to other CDN central nodes. The other CDN central nodes receive the second data stream and send it to the terminal devices corresponding to the viewer users. This avoids repeatedly transcoding the first data stream into the second data stream, saving computing and network resources.

[0200] Similarly, when the second CDN central node transcodes the first data stream into the second data stream, for other CDN central nodes in the first region, the other CDN central nodes have received the second information of the second data stream. The second information of the second data stream includes the identification information and the second location information of the second data stream.

[0201] Therefore, other CDN central nodes receive pull requests from the terminal devices corresponding to the viewer users. These pull requests include the identifier information of the second data stream (the identifier information of the first data stream and the identifier information of the first transcoding template). Based on the identifier information of the second data stream, they obtain the second information of the second data stream and, based on the second location information included in the second data stream, send a pull request to the second CDN central node. The second CDN central node receives the pull request and, based on the identifier information of the second data stream, sends the second data stream to other CDN central nodes. These other CDN central nodes receive the second data stream and send it to the terminal devices corresponding to the viewer users. This avoids repeatedly transcoding the first data stream into the second data stream, saving computing and network resources.

[0202] In this embodiment, after receiving the first data stream, the first CDN central node sends the first information of the first data stream to each CDN central node in the first region other than the first CDN central node. The first information of the first data stream includes the identification information and the first location information of the first data stream, used to indicate that the first CDN central node has the first data stream. Since the CDN central nodes in the first region meet the above-mentioned first latency condition, second latency condition, and / or distance condition, each CDN central node in the first region other than the first CDN central node receives the pull request from the audience user before receiving the first information of the first data stream. For example, the transmission latency between the first CDN central node and each CDN central node in the first region other than the first CDN central node is less than the latency threshold required by the live streaming service. However, after the broadcaster sends the first data stream, the time from when the first audience user requests to pull the first data stream is usually greater than the latency threshold. Therefore, each CDN central node in the first region other than the first CDN central node receives the pull request before receiving the first information of the first data stream. Thus, each CDN central node sends a pull request to the first CDN central node based on the first information. This ensures that when users in the first region need to pull data streams, the pull can be completed on the CDN central node within the first region, reducing latency and network resources. Furthermore, when the first CDN central node has transcoding capabilities, the first information can be used to control the transcoding of the first data stream into the second data stream on the first CDN central node as much as possible, avoiding repeated transcoding and saving computing and network resources.

[0203] Referring to Figure 7, this application embodiment provides a method 700 for processing data streams. Method 700 can be applied to the content distribution system 100 shown in Figures 1, 2, 3, or 4. In method 700, a first live streaming source platform in a first region receives a first data stream. The CDN center node in the first region receives a first pull request for pulling a second data stream and selects the live streaming source platform to transcode the data stream. Therefore, it sends a third pull request to the live streaming source platform, which requests the first live streaming source platform to transcode the first data stream into the second data stream. Method 700 includes the following steps.

[0204] Step 701: The first live streaming origin data platform receives the first data stream sent by the first CDN central node. Both the first live streaming origin data platform and the first CDN central node are located in the first region.

[0205] The push domain name of the first data stream is associated with multiple live streaming source data platforms in the first region, including the first live streaming source data platform.

[0206] The first CDN central node receives the first data stream and push domain name sent by the first terminal device corresponding to the first live streaming user. It identifies multiple live streaming origin data platforms associated with the push domain name in the first region and sends the first data stream to these multiple live streaming origin data platforms.

[0207] Step 702: The first live streaming source data platform receives a third streaming request. The third streaming request includes the identification information of the first data stream and the first transcoding template.

[0208] In some embodiments, the third pull request includes identification information of the first data stream and identification information of the first transcoding template.

[0209] Optionally, the third pull request may be sent by the third CDN central node. For details on the implementation process of the third CDN central node sending the third pull request, please refer to the relevant content in step 505 of the embodiment shown in Figure 5, which will not be described in detail here.

[0210] Optionally, the third pull request may be sent by the second CDN central node. For details on the implementation process of the second CDN central node sending the third pull request, please refer to the relevant content in step 506 of the embodiment shown in Figure 5, which will not be described in detail here.

[0211] Optionally, the third pull request may be sent by the first CDN central node. For details on the implementation process of the first CDN central node sending the third pull request, please refer to the relevant content in step 507 of the embodiment shown in Figure 5, which will not be described in detail here.

[0212] Step 703: The first live streaming source data platform selects either the first live streaming source data platform or a third-party transcoding service platform to transcode the data stream based on the fourth scheduling strategy.

[0213] In some embodiments, the fourth scheduling strategy instructs the first live streaming source platform to perform transcoding when there are sufficient idle resources for transcoding on the first live streaming source platform; and to perform transcoding on a third-party transcoding service platform when there are insufficient idle resources for transcoding on the first live streaming source platform. Therefore, the first live streaming source platform acquires idle resources for transcoding on its own platform based on the fourth scheduling strategy. When there are sufficient idle resources for transcoding on the first live streaming source platform, the first live streaming source platform is selected; when there are insufficient idle resources for transcoding on the first live streaming source platform, a third-party transcoding service platform is selected.

[0214] Optionally, when the number of idle resources used for transcoding exceeds a certain threshold, or when the idle resources used for transcoding are sufficient to meet the resources required for transcoding at least one data stream, it is determined that the idle resources used for transcoding in the first live streaming source data platform are sufficient.

[0215] Optionally, if the number of idle resources used for transcoding does not exceed the quantity threshold, or if the idle resources used for transcoding cannot meet the resources required for transcoding at least one data stream, it is concluded that the idle resources used for transcoding in the first live streaming source station data platform are insufficient.

[0216] In some embodiments, the fourth scheduling strategy is used to instruct that when the transcoding cost on the first live streaming source data platform is lower than the transcoding cost on the third-party transcoding service platform, the first live streaming source data platform should be selected for transcoding; and when the transcoding cost on the first live streaming source data platform is higher than the transcoding cost on the third-party transcoding service platform, the third-party transcoding service platform should be selected for transcoding. Therefore, the first live streaming source data platform obtains its transcoding cost and the transcoding cost of the third-party transcoding service platform based on the fourth scheduling strategy. When the transcoding cost on the first live streaming source data platform is lower than the transcoding cost on the third-party transcoding service platform, the first live streaming source data platform is selected; when the transcoding cost on the first live streaming source data platform is higher than the transcoding cost on the third-party transcoding service platform, the third-party transcoding service platform is selected.

[0217] In some embodiments, the fourth scheduling strategy includes a third weight for selecting a first live streaming source data platform to transcode the data stream and a fourth weight for selecting a third-party transcoding service platform to transcode the data stream. Based on the third and fourth weights, the first live streaming source data platform may either select itself to transcode the data stream or select a third-party transcoding service platform to transcode the data stream.

[0218] Step 704: When the first live streaming source data platform selects a third-party transcoding service platform to transcode the data stream, it sends a fourth pull request and the first data stream to the third-party transcoding service platform.

[0219] In step 704, the first live streaming source data platform obtains the first data stream from the received data stream based on the identification information of the first data stream, and sends a fourth streaming request and the first data stream to the third-party transcoding service platform. The fourth streaming request includes the first transcoding template, or the fourth streaming request includes the identification information of the first transcoding template.

[0220] Step 705: The third-party transcoding service platform receives the first data stream and the fourth pull stream request, and transcodes the first data stream into the second data stream defined by the first transcoding template based on the first transcoding template.

[0221] In step 705, the fourth streaming request includes a first transcoding template, and the third-party transcoding service platform transcodes the first data stream into a second data stream defined by the first transcoding template. Alternatively, the fourth streaming request includes identification information of the first transcoding template, the third-party transcoding service platform includes multiple transcoding templates, the third-party transcoding service platform obtains the first transcoding template based on the identification information of the first transcoding template, and transcodes the first data stream into a second data stream defined by the first transcoding template based on at least one parameter of the second data stream included in the first transcoding template.

[0222] Step 706: The third-party transcoding service platform sends the second data stream to the first live streaming source data platform.

[0223] Step 707: The first live streaming source platform receives the second data stream, sends the second data stream, and then ends.

[0224] Optionally, the third pull request may be sent by the third CDN central node, and the first live streaming origin data platform sends the second data stream to the third CDN central node.

[0225] Optionally, the third pull request may be sent by the second CDN central node, with the first live streaming origin data platform sending the second data stream to the second CDN central node.

[0226] Optionally, the third pull request may be sent by the first CDN central node, and the first live streaming origin data platform may send the second data stream to the first CDN central node.

[0227] Step 708: When selecting the first live streaming source data platform to transcode the data stream, the first data stream is transcoded into the second data stream defined by the first transcoding template.

[0228] When the third streaming request includes the identifier information of the first data stream and the first transcoding template, the first live streaming source data platform obtains the first data stream from the received data stream based on the identifier information of the first data stream. It then transcodes the first data stream into the second data stream defined by the first transcoding template.

[0229] When the third streaming request includes the identifier information of the first data stream and the identifier information of the first transcoding template, the first live streaming source data platform obtains the first data stream from the received data stream based on the identifier information of the first data stream. Based on the identifier information of the first transcoding template, it obtains the first transcoding template. Based on at least one parameter of the second data stream included in the first transcoding template, it transcodes the first data stream into the second data stream defined by the first transcoding template.

[0230] Step 709: The first live streaming source platform sends the second data stream, and the process ends.

[0231] Optionally, the third pull request may be sent by the third CDN central node, and the first live streaming origin data platform sends the second data stream to the third CDN central node.

[0232] Optionally, the third pull request may be sent by the second CDN central node, with the first live streaming origin data platform sending the second data stream to the second CDN central node.

[0233] Optionally, the third pull request may be sent by the first CDN central node, and the first live streaming origin data platform may send the second data stream to the first CDN central node.

[0234] In some embodiments, the first live streaming origin data platform can also send third information of the second data stream to the global management platform. This third information includes the identifier information and third location information of the second data stream. The third location information indicates the location of the first live streaming origin data platform, and the third information of the second data stream indicates that a second data stream exists on the first live streaming origin data platform. The global management platform sends this third information of the second data stream to CDN central nodes in multiple regions.

[0235] In some embodiments, assuming the third streaming request may be sent by the second CDN central node, if there is an anomaly in the connection between the first live streaming origin data platform and the second CDN central node, the second CDN central node sends a third streaming request to the second live streaming origin data platform, which is a backup live streaming origin data platform for the first live streaming origin data platform. Based on the third streaming request, the second live streaming origin data platform transcodes the first data stream into a second data stream and sends the second data stream to the second CDN central node. Similarly, if the third streaming request is sent by either the first or third CDN central node, and there is a connection anomaly, the live streaming origin data platform is switched as described above.

[0236] In some embodiments, the second live streaming origin data platform can also send fourth information of the second data stream to the global management platform. This fourth information includes identification information and fourth location information of the second data stream. The fourth location information indicates the location of the second live streaming origin data platform and signifies the presence of a second data stream on the platform. The global management platform sends this fourth information to CDN central nodes in multiple regions.

[0237] In some embodiments, the global management platform may receive first information of the second data stream sent by the first CDN central node, the first information of the second data stream including the identification information and first location information of the second data stream; and receive third information of the second data stream sent by the first live streaming source data platform, the third information of the second data stream including the identification information and third location information of the second data stream.

[0238] Based on the first information and the third information of the second data stream, the global management platform determines that if both the first CDN central node and the first live streaming origin data platform are transcoding the first data stream into the second data stream, it will stop either the first CDN central node or the first live streaming origin data platform from continuing to transcode the first data stream into the second data stream. Similarly, in the same manner described above, the global management platform may also stop either the second CDN central node or the first live streaming origin data platform from continuing to transcode the first data stream into the second data stream.

[0239] Optionally, the global management platform sends a first stop command to the first CDN central node. The first stop command includes the identification information of the second data stream. Based on the first stop command, the first CDN central node stops transcoding the first data stream into the second data stream.

[0240] When the first CDN central node stops transcoding the first data stream into the second data stream, other CDN central nodes that pull the second data stream from the first CDN central node obtain the third information of the second data stream, including the identification information of the second data stream. Based on the third location information included in the third information of the second data stream, they obtain the second data stream from the first live streaming source data platform.

[0241] Optionally, the global management platform sends a second stop command to the first live streaming source data platform. The second stop command is used to instruct the first live streaming source data platform to stop transcoding the first data stream into the second data stream.

[0242] When the first live streaming origin data platform stops transcoding the first data stream into the second data stream, for other CDN center nodes that pull the second data stream from the first live streaming origin data platform, the other CDN center nodes obtain the first information of the second data stream, including the identification information of the second data stream, and obtain the second data stream from the first CDN center node based on the first location information included in the first information of the second data stream.

[0243] When a connection between the primary live streaming origin data platform and the CDN central node (such as the aforementioned first, second, or third CDN central node) fails, the secondary live streaming origin data platform, acting as a backup, transcodes the primary data stream into a secondary data stream and sends it to the CDN central node. However, the primary live streaming origin data platform continues to transcode the primary data stream into the secondary data stream; in other words, both platforms repeatedly transcode the primary data stream into the secondary data stream.

[0244] In this situation, the global management platform will receive the fourth information of the second data stream sent by the second live streaming source platform. Based on the third information of the second data stream and the fourth information of the second data stream, it will determine that both the first live streaming source platform and the second live streaming source platform will transcode the first data stream into the second data stream, and will stop the first live streaming source platform from continuing to transcode the first data stream into the second data stream.

[0245] Optionally, the global management platform sends a second stop command to the first live streaming source data platform. The second stop command is used to instruct the first live streaming source data platform to stop transcoding the first data stream into the second data stream.

[0246] In some embodiments, referring to Figure 8, the global management platform includes one or more of the following: a scheduling service module, a flow management service module, an alarm service module, a live streaming management service module, and a call detail record (CDR) billing service module.

[0247] The scheduling service module is used to schedule transcoding tasks and issue scheduling strategies during live streaming push and pull streams.

[0248] The stream management service module is used to receive and forward information from data streams. For example, it receives and forwards the first and / or second information of a first data stream, and receives and forwards the first, second, third, and / or fourth information of a second data stream.

[0249] The alarm service module is used to detect various abnormal alarms in live streaming business scenarios. Currently, it is mainly used for abnormal detection under repeated transcoding and to notify manual or automatic abnormal handling under repeated transcoding, such as stopping repeated transcoding on multiple devices.

[0250] The live streaming management service module is used for live streaming configuration management (configuring transcoding templates) and control management. Currently, it is mainly used to issue abort commands for abnormally repeated transcoding tasks under repeated transcoding. By issuing a transcoding abort command for a specified stream, the number of repeated transcoding tasks can be reduced.

[0251] The call detail record (CDR) billing service module is used for collecting and reporting live streaming billing CDRs, generating live streaming billing records and providing them to the operation system for billing processing. Currently, it mainly refers to generating transcoded billing CDRs and filtering duplicate transcoded billing CDRs to handle billing CDRs generated by duplicate transcoding from the customer's perspective, thereby reducing the cost incurred by the customer due to duplicate transcoding.

[0252] In this embodiment, when the first live streaming source platform receives a third streaming request, and its own idle resources for transcoding are insufficient, it can request a third-party transcoding service platform to transcode the first-stream data into a second-stream data stream, ensuring successful transcoding. When its own transcoding cost is higher than the transcoding cost of the third-party transcoding service platform, it can request the third-party transcoding service platform to transcode the first-stream data into a second-stream data stream, reducing the cost of transcoding the data stream.

[0253] Referring to Figure 9, this application embodiment provides a content distribution system 900. The content distribution system 900 may include a first content distribution network CDN central node 901 as shown in Figures 1, 2, 3 or 4. The region where the first CDN central node 901 is located also includes at least one CDN central node.

[0254] The first CDN central node 901 is used to receive the first data stream of the live streaming service;

[0255] The first CDN central node 901 is also used to send first information of the first data stream to at least one CDN central node respectively. The first information includes the identification information and location information of the first data stream.

[0256] At least one second CDN center node 902 in a CDN center node is used to send a first pull request to the first CDN center node 901 based on the first information;

[0257] The first CDN central node 901 is also used to send the first data stream to the second CDN central node 902.

[0258] Optionally, the detailed implementation process of the first CDN central node 901 receiving the first data stream of the live broadcast service can be found in step 501 of method 500 shown in Figure 5, and will not be described in detail here.

[0259] Optionally, the detailed implementation process of the first CDN central node 901 sending the first information of the first data stream to at least one CDN central node is described in step 502 of method 500 shown in Figure 5, and will not be described in detail here.

[0260] Optionally, the detailed implementation process of the second CDN central node 902 sending the first pull request can be found in step 506 of method 500 shown in Figure 5, and will not be described in detail here.

[0261] Optionally, the detailed implementation process of the first CDN central node 901 sending the first data stream can be found in step 507 of method 500 shown in Figure 5, and will not be described in detail here.

[0262] Optionally, the first pull request carries a transcoding template, and the first CDN central node 901 is used for:

[0263] The first data stream is transcoded based on the transcoding template to obtain the transcoded first data stream.

[0264] Send the transcoded first data stream to the second CDN central node 902.

[0265] Optionally, the first CDN central node 901 transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. For the detailed implementation process, please refer to the relevant content of step 507 of method 500 shown in Figure 5, which will not be described in detail here.

[0266] Optionally, the detailed implementation process of the first CDN central node 901 sending the transcoded first data stream can be found in step 507 of method 500 shown in Figure 5, and will not be described in detail here.

[0267] Optionally, the second CDN central node 902 is configured to send a first pull request to the first CDN central node 901 based on the first information after receiving a second pull request from the terminal device.

[0268] Optionally, after receiving the second pull request from the terminal device, the second CDN central node 902 sends the first pull request to the first CDN central node 901 based on the first information. For details of the implementation process, please refer to the relevant content of step 506 of method 500 shown in Figure 5, which will not be described in detail here.

[0269] Optionally, the first pull request carries a transcoding template;

[0270] At least one third CDN center node 903 in a CDN center node is used to send a second pull stream request to a second CDN center node 902. The second pull stream request is used to request the second CDN center node to send a first pull stream request to the first CDN center node 901 based on the first information.

[0271] The second CDN central node 902 is also used to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream.

[0272] The second CDN central node 902 is also used to send the transcoded first data stream to the third CDN central node 903.

[0273] Optionally, the detailed implementation process of the third CDN central node 903 sending the second pull request to the second CDN central node 902 is shown in step 505 of method 500 in Figure 5, and will not be described in detail here.

[0274] Optionally, the second CDN central node 902 transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. For the detailed implementation process, please refer to the relevant content of step 508 of method 500 shown in Figure 5, which will not be described in detail here.

[0275] Optionally, the detailed implementation process of the second CDN central node 902 sending the transcoded first data stream to the third CDN central node 903 is shown in step 508 of method 500 in Figure 5, and will not be described in detail here.

[0276] Optionally, the second CDN central node 902 includes a first scheduling strategy;

[0277] At least one third CDN center node 903 in the CDN center node is used to send a second pull stream request to the second CDN center node 902;

[0278] The second CDN central node 902 is used to send a first pull request to the first CDN central node based on the first information and the second pull request when selecting the first CDN central node to transcode the data stream based on the first scheduling strategy.

[0279] Optionally, the detailed implementation process of the third CDN central node 903 sending the second pull request to the second CDN central node 902 is shown in step 505 of method 500 in Figure 5, and will not be described in detail here.

[0280] Optionally, when the second CDN center node 902 selects the first CDN center node to transcode the data stream based on the first scheduling strategy, the detailed implementation process of sending the first pull request to the first CDN center node based on the first information and the second pull request is shown in step 506 of method 500 in Figure 5, and will not be described in detail here.

[0281] Optionally, the third CDN central node 903 includes a second scheduling strategy;

[0282] The third CDN center node 903 is used to send a second pull request to the second CDN center node 902 when selecting the second CDN center node 902 based on the second scheduling strategy.

[0283] Optionally, when the third CDN center node 903 selects the second CDN center node 902 based on the second scheduling strategy, the detailed implementation process of sending the second pull request to the second CDN center node 902 is shown in step 505 of method 500 in Figure 5, and will not be described in detail here.

[0284] Optionally, the content distribution system 900 further includes a global management platform 904;

[0285] The first CDN central node 901 is also used to send second information to the global management platform 904 and at least one CDN central node. The second information includes the identification information and location information of the transcoded first data stream.

[0286] The global management platform 904 is used to send the second information to CDN center nodes other than the first CDN center node 901;

[0287] In this case, the timestamp of each CDN central node receiving the second information sent by the first CDN central node 901 is earlier than the timestamp of receiving the second information sent by the global management platform 904.

[0288] Optionally, the detailed implementation process of the first CDN central node 901 sending the second information can be found in step 507 of method 500 shown in Figure 5, and will not be described in detail here.

[0289] Optionally, the detailed implementation process of the global management platform 904 sending the second information to CDN central nodes other than the first CDN central node 901 is shown in step 507 of method 500 in Figure 5, and will not be described in detail here.

[0290] Optionally, the region also includes a live streaming origin data platform 905, and the first CDN center node 901 includes a third scheduling strategy, with the first pull request carrying a transcoding template;

[0291] The first CDN central node 901 is also used to send the first data stream to the live streaming origin data platform 905;

[0292] The first CDN central node 901 is also used to send a third pull request to the live streaming origin data platform when selecting the live streaming origin data platform to transcode the data stream based on the third scheduling strategy. The third pull request carries the transcoding template.

[0293] The live streaming source data platform 905 is used to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream.

[0294] The live streaming origin data platform 905 is also used to send the transcoded first data stream to the first CDN center node 901;

[0295] The first CDN central node 901 is used to send the transcoded first data stream to the second CDN central node 902.

[0296] Optionally, the detailed implementation process of the first CDN central node 901 sending the first data stream to the live streaming origin data platform 905 is shown in step 503 of method 500 in Figure 5, and will not be described in detail here.

[0297] Optionally, when the first CDN central node 901 selects the live streaming origin data platform to transcode the data stream based on the third scheduling strategy, the detailed implementation process of sending the third pull request to the live streaming origin data platform is shown in step 507 of method 500 in Figure 5, and will not be described in detail here.

[0298] Optionally, the live streaming source data platform 905 transcodes the first data stream based on the transcoding template. For the detailed implementation process of obtaining the transcoded first data stream, please refer to the relevant content of step 708 of method 700 shown in Figure 7, which will not be described in detail here.

[0299] Optionally, the detailed implementation process of the live streaming origin data platform 905 sending the transcoded first data stream to the first CDN central node 901 is shown in step 709 of method 700 in Figure 7, and will not be described in detail here.

[0300] Optionally, the detailed implementation process of the first CDN central node 901 sending the transcoded first data stream to the second CDN central node 902 is shown in step 507 of method 500 in Figure 5, and will not be described in detail here.

[0301] Optionally, the extent of a region is determined based on the latency and / or distance between the multiple CDN central nodes included in the region.

[0302] In this embodiment, since the first CDN central node and at least one CDN central node are located in the same region, after receiving the first data stream, the first CDN central node sends first information about the first data stream to at least one CDN central node. Each of the at least one CDN central node quickly receives the first information. Thus, when a second CDN central node among the at least one CDN central nodes requests to pull a data stream, the second CDN central node receives the first information earlier than the pull request. Therefore, based on the first information, it can be determined that the data stream to be pulled is located on the first CDN central node, and the data stream is pulled from the first CDN central node. This allows users in the region to pull live stream data streams on the CDN central nodes in the region using the first information, thereby reducing data stream pull latency and network resource consumption.

[0303] Referring to Figure 10, this application embodiment provides a data stream processing device 1000, which is deployed on a live streaming source data platform in a content delivery network 100 shown in Figures 1, 2, 3, or 4. The device 1000 includes a fourth scheduling strategy, and the region where the device 1000 is located also includes a third-party transcoding service platform and a content delivery network (CDN) central node. The device 1000 includes:

[0304] The receiving unit 1001 is used to receive the first data stream sent by the CDN central node;

[0305] The receiving unit 1001 is also used to receive a third streaming request, which carries a transcoding template.

[0306] The sending unit 1002 is used to send a fourth pull stream request and a first data stream to the third-party transcoding service platform when selecting a third-party transcoding service platform to transcode the data stream based on the fourth scheduling strategy. The fourth pull stream request is used to instruct the third-party transcoding service platform to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream.

[0307] The receiving unit 1001 is also used to receive the first data stream after transcoding sent by a third-party transcoding service platform.

[0308] Optionally, the detailed implementation process of receiving the first data stream sent by the CDN central node by the receiving unit 1001 is shown in step 701 of method 700 in Figure 7, and will not be described in detail here.

[0309] Optionally, the detailed implementation process of receiving the third pull request by the receiving unit 1001 is described in step 702 of method 700 shown in Figure 7, and will not be described in detail here.

[0310] Optionally, the detailed implementation process of sending the fourth pull request and the first data stream to the third-party transcoding service platform by the sending unit 1002 is described in step 704 of method 700 shown in Figure 7, and will not be described in detail here.

[0311] Optionally, the detailed implementation process of receiving the first transcoded data stream sent by the third-party transcoding service platform by the receiving unit 1001 is shown in step 707 of method 700 in Figure 7, and will not be described in detail here.

[0312] Optionally, the device 1000 further includes: a processing unit 1003;

[0313] The processing unit 1003 is used to transcode the first data stream based on the transcoding template when selecting the device 1000 to transcode the data stream based on the fourth scheduling strategy, so as to obtain the transcoded first data stream.

[0314] Optionally, the processing unit 1003 transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. For the detailed implementation process, please refer to the relevant content of step 708 of method 700 shown in Figure 7, which will not be described in detail here.

[0315] Optionally, the sending unit 1002 is also used to send third information to the global management platform, the third information including the identification information and location information of the transcoded first data stream.

[0316] Optionally, the detailed implementation process of sending third information by the sending unit 1002 to the global management platform is described in step 709 of method 700 shown in Figure 7, and will not be described in detail here.

[0317] In this embodiment, when the sending unit 1002 selects a third-party transcoding service platform to transcode the data stream based on the fourth scheduling strategy, it sends a fourth pull request and a first data stream to the third-party transcoding service platform. The fourth pull request instructs the third-party transcoding service platform to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream. This allows the transcoding tasks of the device 1000 to be distributed through the third-party transcoding service platform.

[0318] Referring to Figure 11, this application embodiment provides a data stream processing device 1100, which is deployed on a global management platform in the content delivery network 100 shown in Figures 1, 2, 3, or 4. The device 1100 is used to manage the live streaming source data platform and the content delivery network (CDN) central node included in the region. The CDN central node is used to send a first data stream to the live streaming source data platform. The device 1100 includes:

[0319] The receiving unit 1101 is used to receive second information sent by the CDN central node when transcoding the first data stream to obtain the transcoded first data stream. The second information includes the identification information and the first location information of the transcoded first data stream.

[0320] The receiving unit 1101 is also used to receive third information sent by the live streaming source station data platform when transcoding the first data stream to obtain the transcoded first data stream. The third information includes the identification information and second location information of the transcoded first data stream.

[0321] The processing unit 1102 is used to stop one of the CDN central node and the live streaming origin data platform from continuing to transcode the first data stream when it is determined, based on the second information and the third information.

[0322] Optionally, the device 1100 further includes: a transmitting unit 1103, configured to:

[0323] Send a first stop command to the CDN central node, the first stop command being used to instruct the CDN central node to stop transcoding the first data stream; or...

[0324] A second stop command is sent to the live streaming source data platform. The second stop command is used to instruct the live streaming source data platform to stop transcoding the first data stream.

[0325] In this embodiment, when the processing unit determines, based on the second and third information, that the CDN central node and the live streaming origin data platform are repeatedly transcoding the first data stream, it stops one of the CDN central node and the live streaming origin data platform from continuing to transcode the first data stream. This allows one device to continue transcoding the first data stream, stopping repeated transcoding and saving computing and network resources.

[0326] Referring to Figure 12, this application embodiment provides a computing device 1200. For example, the computing device 1200 may be a CDN central node, a live streaming source data platform, or a global management platform in the content delivery network 100 shown in Figures 1-4.

[0327] As shown in Figure 12, the computing device 1200 includes a bus 1202, a processor 1204, a memory 1206, and a communication interface 1208. The processor 1204, the memory 1206, and the communication interface 1208 communicate with each other via the bus 1202. The computing device 1200 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 1200.

[0328] Bus 1202 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 12, but this does not imply that there is only one bus or one type of bus. Bus 1202 can include pathways for transmitting information between various components of computing device 1200 (e.g., processor 1204, memory 1206, communication interface 1208).

[0329] The processor 1204 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0330] The memory 1206 may include volatile memory, such as random access memory (RAM). The memory 1206 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0331] The memory 1206 stores executable program code, and the processor 1204 executes this executable program code to implement the functions of the first CDN central node 901, the second CDN central node 902, or the third CDN central node 903 in the content distribution system 900 shown in FIG9, thereby implementing the method provided in any of the above embodiments. That is, the memory 1206 stores instructions for executing the method provided in any of the above embodiments. Alternatively,

[0332] Referring to Figure 12 or Figure 13, the memory 1206 stores executable program code. The processor 1204 executes this executable program code to implement the functions of the receiving unit 1001, the transmitting unit 1002, and the processing unit 1003 in the device 1000 shown in Figure 10, thereby implementing the method provided in any of the above embodiments. That is, the memory 1206 stores instructions for executing the method provided in any of the above embodiments. Alternatively,

[0333] Referring to Figure 12 or Figure 13, the memory 1206 stores executable program code. The processor 1204 executes this executable program code to implement the functions of the receiving unit 1101, processing unit 1102, and transmitting unit 1103 in the device 1100 shown in Figure 11, thereby implementing the method provided in any of the above embodiments. That is, the memory 1206 stores instructions for executing the method provided in any of the above embodiments. Alternatively,

[0334] The communication interface 1208 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 1200 and other devices or communication networks.

[0335] This application also provides a cluster for processing data streams. The data stream processing cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0336] As shown in Figure 14, the data stream processing cluster includes at least one computing device 1200. The memory 1206 of one or more computing devices 1200 in the data stream processing cluster may store the same instructions for performing the methods provided in any of the above embodiments.

[0337] In some possible implementations, the memory 1206 of one or more computing devices 1200 in the data stream processing cluster may also store partial instructions for executing the above-described data stream processing method. In other words, a combination of one or more computing devices 1200 can jointly execute instructions for performing the method provided in any of the above embodiments.

[0338] In some possible implementations, one or more computing devices in the cluster processing the data stream can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 14 illustrates one possible implementation. As shown in Figure 14, two computing devices 1200A and 1200B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device.

[0339] In some possible implementations, the memory 1206 in computing device 1200A stores instructions for performing the functions of processing unit 1003 in the embodiment shown in FIG. 10. Meanwhile, the memory 1206 in computing device 1200B stores instructions for performing the functions of receiving unit 1001 and transmitting unit 1002 in the embodiment shown in FIG. 10.

[0340] In some possible implementations, the memory 1206 in computing device 1200A stores instructions for performing the functions of processing unit 1102 in the embodiment shown in FIG11. Meanwhile, the memory 1206 in computing device 1200B stores instructions for performing the functions of receiving unit 1101 and transmitting unit 1103 in the embodiment shown in FIG11.

[0341] It should be understood that the functions of computing device 1200A shown in Figure 14 can also be performed by multiple computing devices 1200. Similarly, the functions of computing device 1200B can also be performed by multiple computing devices 1200.

[0342] This application also provides another data stream processing cluster. The connection relationship between the computing devices in this data stream processing cluster can be similar to the connection method of the data stream processing cluster described in FIG14. The difference is that the memory 1206 in one or more computing devices 1200 in this data stream processing cluster can store the same instructions for executing the methods provided in any of the above embodiments.

[0343] In some possible implementations, the memory 1206 of one or more computing devices 1200 in the data stream processing cluster may also store partial instructions for executing the methods provided in any of the above embodiments. In other words, a combination of one or more computing devices 1200 can jointly execute instructions for executing the methods provided in any of the above embodiments.

[0344] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform the methods provided in any of the above embodiments.

[0345] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct a computing device to perform the method provided in any of the above embodiments.

[0346] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0347] The above description is merely an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.

Claims

1. A method for processing data streams, characterized in that, The method is applied to a content distribution system, the content distribution system including a first content distribution network (CDN) central node, and the region where the first CDN central node is located further includes at least one CDN central node, the method including: The first CDN central node receives the first data stream of the live streaming service; The first CDN central node sends first information of the first data stream to the at least one CDN central node respectively. The first information includes the identification information and location information of the first data stream. The second CDN center node in the at least one CDN center node sends a first pull request to the first CDN center node based on the first information; The first CDN central node sends the first data stream to the second CDN central node.

2. The method as described in claim 1, characterized in that, The first pull request carries a transcoding template, and the first CDN central node sends the first data stream to the second CDN central node, including: The first CDN central node transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. The first CDN central node sends the transcoded first data stream to the second CDN central node.

3. The method as described in claim 1 or 2, characterized in that, The second CDN central node sends a first pull request to the first CDN central node based on the first information, including: After receiving the second pull request from the terminal device, the second CDN central node sends the first pull request to the first CDN central node based on the first information.

4. The method as described in claim 1, characterized in that, The first pull request carries a transcoding template. Before the second CDN central node sends the first pull request to the first CDN central node based on the first information, it also includes: The third CDN central node in the at least one CDN central node sends a second pull stream request to the second CDN central node. The second pull stream request is used to request the second CDN central node to send the first pull stream request to the first CDN central node based on the first information. After the first CDN central node sends the first data stream to the second CDN central node, the process further includes: The second CDN central node transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream; The second CDN central node sends the transcoded first data stream to the third CDN central node.

5. The method as described in claim 1 or 2, characterized in that, The second CDN central node includes a first scheduling policy. Before the second CDN central node sends a first pull request to the first CDN central node based on the first information, it also includes: The third CDN central node in the at least one CDN central node sends a second pull request to the second CDN central node; The second CDN central node sends a first pull request to the first CDN central node based on the first information, including: When the second CDN central node selects the first CDN central node to transcode the data stream based on the first scheduling strategy, it sends the first pull request to the first CDN central node based on the first information and the second pull request.

6. The method as described in claim 4 or 5, characterized in that, The third CDN central node includes a second scheduling strategy, and the third CDN central node sends a second pull request to the second CDN central node, including: When the third CDN center node selects the second CDN center node based on the second scheduling strategy, it sends the second pull request to the second CDN center node.

7. The method as described in claim 2, characterized in that, The method further includes: The first CDN central node sends second information to the global management platform and the at least one CDN central node. The second information includes the identification information and location information of the transcoded first data stream. The global management platform is used to send the second information to CDN central nodes other than the first CDN central node. Wherein, the timestamp of each CDN center node receiving the second information sent by the first CDN center node is earlier than the timestamp of receiving the second information sent by the global management platform.

8. The method according to any one of claims 1-7, characterized in that, The region also includes a live streaming origin data platform, the first CDN central node includes a third scheduling strategy, the first pull request carries a transcoding template, and the method further includes: The first CDN central node sends the first data stream to the live streaming origin data platform; When the first CDN central node selects the live streaming origin data platform to transcode the data stream based on the third scheduling strategy, it sends a third pull stream request to the live streaming origin data platform, and the third pull stream request carries the transcoding template. The live streaming source data platform transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream. The live streaming source data platform sends the transcoded first data stream to the first CDN central node; The first CDN central node sends the first data stream to the second CDN central node, including: The first CDN central node sends the transcoded first data stream to the second CDN central node.

9. The method according to any one of claims 1-8, characterized in that, The extent of the region is determined based on the latency and / or distance between the multiple CDN central nodes included in the region.

10. A method for processing data streams, characterized in that, The method is applied to a live streaming source data platform within a region, the live streaming source data platform including a fourth scheduling strategy, and the region also including a third-party transcoding service platform and a content delivery network (CDN) central node. The method includes: The live streaming origin data platform receives the first data stream sent by the CDN central node; The live streaming source data platform receives a third streaming request, and the third streaming request carries a transcoding template. When the live streaming source data platform selects the third-party transcoding service platform to transcode the data stream based on the fourth scheduling strategy, it sends a fourth pull stream request and the first data stream to the third-party transcoding service platform. The fourth pull stream request is used to instruct the third-party transcoding service platform to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream. The live streaming source data platform receives the first data stream after transcoding sent by the third-party transcoding service platform.

11. The method as described in claim 10, characterized in that, The method further includes: When the live streaming source data platform selects the live streaming source data platform to transcode the data stream based on the fourth scheduling strategy, it transcodes the first data stream based on the transcoding template to obtain the transcoded first data stream.

12. The method as described in claim 10 or 11, characterized in that, The method further includes: The live streaming source data platform sends third information to the global management platform. The third information includes the identification information and location information of the transcoded first data stream.

13. A method for processing data streams, characterized in that, The method is applied to a global management platform, which manages the live streaming source data platform and the content delivery network (CDN) central node within a region. The CDN central node sends a first data stream to the live streaming source data platform. The method includes: The global management platform receives second information sent by the CDN central node when it transcodes the first data stream to obtain the transcoded first data stream. The second information includes the identification information and the first location information of the transcoded first data stream. The global management platform receives third information sent by the live streaming source data platform when it transcodes the first data stream to obtain the transcoded first data stream. The third information includes the identification information and second location information of the transcoded first data stream. When the global management platform determines, based on the second information and the third information, that the CDN central node and the live streaming origin data platform are repeatedly transcoding the first data stream, it shall stop either the CDN central node or the live streaming origin data platform from continuing to transcode the first data stream.

14. The method as described in claim 13, characterized in that, The global management platform stops either the CDN central node or the live streaming origin data platform from transcoding the first data stream, including: The global management platform sends a first stop command to the CDN central node, the first stop command being used to instruct the CDN central node to stop transcoding the first data stream; or... The global management platform sends a second stop command to the live streaming source data platform, which instructs the live streaming source data platform to stop transcoding the first data stream.

15. A content distribution system, characterized in that, The content distribution system includes a first content distribution network (CDN) central node, and the region where the first CDN central node is located also includes at least one CDN central node. The first CDN central node is used to receive the first data stream of the live streaming service; The first CDN central node is further configured to send first information of the first data stream to the at least one CDN central node respectively, the first information including the identification information and location information of the first data stream; The second CDN center node among the at least one CDN center nodes is used to send a first pull request to the first CDN center node based on the first information; The first CDN central node is also used to send the first data stream to the second CDN central node.

16. The content distribution system as described in claim 15, characterized in that, The first pull request carries a transcoding template, and the first CDN central node is used for: The first data stream is transcoded based on the transcoding template to obtain the transcoded first data stream; The transcoded first data stream is sent to the second CDN central node.

17. The content distribution system as described in claim 15 or 16, characterized in that, The second CDN central node is used to send the first pull request to the first CDN central node based on the first information after receiving the second pull request from the terminal device.

18. The content distribution system as described in claim 15, characterized in that, The first pull request carries a transcoding template; The third CDN center node among the at least one CDN center nodes is used to send a second pull stream request to the second CDN center node. The second pull stream request is used to request the second CDN center node to send the first pull stream request to the first CDN center node based on the first information. The second CDN central node is also used to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream; The second CDN central node is also used to send the transcoded first data stream to the third CDN central node.

19. The content distribution system as described in claim 15 or 16, characterized in that, The second CDN central node includes the first scheduling strategy; The third CDN center node among the at least one CDN center nodes is used to send a second pull request to the second CDN center node; The second CDN central node is used to send the first pull request to the first CDN central node based on the first information and the second pull request when selecting the first CDN central node to transcode the data stream based on the first scheduling strategy.

20. The content distribution system as described in claim 18 or 19, characterized in that, The third CDN central node includes a second scheduling strategy; The third CDN center node is used to send the second pull request to the second CDN center node when selecting the second CDN center node based on the second scheduling strategy.

21. The content distribution system as described in claim 16, characterized in that, The content distribution system also includes a global management platform; The first CDN central node is also used to send second information to the global management platform and the at least one CDN central node, the second information including the identification information and location information of the transcoded first data stream; The global management platform is used to send the second information to CDN center nodes other than the first CDN center node; Wherein, the timestamp of each CDN center node receiving the second information sent by the first CDN center node is earlier than the timestamp of receiving the second information sent by the global management platform.

22. The content distribution system as described in any one of claims 15-21, characterized in that, The region also includes a live streaming origin data platform, the first CDN central node includes a third scheduling strategy, and the first pull request carries a transcoding template. The first CDN central node is also used to send the first data stream to the live streaming origin data platform; The first CDN central node is also used to send a third pull request to the live streaming origin data platform when selecting the live streaming origin data platform to transcode the data stream based on the third scheduling strategy. The third pull request carries the transcoding template. The live streaming source data platform is used to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream. The live streaming origin data platform is also used to send the transcoded first data stream to the first CDN central node; The first CDN central node is used to send the transcoded first data stream to the second CDN central node.

23. The content distribution system as described in any one of claims 15-22, characterized in that, The extent of the region is determined based on the latency and / or distance between the multiple CDN central nodes included in the region.

24. An apparatus for processing data streams, characterized in that, The device includes a fourth scheduling strategy. The region where the device is located also includes a third-party transcoding service platform and a content delivery network (CDN) central node. The device includes: The receiving unit is used to receive the first data stream sent by the CDN central node; The receiving unit is also configured to receive a third streaming request, the third streaming request carrying a transcoding template; The sending unit is used to send a fourth pull stream request and the first data stream to the third-party transcoding service platform when selecting the third-party transcoding service platform to transcode the data stream based on the fourth scheduling strategy. The fourth pull stream request is used to instruct the third-party transcoding service platform to transcode the first data stream based on the transcoding template to obtain the transcoded first data stream. The receiving unit is further configured to receive the transcoded first data stream sent by the third-party transcoding service platform.

25. The apparatus as claimed in claim 24, characterized in that, The device further includes: a processing unit; The processing unit is used to transcode the first data stream based on the transcoding template when selecting the device to transcode the data stream based on the fourth scheduling strategy, so as to obtain the transcoded first data stream.

26. The apparatus as claimed in claim 24 or 25, characterized in that, The sending unit is also used to send third information to the global management platform, the third information including the identification information and location information of the transcoded first data stream.

27. An apparatus for processing data streams, characterized in that, The device is used to manage the live streaming source data platform and the content delivery network (CDN) central node included in the region. The CDN central node is used to send a first data stream to the live streaming source data platform. The device includes: The receiving unit is configured to receive second information sent by the CDN central node when transcoding the first data stream to obtain the transcoded first data stream, the second information including the identification information and the first location information of the transcoded first data stream; The receiving unit is further configured to receive third information sent by the live streaming source data platform when transcoding the first data stream to obtain the transcoded first data stream, the third information including the identification information and second location information of the transcoded first data stream. The processing unit is configured to, based on the second information and the third information, determine that when the CDN central node and the live streaming origin data platform are repeatedly transcoding the first data stream, stop one of the CDN central node and the live streaming origin data platform from continuing to transcode the first data stream.

28. The apparatus as claimed in claim 27, characterized in that, The apparatus further includes a transmitting unit, the transmitting unit being configured to: Send a first stop command to the CDN central node, the first stop command being used to instruct the CDN central node to stop transcoding the first data stream; or... The second stop command is sent to the live streaming source data platform, which instructs the live streaming source data platform to stop transcoding the first data stream.

29. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1-14.

30. A computer-readable storage medium, characterized in that, Includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in any one of claims 1-14.

31. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster performs the method as described in any one of claims 1-14.

Citation Information

Patent Citations

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

    CN108307198A

  • Live video stream guiding method, CCL server and system

    CN108737405A

  • Transcoding method, server and computer readable storage medium

    CN109963169A

  • Content distribution method and device, content distribution network, equipment and medium

    CN115643203A

  • Content delivery network system and content delivery method

    WO2023109863A1