Content distribution system, stream information processing method, processing media stream method and apparatus
By generating and distributing filtering information through the central node and determining the media stream type through the edge nodes, the problems of remote query latency and big data distribution in the content distribution system are solved, and real-time processing and bandwidth optimization are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ALIBABA (CHINA) CO LTD
- Filing Date
- 2022-09-16
- Publication Date
- 2026-05-29
AI Technical Summary
In existing content distribution systems, remote queries for each playback request increase latency, impacting user experience. Furthermore, the large volume of data distributed across the entire network stream requires high bandwidth and machine specifications, making real-time distribution difficult.
The central node obtains a set of streaming information for a preset type of media stream, compresses it into filtered information using a Bloom filter algorithm, and the data volume is smaller than the original streaming information set. This filtered information is then sent to the edge nodes, which determine the media stream type based on the filtered information and perform processing operations.
It reduced the number of remote queries, lowered bandwidth usage, enabled real-time delivery, optimized bandwidth utilization, avoided latency, and improved user experience.
Smart Images

Figure CN115623086B_ABST
Abstract
Description
Technical Field
[0001] The embodiments in this specification relate to the field of computer technology, and in particular to methods for processing streaming information and methods for processing media streams. Background Technology
[0002] In content distribution systems, bandwidth costs constitute the majority of the cost. Therefore, optimizing bandwidth costs is a key issue for improving the service capabilities of content distribution systems. One primary method for optimizing bandwidth costs is processing the media stream according to relevant information and corresponding strategies. A common industry practice is that each time an edge node receives a playback request, it queries the central service for information about the requested stream and then processes it according to the established strategy.
[0003] However, the above solution would result in a remote query for each playback, increasing playback latency and leading to a poor user experience. Summary of the Invention
[0004] In view of this, embodiments of this specification provide a content distribution system, a streaming information processing method, and a media stream processing method. One or more embodiments of this specification also relate to streaming information processing apparatus, media stream processing apparatus, computing devices, computer-readable storage media, and computer programs to address technical deficiencies in the prior art.
[0005] According to a first aspect of the embodiments of this specification, a content distribution system is provided, comprising: a central node configured to acquire a set of stream information of a preset type of media stream, and, using the stream information of the preset type of media stream, wherein the amount of data of the filter information acquired is less than the amount of data of the stream information set, to send the filter information to an edge node; and an edge node configured to receive the filter information sent by the central node, and, in response to receiving a processing request for a media stream, using the media stream information of the media stream to be processed by the processing request and the filter information, to determine whether the media stream to be processed by the processing request is of the preset type, and to perform a corresponding processing operation based on the determination result.
[0006] According to a second aspect of the embodiments of this specification, a streaming information processing method is provided, applied to a central node in a content distribution system, comprising: acquiring a streaming information set of media streams of a preset type; acquiring filtering information capable of filtering the media streams of the preset type using the streaming information set, wherein the data volume of the filtering information is less than the data volume of the streaming information set; and distributing the filtering information to edge nodes in the content distribution system.
[0007] Optionally, obtaining the streaming information set of a preset type of media stream includes: querying the streaming information set that reaches the online user number threshold range of the hot stream based on the online user number threshold range of the hot stream; and / or, querying the streaming information set that reaches the online user number threshold range of the cold stream based on the online user number threshold range of the cold stream.
[0008] Optionally, obtaining filtering information capable of filtering the preset type of media stream using the stream information set includes: compressing the stream information set using a Bloom filter generation algorithm to obtain a Bloom filter for the preset type of media stream.
[0009] Optionally, the step of sending the filtering information to the edge nodes of the content distribution system includes: sending the filtering information to the edge nodes of the content distribution system based on a real-time communication protocol.
[0010] According to a third aspect of the embodiments of this specification, a streaming information processing apparatus is provided, configured in a central node of a content distribution system, comprising: an information acquisition module configured to acquire a streaming information set of a preset type of media stream; an information processing module configured to use the streaming information set to acquire filtering information capable of filtering the preset type of media stream, wherein the data volume of the filtering information is less than the data volume of the streaming information set; and an information delivery module configured to deliver the filtering information to edge nodes of the content distribution system.
[0011] According to a fourth aspect of the embodiments of this specification, a method for processing media streams is provided, applied to an edge node in a content distribution system, comprising: receiving filtering information sent by a central node, wherein the filtering information is obtained using a stream information set of a preset type of media stream, and the data volume of the filtering information is less than the data volume of the stream information set; responding to receiving a processing request for a media stream, determining, using the filtering information, whether the media stream to be processed by the processing request is of the preset type; and performing a corresponding processing operation based on the determination result.
[0012] Optionally, the filtering information includes: filtering information for hot flow and / or filtering information for cold flow.
[0013] Optionally, the corresponding processing operation based on the judgment result includes: if the media stream to be pulled by the processing request is a hot stream, pulling the corresponding media stream back to the source; if the media stream to be pulled by the processing request is a cold stream, sending redirection information to the requesting end of the processing request, so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for pulling the stream.
[0014] Optionally, determining whether the media stream to be processed by the processing request is of the preset type using the media stream information of the media stream to be processed by the processing request and the filtering information includes: using the filtering information of hot streams to determine whether the media stream to be pulled by the processing request is a hot stream; if not, using the filtering information of cold streams to determine whether the media stream to be pulled by the processing request is a cold stream.
[0015] According to a fifth aspect of the embodiments of this specification, a media stream processing device is provided, configured in an edge node of a content distribution system, comprising: a receiving module configured to receive filtering information sent by a central node, wherein the filtering information is obtained using a stream information set of a preset type of media stream, and the data volume of the filtering information is less than the data volume of the stream information set; a judging module configured to, in response to receiving a processing request for a media stream, judge whether the media stream to be processed by the processing request is of the preset type using the media stream information of the media stream to be processed by the processing request and the filtering information; and a processing module configured to perform corresponding processing operations based on the judging result.
[0016] According to a sixth aspect of the embodiments of this specification, a computing device is provided, including: a memory and a processor; the memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions, wherein when executed by the processor, the computer-executable instructions implement the steps of the streaming information processing method or the media streaming processing method described in any embodiment of this specification.
[0017] According to a seventh aspect of the embodiments of this specification, a computer-readable storage medium is provided that stores computer-executable instructions, which, when executed by a processor, implement the steps of the streaming information processing method or the media streaming processing method described in any embodiment of this specification.
[0018] According to an eighth aspect of the embodiments of this specification, a computer program is provided, wherein when the computer program is executed in a computer, it causes the computer to perform the steps of the streaming information processing method or the media streaming processing method described in any embodiment of this specification.
[0019] This specification implements a content distribution system in one embodiment. The central node in this system acquires a set of stream information for a preset type of media stream, uses this stream information set to obtain filtering information that can filter the preset type of media stream, and the data volume of the filtering information is smaller than the data volume of the stream information set. The filtering information is then sent to the edge nodes in the content distribution system. After receiving the filtering information from the central node, the edge nodes can locally use the media stream information and the filtering information of the media stream to be processed in the processing request to determine whether the media stream to be processed in the processing request is of a preset type. Based on the determination result, corresponding processing operations are performed. This eliminates the need for remote querying for each received processing request. Furthermore, the amount of filtering information obtained after data processing is small, consuming less bandwidth, and achieving real-time delivery, thus meeting the dual needs of bandwidth optimization and latency avoidance. Attached Figure Description
[0020] Figure 1 This is a schematic diagram of the structure of a content distribution system provided in one embodiment of this specification;
[0021] Figure 2 This is a schematic diagram of the structure of a content distribution system provided in another embodiment of this specification;
[0022] Figure 3 This is a flowchart of a stream information processing method provided in one embodiment of this specification;
[0023] Figure 4 This is a schematic diagram of the structure of a streaming information processing device provided in one embodiment of this specification;
[0024] Figure 5 This is a flowchart of a media stream processing method provided in one embodiment of this specification;
[0025] Figure 6 This is a schematic diagram of the structure of a media stream processing device provided in one embodiment of this specification;
[0026] Figure 7 This is a structural block diagram of a computing device provided in one embodiment of this specification. Detailed Implementation
[0027] Many specific details are set forth in the following description to provide a full understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar extensions without departing from the spirit of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.
[0028] The terminology used in one or more embodiments of this specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of this specification. The singular forms “a,” “described,” and “the” as used in one or more embodiments of this specification and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.
[0029] It should be understood that although the terms first, second, etc., may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, first may also be referred to as second without departing from the scope of one or more embodiments of this specification, and similarly, second may also be referred to as first. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to a determination."
[0030] First, the terms and concepts used in one or more embodiments of this specification will be explained.
[0031] Cold flow, hot flow: In live streaming, the temperature of the flow indicates the number of viewers. For example, a hot flow means that the number of viewers has reached the hot flow threshold range, which is a large number, while a cold flow means that the number of viewers has reached the cold flow threshold range, which is a small number.
[0032] CDN stands for Content Delivery Network.
[0033] A Bloom filter is a long binary vector and a series of random mapping functions. Bloom filters can be used to determine whether an element is in a set, offering high space and query efficiency.
[0034] Currently, in large-scale content delivery systems, when edge nodes receive playback or other processing requests, they query the central node for information about the media stream being requested before processing it according to a strategy. This approach adds a remote query for each playback, increasing processing latency and significantly impacting user experience. To avoid remote queries, the central node could proactively distribute the streaming information of all media streams across the network to each edge node. However, the amount of streaming data is too large. For example, in some large-scale content delivery systems, the number of online streams can reach millions, and the total streaming information can exceed 100MB. Distributing 100MB of data across the entire network to thousands of edge nodes would place extremely high demands on bandwidth and hardware, making it practically impossible to achieve real-time distribution across the entire network. To address this issue, analysis of application scenarios reveals that in practical applications, it is only necessary to determine the type of media stream for policy-based processing. Information such as the stream name can be considered redundant. As long as the edge nodes can determine the type of media stream, some related information does not actually need to be distributed. Therefore, in the content distribution system of this embodiment, the central node processes the stream information according to its type to obtain corresponding filtering information, and sends the filtering information to the edge nodes. This enables the edge nodes to use the media stream information and filtering information of the media stream to be processed in the processing request to determine the type of the media stream, and to perform corresponding processing operations according to the strategy based on the determination result.
[0035] Based on this, this specification provides a content distribution system, a streaming information processing method, and a media stream processing method. This specification also relates to streaming information processing apparatus, media stream processing apparatus, computing devices, and computer-readable storage media, which will be described in detail in the following embodiments.
[0036] See Figure 1 , Figure 1 A schematic diagram of the structure of a content distribution system according to one embodiment of this specification is shown. Figure 1 As shown, the content distribution system includes a central node 102 and edge nodes 104. The edge nodes 104 may include multiple nodes. Figure 1 Edge node 104 is represented by edge node A, edge node B, and edge node C.
[0037] The central node 102 is configured to acquire a set of streaming information of a preset type of media stream, use the streaming information set to acquire filtering information that can filter the preset type of media stream, wherein the amount of data in the filtering information is less than the amount of data in the streaming information set, and send the filtering information to the edge nodes of the content distribution system.
[0038] The central node is the core of the content distribution system, responsible for content distribution and management. For example, the central node may include, but is not limited to, a network center service and a global load balancing redirection and parsing system. The network center service may include applications for implementing the streaming information processing methods provided in the embodiments of this specification, as well as applications of other methods to support content distribution. The global load balancing redirection and parsing system is responsible for load balancing across all nodes. The central node can obtain updated filtering information based on the updated streaming information set as needed, such as periodically, and distribute the updated filtering information to edge nodes.
[0039] The preset type can be a media stream type set according to the application scenario, and may include one or more types. For example, in an application scenario that distinguishes between cold streams and hot streams and corresponds to different streaming strategies, the preset type may include cold streams and / or hot streams. As another example, in an application scenario that distinguishes between conference live streams and broadcaster live streams and corresponds to different streaming strategies, the preset type may include conference live streams and broadcaster live streams.
[0040] The method of obtaining filtering information capable of filtering the preset type of media streams by utilizing the stream information set is not limited. The filtering information refers to information that can determine whether the media stream information of any one or more media streams is in the stream information set. In practical applications, the filtering information can be represented as a set of data or a filtering tool; this specification does not limit this. For example, a Bloom filter generation algorithm can be used to compress the stream information set to obtain a Bloom filter for the preset type of media streams. As another example, a lossless compression algorithm can be used to compress the stream information set to obtain compressed data.
[0041] The streaming information describes some basic attributes of the media stream, such as, but not limited to, domain name, application name, stream name, video resolution, etc.
[0042] Edge node 104 is configured to receive the filtering information sent by center node 102. In response to receiving a processing request for a media stream, it uses the media stream information of the media stream to be processed in the processing request and the filtering information to determine whether the media stream to be processed in the processing request is of the preset type, and performs corresponding processing operations according to the determination result.
[0043] Edge nodes, located close to the user's network edge, can be multiple and provide storage, computing, and networking resources. Offloading some critical tasks to the access network edge reduces bandwidth and latency overhead caused by network transmission and multi-level forwarding. For example, edge nodes can include load balancers and cache servers. Load balancers are responsible for load balancing, ensuring node efficiency, and collecting information about the node's surroundings to maintain communication. Cache servers store data. Feeding users the information they need through the edge nodes closest to them achieves faster response times.
[0044] The processing request can be any processing request such as playback or streaming.
[0045] The content distribution system provided in the embodiments of this specification can be applied to various media streaming scenarios, such as live video streaming, online video conferencing, online audio conferencing, online video viewing, and online music listening. In a practical application, it is particularly suitable for real-time media streaming scenarios such as live video streaming, online video conferencing, and online audio conferencing.
[0046] Because the central node in this system obtains a set of stream information for a preset type of media stream, and uses the stream information set to obtain filtering information that can filter the preset type of media stream, the data volume of the filtering information is smaller than the data volume of the stream information set. The filtering information is then sent to the edge nodes in the content distribution system. Thus, after receiving the filtering information sent by the central node, the edge nodes do not need to perform remote queries for each received processing request. They can use the media stream information and filtering information of the media stream to be processed in the processing request locally to determine whether the media stream to be processed in the processing request is of the preset type, and perform corresponding processing operations based on the determination result. Moreover, the amount of filtering information obtained after data processing is small, which consumes less bandwidth and can achieve the effect of real-time delivery, meeting the dual needs of optimizing bandwidth and avoiding latency.
[0047] See Figure 2 , Figure 2 A schematic diagram of the structure of a content distribution system according to another embodiment of this specification is shown. Figure 2 As shown, the content distribution system also includes:
[0048] The database is configured to store streaming information of media streams across the entire network of the content distribution system.
[0049] The streaming information of the media stream includes basic attributes such as domain name and stream name, as well as information related to the preset type.
[0050] Accordingly, the central node is configured to query the streaming information of media streams across the entire network from the media stream database, and based on the preset query conditions, query the streaming information of the preset type of media stream from the streaming information of media streams across the entire network.
[0051] The query conditions for preset types can be set according to the common characteristics of the media streams of preset types in actual applications. For example, taking the processing of cold / hot stream information as an example, the query conditions for cold streams can include the threshold range of the number of online users for cold streams, and the query conditions for hot streams can include the threshold range of the number of online users for hot streams.
[0052] The database can be used to store basic attribute information of the media streams across the entire network of the content distribution system, such as stream name and number of online users. Taking the processing of cold / hot stream information as an example, the central node queries the media stream database to retrieve the stream information of the entire network's media streams. Based on a preset threshold range for the number of online users of hot streams, it retrieves the stream information set of hot streams, and / or, based on a preset threshold range for the number of online users of cold streams, it retrieves the stream information set of cold streams. The stream information sets of hot streams and / or cold streams are processed to obtain the filtering information of cold streams and / or hot streams, and the filtering information is then sent to the edge nodes.
[0053] Here, "cold stream" refers to a media stream with a low playback popularity. "Hot stream" refers to a media stream with a high playback popularity. Playback popularity is determined by the number of online users of the media stream. The more online users, reaching the threshold range for the number of online users for a hot stream (e.g., greater than or equal to a preset first threshold), the higher the playback popularity. Conversely, the fewer online users, reaching the threshold range for the number of online users for a cold stream (e.g., less than or equal to a preset second threshold), the lower the playback popularity. Online users of a media stream refer to users currently playing that media stream.
[0054] In practical applications, edge nodes can optimize bandwidth costs by differentiating between cold and hot streams and redirecting cold streams. Specifically, when an edge node receives a playback request, if the requested stream is a cold stream, it redirects the stream to improve the hit rate of cold streams and reduce the back-to-origin bandwidth of the edge node. Additionally, depending on the application scenario, the central node can also distinguish the flow information of warm streams and generate filtering information for those streams; this specification does not impose any limitations on this.
[0055] For example, combining Figure 2 The structural diagram shown illustrates how the content distribution system distributes content through the following steps:
[0056] Step 202: Application A in the central node queries the database to retrieve hot and cold stream information for all currently online streams. Application A is used to implement the stream information processing method provided in the embodiments of this specification. The media streams are divided into a hot stream list and a cold stream list according to a threshold range of the number of online users. Application A, the routing nodes, and the edge nodes form a bidirectional real-time signaling network for bidirectional real-time communication between the live broadcast center and the edge nodes.
[0057] Step 204: Use A to generate Bloom filters for the heat flow list and the cold flow list respectively, resulting in Bloom filters for the cold flow and Bloom filters for the heat flow.
[0058] Step 206: Send the Bloom filters for cold flow and hot flow to the edge nodes via the bidirectional real-time signaling network.
[0059] When an edge node receives a playback request, it first checks the stream to be pulled against a Bloom filter for hot streams to determine if it is a hot stream. If it is not a hot stream, it then checks against a Bloom filter for cold streams to determine if it is a cold stream. If it is a cold stream, it is redirected and scheduled so that the requesting end of the playback request is merged with at least one other requesting end requesting the same media stream at the same edge node for streaming. Therefore, in this embodiment, the Bloom filter compresses the cold / hot stream list data, thereby significantly reducing the amount of data sent. Furthermore, by using a bidirectional real-time signaling network to distribute the Bloom filter, real-time delivery is achieved, reducing delivery latency.
[0060] See Figure 3 , Figure 3 A flowchart illustrating a streaming information processing method according to an embodiment of this specification is shown. This method is applied to a central node in a content distribution system. Figure 3 As shown, the method includes:
[0061] Step 302: Obtain the stream information set of the preset type of media stream.
[0062] The implementation method for the central node to obtain the set of streaming information of a preset type of media stream is not limited and can be set according to the needs of the application scenario. Taking the processing of cold / hot stream information as an example, the central node can query the set of streaming information that reaches the threshold range of the number of online users for hot streams, and / or, based on the threshold range of the number of online users for cold streams, query the set of streaming information that reaches the threshold range of the number of online users for cold streams.
[0063] The source for obtaining media stream information is not limited. For example, in one embodiment, the media stream database stores the streaming information of media streams across the entire network. Based on this, the streaming information of media streams across the entire network can be queried from the media stream database, and then, based on the preset query conditions, the streaming information of the preset type of media stream can be queried from the streaming information of media streams across the entire network. Taking the processing of cold / hot stream information as an example, after retrieving the streaming information of media streams across the entire network, the central node can, based on the threshold range of the number of online users for cold / hot streams, query the set of cold / hot stream streaming information that reaches the threshold range of the number of online users for cold / hot streams.
[0064] For example, in another embodiment, the stream information set of a preset type of media stream can be directly queried from the media stream database based on preset query conditions.
[0065] Step 304: Use the stream information set to obtain filtering information that can filter the preset type of media stream, wherein the amount of data in the filtering information is less than the amount of data in the stream information set.
[0066] For example, a Bloom filter generation algorithm can be used to compress the streaming information set to obtain a Bloom filter for the preset type of media stream. Specifically, the Bloom filter generation algorithm may include: mapping each element of the streaming information set to K points in a bit array using K hash functions, and setting these points to 1 to obtain the Bloom filter. Based on this, when filtering elements, it is only necessary to check whether the points corresponding to the elements input to the Bloom filter are all 1 to determine whether they are elements in the original set. If any of these points is 0, the element is definitely not in the set; if all are 1, the element may be in the set.
[0067] Taking the processing of cold / hot flow information as an example, the flow information set of hot flow and / or the flow information set of cold flow can be processed separately to obtain the filtering information of cold flow and / or the filtering information of hot flow.
[0068] Step 306: Send the filtering information to the edge nodes of the content distribution system.
[0069] For example, the filtering information can be distributed to edge nodes in the content distribution system based on a real-time communication protocol. Figure 2 The WebSocket connection shown is a bidirectional real-time signaling connection based on a real-time communication protocol.
[0070] Because the central node in this method obtains a set of stream information for a preset type of media stream, and uses the stream information set to obtain filtering information that can filter the preset type of media stream, the data volume of the filtering information is smaller than the data volume of the stream information set. The filtering information is then sent to the edge nodes in the content distribution system. After receiving the filtering information sent by the central node, the edge nodes can use the filtering information locally to determine whether the media stream to be processed by the processing request is of the preset type, and perform corresponding processing operations based on the determination result. There is no need to perform remote queries for each received processing request. Moreover, the data volume of the filtering information obtained after data processing is small, which consumes less bandwidth and can achieve the effect of real-time delivery, meeting the dual needs of optimizing bandwidth and avoiding latency.
[0071] For example, the method provided in the embodiments of this specification is applied to a large-scale distributed live streaming system. It uses a Bloom filter to compress hot and cold stream information, compressing millions of streams to less than 2MB. The Bloom filter is then distributed in real time to thousands of edge nodes on the CDN, enabling numerous edge nodes to use the Bloom filter to determine the media stream type.
[0072] Corresponding to the above-described embodiments of the streaming information processing method, this specification also provides embodiments of a streaming information processing device configured in a central node of a content distribution system. Figure 4 A schematic diagram of the structure of a streaming information processing apparatus according to one embodiment of this specification is shown. Figure 4 As shown, the device includes:
[0073] Information acquisition module 402 is configured to acquire a set of streaming information of a media stream of a preset type;
[0074] Information processing module 404 is configured to use the stream information set to obtain filtering information that can filter the preset type of media stream, wherein the amount of data in the filtering information is less than the amount of data in the stream information set;
[0075] The information delivery module 406 is configured to deliver the filtering information to the edge nodes of the content distribution system.
[0076] In one or more embodiments of this specification, the information acquisition module may include:
[0077] The database query submodule is configured to retrieve streaming information of media streams from the media stream database across the entire network;
[0078] The conditional query submodule is configured to retrieve the streaming information of the media stream of the preset type from the streaming information of the media stream of the entire network based on the preset type of query conditions.
[0079] In one or more embodiments of this specification, the information acquisition module may include:
[0080] The heat flow query submodule can be configured to query a set of flow information that reaches the online user number threshold range based on the heat flow;
[0081] And / or,
[0082] The cold flow query submodule can be configured to query a set of flow information that reaches the online user number threshold range of the cold flow.
[0083] In one or more embodiments of this specification, the information processing module can be configured to compress the streaming information set using a Bloom filter generation algorithm to obtain a Bloom filter for the preset type of media stream.
[0084] In one or more embodiments of this specification, the information delivery module can be configured to deliver the filtering information to the edge nodes of the content distribution system based on a real-time communication protocol.
[0085] Because the central node in this device acquires a set of stream information for a preset type of media stream, and uses the stream information set to obtain filtering information that can filter the preset type of media stream, the data volume of the filtering information is smaller than the data volume of the stream information set. The filtering information is then sent to the edge nodes in the content distribution system. After receiving the filtering information sent by the central node, the edge nodes can use the media stream information and filtering information of the media stream to be processed by the processing request locally to determine whether the media stream to be processed by the processing request is of the preset type. Based on the determination result, the corresponding processing operation is performed. There is no need to perform remote query for each received processing request. Moreover, the data volume of the filtering information obtained after data processing is small, which consumes less bandwidth and can achieve the effect of real-time delivery, meeting the dual needs of optimizing bandwidth and avoiding latency.
[0086] The above is an illustrative scheme of a streaming information processing device according to this embodiment. It should be noted that the technical solution of this streaming information processing device and the technical solution of the streaming information processing method described above belong to the same concept. For details not described in detail in the technical solution of the streaming information processing device, please refer to the description of the technical solution of the streaming information processing method described above.
[0087] See Figure 5 , Figure 5 A flowchart illustrating a media stream processing method according to an embodiment of this specification is shown. This method is applied to an edge node in a content distribution system. Figure 5 As shown, the method includes:
[0088] Step 502: Receive filtering information sent by the central node, wherein the filtering information is obtained using a set of streaming information of a preset type of media stream, and the data volume of the filtering information is less than the data volume of the streaming information set.
[0089] Step 504: In response to receiving a processing request for a media stream, determine whether the media stream to be processed by the processing request is of the preset type by using the media stream information of the media stream to be processed by the processing request and the filtering information.
[0090] The processing request can be a request sent by a user to an edge node when using a client to process a media stream. This request may carry information about the media stream, such as a unique stream identifier, stream name, and domain name. The processing can refer to any operation such as playback or streaming.
[0091] For example, if the filtering information is a Bloom filter, based on the principle of the Bloom filter, the stream information carried by the processing request can be input into the Bloom filter to check whether the corresponding point is 1 to determine whether the media stream to be pulled is a preset type.
[0092] Taking an application scenario that differentiates between hot and cold streams and pulls them according to a strategy as an example, the filtering information may include filtering information for hot streams and / or filtering information for cold streams. Accordingly, it can be determined whether the media stream to be pulled in the processing request is a cold stream or a hot stream.
[0093] For example, in some embodiments, the filtering information may include heat flow filtering information. Based on the heat flow filtering information, it is determined whether the media stream to be retrieved is a hot stream; if not, it can be directly determined that the media stream to be retrieved is a cold stream.
[0094] For example, in some embodiments, the filtering information may include cold stream filtering information. Based on the cold stream filtering information, it is determined whether the media stream to be retrieved is a cold stream; if not, it can be directly determined that the media stream to be retrieved is a hot stream.
[0095] For example, in some embodiments, the filtering information may include cold flow filtering information and hot flow filtering information. The cold flow filtering information is used to determine whether the media stream to be drawn is a cold flow, and the hot flow filtering information is used to determine whether the media stream to be drawn is a hot flow. If it is neither a cold nor a hot flow, it is determined to be a warm flow.
[0096] Considering the false positive issue with some filtering information such as Bloom filters, directly determining whether it is a cold stream may lead to misjudgment, potentially misidentifying a hot stream as a cold stream. Therefore, in one or more embodiments of this specification, to more accurately identify cold streams, it can be first determined that the media stream to be retrieved is not a hot stream before determining whether it is a cold stream. Specifically, the step of using the filtering information to determine whether the media stream to be processed by the processing request is of the preset type includes: using the hot stream filtering information to determine whether the media stream to be retrieved by the processing request is a hot stream; if not, using the cold stream filtering information to determine whether the media stream to be retrieved by the processing request is a cold stream.
[0097] Step 506: Perform the corresponding processing operation based on the judgment result.
[0098] Taking the application scenario of differentiating between hot and cold streams and pulling them according to a strategy as an example, since hot streams have a large number of viewers, it is impossible to improve the hit rate through redirection. If it is determined that the media stream to be pulled is a hot stream, it can be pulled from the origin. However, cold streams have fewer viewers, and redirection can be used to merge different playback requests onto the same edge node, thereby reducing the bandwidth required to pull from the origin and saving costs. Therefore, the corresponding processing operation based on the judgment result can include: if the media stream to be pulled in the processing request is a hot stream, pulling the corresponding media stream from the origin; if the media stream to be pulled in the processing request is a cold stream, sending redirection information to the requesting end of the processing request, so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for pulling. For example, the redirection information can specifically be represented as an HTTP (Hypertext Transfer Protocol) "302 response" message. By returning a "302 response" message to the user's playback request, the user's playback request can be scheduled to a newly specified edge node.
[0099] In this context, "origin pull" refers to CDN edge nodes retrieving content from the origin server. It's important to note that edge nodes generally don't initiate origin pulls; they only request resources from the origin server when a user requests resources from an edge node and the resources are either unavailable or expired.
[0100] In addition, when it is determined that the media stream to be pulled is a warm stream, the streaming strategy can be set according to the application scenario. For example, the stream can be pulled according to the domain name configuration, or redirection scheduling can be performed, or no redirection scheduling can be performed. The embodiments in this specification do not limit this.
[0101] Corresponding to the above embodiments of media stream processing methods, this specification also provides embodiments of media stream processing devices configured at edge nodes in a content distribution system. Figure 6A schematic diagram of a media streaming processing device according to one embodiment of this specification is shown. Figure 6 As shown, the device includes:
[0102] The receiving module 602 is configured to receive filtering information sent by the central node, wherein the filtering information is obtained using a set of stream information of a preset type of media stream, and the data volume of the filtering information is less than the data volume of the stream information set.
[0103] The judgment module 604 is configured to, in response to receiving a processing request for a media stream, use the media stream information of the media stream to be processed by the processing request and the filtering information to determine whether the media stream to be processed by the processing request is of the preset type.
[0104] Processing module 606 is configured to perform corresponding processing operations based on the judgment result.
[0105] In one or more embodiments of this specification, the filtering information includes: filtering information for hot flow and / or filtering information for cold flow.
[0106] In one or more embodiments of this specification, the processing module includes:
[0107] The hot stream processing submodule is configured to retrieve the corresponding media stream from the source when the media stream to be retrieved in the processing request is a hot stream.
[0108] The cold stream processing submodule is configured to send redirection information to the requesting end of the processing request when the media stream to be pulled by the processing request is a cold stream, so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for pulling the stream.
[0109] In one or more embodiments of this specification, the determination module includes:
[0110] The heat flow determination submodule is configured to use heat flow filtering information to determine whether the media stream to be pulled by the processing request is a heat flow;
[0111] The cold flow determination submodule is configured to determine whether the media stream to be pulled by the processing request is a cold flow if the hot flow determination submodule determines that it is not.
[0112] The above is an illustrative scheme of a media stream processing device according to this embodiment. It should be noted that the technical solution of this media stream processing device and the technical solution of the media stream processing method described above belong to the same concept. For details not described in detail in the technical solution of the media stream processing device, please refer to the description of the technical solution of the media stream processing method described above.
[0113] Figure 7 A structural block diagram of a computing device 700 according to one embodiment of this specification is shown. The components of the computing device 700 include, but are not limited to, a memory 710 and a processor 720. The processor 720 is connected to the memory 710 via a bus 730, and a database 750 is used to store data.
[0114] The computing device 700 also includes an access device 740, which enables the computing device 700 to communicate via one or more networks 760. Examples of these networks include a Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Personal Area Network (PAN), or a combination of communication networks such as the Internet. The access device 740 may include one or more of any type of wired or wireless network interface (e.g., a Network Interface Card (NIC)), such as an IEEE 802.11 Wireless Local Area Network (WLAN) interface, a Wi-MAX interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC) interface, and so on.
[0115] In one embodiment of this specification, the above-described components of the computing device 700 and Figure 7 Other components, not shown, can also be connected to each other, for example, via a bus. It should be understood that... Figure 7 The block diagram of the computing device shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art can add or replace other components as needed.
[0116] The computing device 700 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile phones (e.g., smartphones), wearable computing devices (e.g., smartwatches, smart glasses, etc.) or other types of mobile devices, or stationary computing devices such as desktop computers or PCs. The computing device 700 can also be a mobile or stationary server.
[0117] The processor 720 is configured to execute the following computer-executable instructions, which, when executed by the processor, implement the steps of the above-described streaming information processing method or media streaming processing method.
[0118] The above is an illustrative scheme of a computing device according to this embodiment. It should be noted that the technical solution of this computing device belongs to the same concept as the technical solution of the above-described streaming information processing method or media stream processing method. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the above-described streaming information processing method or media stream processing method.
[0119] An embodiment of this specification also provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the steps of the above-described streaming information processing method or media streaming processing method.
[0120] The above is an illustrative scheme of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium belongs to the same concept as the technical solution of the above-described streaming information processing method or media stream processing method. For details not described in detail in the technical solution of the storage medium, please refer to the description of the technical solution of the above-described streaming information processing method or media stream processing method.
[0121] An embodiment of this specification also provides a computer program, wherein when the computer program is executed in a computer, it causes the computer to perform the steps of the above-described streaming information processing method or media streaming processing method.
[0122] The above is an illustrative scheme of a computer program according to this embodiment. It should be noted that the technical solution of this computer program belongs to the same concept as the technical solution of the above-described streaming information processing method or media stream processing method. For details not described in detail in the technical solution of the computer program, please refer to the description of the technical solution of the above-described streaming information processing method or media stream processing method.
[0123] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.
[0124] The computer instructions include computer program code, which may be in the form of source code, object code, executable file, or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording media, USB flash drive, portable hard drive, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc. It should be noted that the content included in the computer-readable medium may be appropriately added to or subtracted according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media may not include electrical carrier signals and telecommunication signals.
[0125] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that the embodiments in this specification are not limited to the described order of actions, because according to the embodiments in this specification, some steps can be performed in other orders or simultaneously. Furthermore, those skilled in the art should also understand that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily essential to the embodiments in this specification.
[0126] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0127] The preferred embodiments disclosed above are merely illustrative of this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific implementations described. Clearly, many modifications and variations can be made based on the embodiments described herein. These embodiments are selected and specifically described in this specification to better explain the principles and practical applications of the embodiments, thereby enabling those skilled in the art to better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.
Claims
1. A content distribution system, comprising: The central node is configured to acquire a set of streaming information for a preset type of media stream, and use the set of streaming information to acquire filtering information that can filter the preset type of media stream. The filtering information is a Bloom filter for the preset type of media stream obtained by compressing the set of streaming information based on a Bloom filter generation algorithm. The Bloom filter for the preset type of media stream includes a Bloom filter for hot streams and a Bloom filter for cold streams. The amount of data in the filtering information is less than the amount of data in the set of streaming information. The filtering information is then sent to the edge nodes. The filtering information refers to information that can determine whether the streaming information of any one or more media streams is in the set of streaming information. An edge node is configured to receive the filtering information sent by the central node. In response to receiving a processing request for a media stream, it matches the media stream to be pulled by the processing request with a Bloom filter for hot streams to determine whether it is a hot stream. If it is not a hot stream, it uses a Bloom filter for cold streams to determine whether it is a cold stream. If the media stream to be pulled by the processing request is a hot stream, it pulls the corresponding media stream from the source. If the media stream to be pulled by the processing request is a cold stream, it sends redirection information to the requesting end of the processing request so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for streaming.
2. A streaming information processing method, applied to a central node in a content distribution system, comprising: Obtain a set of stream information for a media stream of a preset type; The filtering information that can filter the preset type of media stream is obtained by using the stream information set. The filtering information is a Bloom filter of the preset type of media stream obtained by compressing the stream information set based on the Bloom filter generation algorithm. The Bloom filter of the preset type of media stream includes a Bloom filter for hot streams and a Bloom filter for cold streams. The amount of data in the filtering information is less than the amount of data in the stream information set. The filtering information is sent to the edge nodes of the content distribution system, so that the edge nodes receive the filtering information sent by the central node. In response to receiving a processing request for a media stream, the edge nodes match the media stream to be pulled by the processing request with a Bloom filter for hot streams to determine whether it is a hot stream. If it is not a hot stream, the edge nodes use a Bloom filter for cold streams to determine whether it is a cold stream. If the media stream to be pulled by the processing request is a hot stream, the edge nodes retrieve the corresponding media stream from the source. If the media stream to be pulled by the processing request is a cold stream, the edge nodes send redirection information to the requesting end of the processing request so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for streaming.
3. The method according to claim 2, wherein obtaining the stream information set of a preset type media stream includes: Based on the online user number threshold range of the heat flow, query the set of flow information that reaches the online user number threshold range of the heat flow; And / or, Based on the threshold range of the number of online users of the cold stream, query the set of stream information that reaches the threshold range of the number of online users of the cold stream.
4. The method according to claim 2, wherein sending the filtering information to the edge nodes of the content distribution system comprises: The filtering information is sent to the edge nodes of the content distribution system based on a real-time communication protocol.
5. A streaming information processing device, configured in a central node of a content distribution system, comprising: The information acquisition module is configured to acquire a set of stream information of a preset type of media stream; The information processing module is configured to use the stream information set to obtain filtering information that can filter the preset type of media streams. The filtering information is a Bloom filter for the preset type of media streams obtained by compressing the stream information set based on a Bloom filter generation algorithm. The Bloom filter for the preset type of media streams includes a Bloom filter for hot streams and a Bloom filter for cold streams. The amount of data in the filtering information is less than the amount of data in the stream information set. The filtering information refers to information that can determine whether the media stream information of any one or more media streams is in the stream information set. The information delivery module is configured to send the filtering information to the edge nodes of the content distribution system, so that the edge nodes receive the filtering information sent by the central node, and in response to receiving a processing request for a media stream, match the media stream to be pulled by the processing request with a Bloom filter for hot streams to determine whether it is a hot stream. If it is not a hot stream, it uses a Bloom filter for cold streams to determine whether it is a cold stream. If the media stream to be pulled by the processing request is a hot stream, it retrieves the corresponding media stream from the source. If the media stream to be pulled by the processing request is a cold stream, it sends redirection information to the requesting end of the processing request so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for streaming.
6. A method for processing media streams, applied to edge nodes in a content distribution system, comprising: The system receives filtering information from a central node. The filtering information is obtained using a set of streaming information of a preset type of media stream. The filtering information is a Bloom filter of the preset type of media stream obtained by compressing the streaming information set based on a Bloom filter generation algorithm. The Bloom filter of the preset type of media stream includes a Bloom filter for hot streams and a Bloom filter for cold streams. The amount of data in the filtering information is less than the amount of data in the streaming information set. In response to receiving a media stream processing request, the system matches the media stream to be pulled by the processing request with a Bloom filter for hot streams to determine if it is a hot stream. If it is not a hot stream, the system uses a Bloom filter for cold streams to determine if it is a cold stream. If the media stream to be pulled by the processing request is a hot stream, the system retrieves the corresponding media stream from the source. If the media stream to be pulled by the processing request is a cold stream, the system sends a redirection message to the requesting end of the processing request, causing the requesting end to merge with at least one other requesting end that requested the same media stream into the same edge node for streaming. Perform corresponding processing operations based on the judgment results.
7. A media streaming processing device, configured at an edge node in a content delivery system, comprising: The receiving module is configured to receive filtering information sent by the central node. The filtering information is obtained using a set of stream information of a preset type of media stream. The filtering information is a Bloom filter of the preset type of media stream obtained by compressing the set of stream information based on a Bloom filter generation algorithm. The Bloom filter of the preset type of media stream includes a Bloom filter for hot streams and a Bloom filter for cold streams. The amount of data in the filtering information is less than the amount of data in the set of stream information. The filtering information refers to information that can determine whether the media stream information of any one or more media streams is in the set of stream information. The judgment module is configured to, in response to receiving a processing request for a media stream, match the media stream to be pulled by the processing request with a Bloom filter for hot streams to determine whether it is a hot stream; if it is not a hot stream, use a Bloom filter for cold streams to determine whether it is a cold stream. The processing module is configured to retrieve the corresponding media stream from the source when the media stream to be retrieved by the processing request is a hot stream; and to send redirection information to the requesting end of the processing request when the media stream to be retrieved by the processing request is a cold stream, so that the requesting end and at least one other requesting end requesting the same media stream are merged into the same edge node for streaming.
8. A computing device, comprising: Memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, they implement the steps of the streaming information processing method according to any one of claims 2 to 4 or the media streaming processing method according to claim 6.
9. A computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the steps of the streaming information processing method of any one of claims 2 to 4 or the media streaming processing method of claim 6.