Real-time transcoding system and method for video stream distribution, center node and edge node

By designing a real-time transcoding system in which the central node and edge node work together in the video stream distribution system, the problem of wasting video stream transcoding resources in the existing technology and being unable to meet the personalized needs of users is solved, and efficient and personalized videos are achieved Stream transcoding.

CN119484895APending Publication Date: 2025-02-18AGRICULTURAL BANK OF CHINA
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411708847.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-26
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

In the prior art, video streaming transcoding has problems such as wasting computing resources and being unable to meet the personalized needs of users.

Method used

A real-time transcoding system for video stream distribution is designed. Through the coordinated work of the central node and edge node, the edge node and video stream that will finally perform the transcoding operation are determined according to the adjustment parameters of the client and the transcoding load of the edge node. to obtain the path of the video stream transcoding.

Benefits of technology

The system can effectively utilize the resources of edge nodes to meet users' personalized needs, improve the efficiency of real-time transcoding, and solve the problem of wasting computing resources and inability to meet users' personalized needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119484895A_ABST
    Figure CN119484895A_ABST
Patent Text Reader

Abstract

The invention discloses a video stream distribution-oriented real-time transcoding system, a video stream distribution-oriented real-time transcoding method, a central node and edge nodes. The system comprises an edge node used for receiving a pull stream request of a client and sending the pull stream request to a central node; the stream pulling request comprises an adjustment parameter for a video stream; the central node is used for determining an edge node which finally performs transcoding operation on the video stream and an acquisition path of the video stream according to a stream information table, the adjustment parameters and the transcoding load condition of the edge node, and sending the acquisition path to the corresponding edge node; and the edge nodes are also used for pulling the video streams from the corresponding center nodes or the edge nodes according to the acquisition paths, and after transcoding operation is performed on the video streams based on the adjustment parameters, the transcoded video streams are pushed to the client. The system can meet the individual requirements of the client and improve the real-time transcoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the field of video transmission technology, and in particular to a real-time transcoding system, method, central node and edge node for video stream distribution. Background Art

[0002] With the development of Internet technology and audio and video processing technologies, streaming media applications such as video and live broadcast are becoming more and more widespread and have become the main carrier of Internet information. Compared with traditional Web applications such as text and pictures, streaming media has the characteristics of high data volume, high bandwidth, high access volume and high service quality requirements. The "best effort" feature of the Internet at this stage determines that large-scale streaming media applications are difficult under the existing network architecture. Providing high-speed and high-quality video content to the audience is an important goal of many professional TV and video content providers. Therefore, content distribution networks (CDNs) that support video streaming and related auxiliary technologies are very important, which can not only optimize the video transmission rate, but also take into account the quality level of the transmitted video files.

[0003] Take live broadcast as an example. When a user initiates a live broadcast, the video stream will be pushed to the video stream server, which can be understood as the largest express storage and transit logistics center in the country. The video stream server will push the video stream to each CDN central node. The central node records all the stream information, and the edge node pulls it from the central node as needed. Finally, the user watches the live broadcast at home and pulls the video stream from the edge node. In this process, due to the limited resources of the server and the large differences in the distribution of networks across the country, it is usually necessary to transcode the video stream to adapt to different network bandwidths, different terminal processing capabilities, and different user needs.

[0004] In the existing technical solutions, the main ways to implement video stream transcoding are asynchronous transcoding and real-time streaming transcoding. Asynchronous transcoding allows a certain delay between the production and consumption of video content. The video content generator does not need to wait for the transcoding to be completed before distributing it, but can distribute and play it during the transcoding process. Real-time streaming transcoding only requires the process of uploading-distributing-playing, combining transcoding and playback into one, and playing while transcoding. The specific process is that the cloud receives the user's playback request, reads the source video stream, quickly divides the source video into video sub-blocks according to the playback parameters, distributes the task to the multimedia processing cluster, and generates an index and returns it to the user. However, the transcoding method in the prior art still has problems such as waste of computing resources and inability to meet the personalized needs of users. Summary of the invention

[0005] The present invention provides a real-time transcoding system, method, central node and edge node for video stream distribution, so as to solve the problems of waste of computing resources and failure to meet personalized needs of users in the prior art.

[0006] According to one aspect of the present invention, a real-time transcoding system for video stream distribution is provided, the system comprising: a central node and one or more edge nodes;

[0007] The edge node is used to receive a stream pulling request from a client and send the stream pulling request to the central node; the stream pulling request includes adjustment parameters for the video stream;

[0008] The central node is used to determine the edge node that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node;

[0009] The edge node is further used to pull the video stream from the corresponding central node or edge node according to the acquisition path, perform a transcoding operation on the video stream based on the adjustment parameters, and push the transcoded video stream to the client.

[0010] According to another aspect of the present invention, a real-time transcoding method for video stream distribution is provided, which is applied to a real-time transcoding system for video stream distribution, wherein the system includes a central node and one or more edge nodes, and the method includes:

[0011] The edge node receives a stream pulling request from a client, wherein the stream pulling request includes adjustment parameters for the video stream;

[0012] The central node determines the edge node that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node;

[0013] The edge node pulls the video stream from the corresponding central node or edge node according to the acquisition path, performs a transcoding operation on the video stream based on the adjustment parameters, and pushes the transcoded video stream to the client.

[0014] According to another aspect of the present invention, a central node is provided, which is applied to the real-time transcoding system for video stream distribution described in any embodiment of the present invention, and the central node includes: a central node management program and a streaming module, the central node management program includes a load control module and a stream information synchronization module; the stream information synchronization module is connected to the load control module and the streaming module respectively;

[0015] The load control module is used to receive a stream pulling request from an edge node, determine the edge node that ultimately performs a transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters for the video stream in the stream pulling request, and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node;

[0016] The flow information synchronization module is used to update the local flow information table after receiving the update information of the flow information table;

[0017] The streaming module is used to pull the video stream from the video streaming server and push the video stream to the edge node.

[0018] According to another aspect of the present invention, an edge node is provided, which is applied to the real-time transcoding system for video stream distribution described in any embodiment of the present invention, and the edge node comprises: an edge node transcoding and streaming program and a streaming module, the edge node transcoding and streaming program comprises a load monitoring module and a transcoding output module, and the transcoding output module is connected to the load monitoring module and the streaming module respectively;

[0019] The transcoding output module is used to receive a stream pulling request from a client and send the stream pulling request to a central node; the stream pulling request includes adjustment parameters for the video stream;

[0020] The load monitoring module is used to report the transcoding load of the edge node to the central node when the transcoding output module sends a stream pulling request to the central node;

[0021] The streaming module is used to pull the video stream from the corresponding central node or edge node according to the acquisition path sent by the central node;

[0022] The transcoding output module is further used to perform a transcoding operation on the video stream based on the adjustment parameters;

[0023] The streaming module is also used to push the transcoded video stream to the client.

[0024] A real-time transcoding system, method, central node and edge node for video stream distribution according to an embodiment of the present invention, the system includes: a central node and one or more edge nodes; the edge node is used to receive a stream pull request from a client and send the stream pull request to the central node; the stream pull request includes adjustment parameters for the video stream; the central node is used to determine the edge node that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node; the edge node is also used to pull the video stream from the corresponding central node or edge node according to the acquisition path, and after performing the transcoding operation on the video stream based on the adjustment parameters, push the transcoded video stream to the client. When determining the edge node that finally performs the transcoding operation, the system takes into account the transcoding load of the edge node, and performs the transcoding operation on the video stream according to the adjustment parameters of the client, so that the transcoded video stream can meet the personalized needs of the client, and improve the efficiency of real-time transcoding, solving the problem of waste of computing resources and failure to meet the personalized needs of users in the prior art.

[0025] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present invention, nor are they intended to limit the scope of the present invention. Other features of the present invention will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0027] Figure 1 A schematic diagram of the structure of a real-time transcoding system for video stream distribution provided in Embodiment 1 of the present invention;

[0028] Figure 2 A structural diagram of a real-time transcoding system for video stream distribution provided in Embodiment 2 of the present invention;

[0029] Figure 3 A schematic diagram of the structure of a real-time transcoding system for video stream distribution provided by an embodiment of the present invention;

[0030] Figure 4 A schematic diagram of the flow direction of flow information provided by an embodiment of the present invention;

[0031] Figure 5A transcoding schematic diagram provided by an embodiment of the present invention;

[0032] Figure 6 A flowchart of a real-time transcoding method for video stream distribution provided in Embodiment 3 of the present invention;

[0033] Figure 7 A schematic diagram of the structure of a central node provided by an embodiment of the present invention;

[0034] Figure 8 A schematic diagram of the structure of an edge node provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0035] In order to enable those skilled in the art to better understand the scheme of the present invention, the technical scheme in the embodiment of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiment of the present invention. Obviously, the described embodiment is only an embodiment of a part of the present invention, rather than all the embodiments. Based on the embodiments in the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work should belong to the scope of protection of the present invention. It should be understood that the various steps recorded in the method implementation of the present invention can be performed in different orders and / or in parallel. In addition, the method implementation may include additional steps and / or omit the steps shown. The scope of the present invention is not limited in this respect.

[0036] The term "including" and its variations used herein are open inclusions, i.e., "including but not limited to". The term "based on" means "based at least in part on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description.

[0037] It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, any variations of the terms "including" and "having" are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0038] It should be noted that the modifications of "one" and "plurality" mentioned in the present invention are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise clearly indicated in the context, it should be understood as "one or more".

[0039] The names of the messages or information exchanged between multiple devices in the embodiments of the present invention are only used for illustrative purposes, and are not used to limit the scope of these messages or information.

[0040] Embodiment 1

[0041] Figure 1 A structural schematic diagram of a real-time transcoding system for video stream distribution provided in Embodiment 1 of the present invention is applicable to responding to a stream pulling request from a client, determining an edge node for processing the stream pulling request through a central node, and executing a real-time transcoding method for video stream distribution.

[0042] like Figure 1 As shown, a real-time transcoding system for video stream distribution provided by Embodiment 1 of the present invention includes: a central node 10 and one or more edge nodes 20;

[0043] The edge node 20 is used to receive a stream pulling request from a client and send the stream pulling request to the central node 10; the stream pulling request includes adjustment parameters for the video stream;

[0044] The central node 10 is used to determine the edge node 20 that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node 20;

[0045] The edge node 20 is further configured to pull the video stream from the corresponding central node 10 or edge node 20 according to the acquisition path, perform a transcoding operation on the video stream based on the adjustment parameters, and push the transcoded video stream to the client.

[0046] Among them, the central node 10 can be a server close to the service end in the content distribution network, and the number of central nodes can be one or more. The resources in the network are multi-level cached, sinking from the service end to the central node, and finally to the edge node. The edge node 20 can be a network edge server close to the user end in the content distribution network, providing storage, computing, network and other resources. The content distribution network reduces the bandwidth and delay consumption caused by network transmission and multi-level forwarding by sinking resources to the edge of the access network. The pull stream request can be a request from the client to pull the video stream, and the client can be a device at the user end. The video stream can be streaming media, which refers to a technology that compresses a series of media data, sends the data in segments over the Internet, and transmits audio and video in real time over the Internet. The adjustment parameters can be related parameters of the video stream, and the adjustment parameters can be customized settings for the user of the client.

[0047] In this embodiment, each central node 10 may correspond to a large number of edge nodes 20, and all central nodes 10 maintain data consistency. After receiving a stream pull request from a client, the edge node 20 may send the stream pull request to the central node 10.

[0048] The stream information table may be a data table storing the initial information and the pulled information of the video stream, the initial information of the video stream may be the original information of the video stream, and the pulled information may be the related information pulled by other nodes. The transcoding load situation may be the situation of the transcoding and self-load of the edge node. The acquisition path may be the acquisition address of the video stream.

[0049] In this embodiment, after receiving the stream pull request, the central node 10 can determine whether the edge node 20 can perform the transcoding operation according to the locally stored stream information table, the adjustment parameters in the stream pull request and the transcoding load of the edge node 20. If the edge node 20 cannot bear the load, the stream pull request is distributed to other edge nodes to determine the edge node that finally performs the transcoding operation on the video stream, and the acquisition path of the video stream is searched from the stream information table, and the acquisition path is sent to the corresponding edge node 20. After receiving the acquisition path, the edge node 20 can pull the video stream from the corresponding central node or edge node according to the acquisition path, and perform the transcoding operation on the video stream based on the adjustment parameters in the stream pull request, and push the transcoded video stream to the client.

[0050] The system in this embodiment can be applied to live broadcasts in banking services, for example, live broadcasts for customers, or live broadcasts for training of industry insiders.

[0051] A real-time transcoding system for video stream distribution provided in the first embodiment of the present invention includes: a central node and one or more edge nodes; the edge node is used to receive a stream pull request from a client and send the stream pull request to the central node; the stream pull request includes adjustment parameters for the video stream; the central node is used to determine the edge node that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node; the edge node is also used to pull the video stream from the corresponding central node or edge node according to the acquisition path, and after performing the transcoding operation on the video stream based on the adjustment parameters, push the transcoded video stream to the client. When determining the edge node that finally performs the transcoding operation, the system takes into account the transcoding load of the edge node, and performs the transcoding operation on the video stream according to the adjustment parameters of the client, so that the transcoded video stream can meet the personalized needs of the client, and improve the efficiency of real-time transcoding, solving the problem of waste of computing resources and failure to meet the personalized needs of users in the prior art.

[0052] Based on the above embodiment, a variant embodiment of the above embodiment is proposed. It should be noted that in order to make the description concise, only the differences from the above embodiment are described in the variant embodiment.

[0053] In one embodiment, the edge node 20 includes an edge node transcoding and streaming program, and the edge node transcoding and streaming program includes a load monitoring module;

[0054] The load monitoring module is used to report the transcoding load of the edge node 20 to the central node 10 when the reporting conditions are met; the transcoding load includes at least the usage of the central processing unit and memory, and the number of video streams pulled by the edge node 20.

[0055] The edge node transcoding and streaming program may include a load monitoring module, which may be a module for monitoring the load of the edge node. The reporting condition may be set according to actual conditions, for example, the reporting condition may be set to a scheduled report, or to report when the load condition changes, or to report after receiving a stream pull request, which is not limited in this embodiment.

[0056] In this embodiment, the edge node 20 may include an edge node transcoding and streaming program, and the edge node transcoding and streaming program may include a load monitoring module, which may be used to report the transcoding load of the edge node 20 itself to the central node 10 when the reporting condition is met. The transcoding load in this embodiment may include the usage of the central processing unit (CPU), the usage of the memory, and the number of video streams pulled by the edge node 20.

[0057] Embodiment 2

[0058] Figure 2 This is a schematic diagram of the structure of a real-time transcoding system for video stream distribution provided by Embodiment 2 of the present invention. Embodiment 2 is optimized based on the above embodiments. For details not yet fully described in this embodiment, please refer to Embodiment 1.

[0059] like Figure 2 As shown, a real-time transcoding system for video stream distribution provided by Embodiment 2 of the present invention includes: an edge node transcoding and streaming program in an edge node 20 includes a transcoding output module 201; the transcoding output module 201 is used to:

[0060] Adjust the parameters corresponding to the video stream according to the adjustment parameters; the adjustment parameters include one or more of audio encoding, video encoding, resolution, frame rate, bit rate and output format;

[0061] Dynamically adjust the bit rate of the video stream according to the current load of the edge node 20 and the bit rate in the adjustment parameter;

[0062] Determine the video quality and bit rate output buffer size corresponding to the video stream according to the current load condition;

[0063] The adjusted video stream is used as the transcoded video stream.

[0064] Among them, the adjustment parameters may include one or more parameters such as audio encoding, video encoding, resolution, frame rate, bit rate and output format of the video stream. These parameters can be set according to actual conditions, and this embodiment does not limit this. For example, the format of audio encoding may include MP3, AAC, WAV, FLAC, etc., and the format of video encoding may include H.264, H.265 (HEVC), VP9, ​​AV1, libx264, etc. The resolution can be expressed in pixels, for example, 1920x1080 means that the width is 1920 pixels and the height is 1080 pixels. The frame rate may refer to the number of image frames displayed per second, usually expressed in frames per second (Frames PerSecond, FPS). For example, 30FPS means that 30 frames of images are played per second. The bit rate may refer to the amount of data transmitted per second, usually expressed in bits per second (bps). The relevant parameters of video quality may include encoding speed and quality presets. The bit rate output buffer size refers to the size of the memory area used to temporarily store audio or video data. The current load condition may be the current transcoding load condition of the edge node.

[0065] In this embodiment, the edge node transcoding and streaming program in the edge node 20 may also include a transcoding output module 201. The video stream can be transcoded through the transcoding output module 201. Specifically, the parameters corresponding to the video stream, such as audio encoding, video encoding, resolution and frame rate, can be adjusted through the adjustment parameters in the stream pull request. The bit rate of the video stream can be jointly determined by the current load situation of the edge node 20 and the bit rate in the adjustment parameters. The video quality and bit rate output buffer size corresponding to the video stream can also be determined according to the current load situation, and finally the transcoded video stream is output in the output format specified by the user.

[0066] A real-time transcoding system for video stream distribution provided in the second embodiment of the present invention specifies that the edge node transcoding and streaming program in the edge node includes a transcoding output module; the transcoding output module is used to: adjust the parameters corresponding to the video stream according to the adjustment parameters; the adjustment parameters include one or more of audio encoding, video encoding, resolution, frame rate, bit rate and output format; dynamically adjust the bit rate of the video stream according to the current load of the edge node and the bit rate in the adjustment parameters; determine the video quality and bit rate output buffer size corresponding to the video stream according to the current load; and use the adjusted video stream as the transcoded video stream. The system transcodes the video stream according to the user-defined parameters while also taking into account the current load of the edge node, so that the obtained video stream can meet the personalized needs of the client and will not affect the normal operation of the edge node, thereby improving the efficiency of real-time transcoding and solving the problems of waste of computing resources and failure to meet the personalized needs of users in the prior art.

[0067] In one embodiment, the edge node 20 includes a streaming module, which is used to: pull the video stream from the corresponding central node 10 or edge node 20 according to the acquisition path; and push the transcoded video stream to the client.

[0068] Among them, the streaming module can be a module for users to pull video streams and push video streams.

[0069] In this embodiment, the edge node 20 may include a streaming module, and the inference module may be used to pull the video stream from the corresponding central node 10 or edge node 20 according to the acquisition path, and push the transcoded video stream to the client.

[0070] In one embodiment, the central node 10 includes a central node management program, and the central node management program includes a load management module, and the load management module is used to: search from the stream information table whether there is a corresponding transcoded video stream according to the adjustment parameters; if so, determine the acquisition path of the video stream according to the node where the transcoded video stream is located; otherwise, determine the acquisition path according to the storage address of the video stream in the stream information table; determine the edge node that finally performs the transcoding operation on the video stream according to the transcoding load of the edge node and the transcoding load of other edge nodes adjacent to the edge node.

[0071] The central node management program may include a load control module, which may be a module for managing each edge node and distributing requests according to the transcoding load of the edge node. The transcoded video stream may be a video stream that has been transcoded. The storage address may be an identifier of the node where the video stream is located.

[0072] In this embodiment, after receiving a stream pulling request, the load control module can search from the stream information table based on the adjustment parameters whether the video stream already has a transcoding method corresponding to the adjustment parameters, that is, whether other edge nodes have already transcoded the video stream, and whether the relevant parameters of the transcoding are consistent with the adjustment parameters in the stream pulling request; if so, it can be obtained from the stream information table on which edge node the transcoded video stream is stored, and its storage address can be used as the acquisition path; thereafter, it can continue to find out the edge node with a small amount of tasks and capable of performing transcoding operations based on the transcoding load of the edge node requesting the video stream and the transcoding load of the edge nodes adjacent to the edge node, and use it as the edge node that finally performs the transcoding operation on the video stream.

[0073] In one embodiment, the system further comprises a video streaming server, and the central node management program in the central node 10 comprises a stream information synchronization module;

[0074] The video stream server is used to receive the video stream sent by the client, register the stream information of the video stream into the stream information table, and send the stream information table to the stream information synchronization module of all central nodes 10;

[0075] The stream information synchronization module is used to update the local stream information table according to the received stream information table; the stream information table includes basic parameters of the video stream, the node identifier of the node where it is located, and the pulled information.

[0076] Among them, the video stream server can be a server for receiving video streams from a client. The stream information can include information such as stream name, frame rate, bit rate, resolution and node identifier. The stream information synchronization module can be a module for managing the stream information table. The basic parameters of the video stream can include parameters such as stream name, frame rate, bit rate and resolution, and the node refers to which node the video stream is stored. The node identifier can be a unique identifier of the node. The pulled information can include information such as stream name, pulled node identifier and pulled transcoding parameters.

[0077] In this embodiment, the central node management program may include a stream information synchronization module, and the video stream server may receive the video stream sent by the client through its own push stream module, register the stream information of the video stream to the stream information table, and send the stream information table to the stream information synchronization modules of all central nodes 10. The stream information synchronization module may update the local stream information table according to the stream information table, thereby ensuring that the stream information tables in all central nodes remain consistent.

[0078] In one embodiment, the edge node 20 is specifically configured to: when the acquired video stream is a transcoded video stream, directly send the transcoded video stream to the client through a streaming module.

[0079] In this embodiment, when the acquired video stream is a transcoded video stream, the edge node 20 can directly send the transcoded video stream to the client through the streaming module without further transcoding.

[0080] The embodiments of the present invention provide several specific implementation methods based on the technical solutions of the above embodiments.

[0081] As a specific implementation method of this embodiment, Figure 3 A schematic diagram of the structure of a real-time transcoding system for video stream distribution provided by an embodiment of the present invention is shown in FIG. Figure 3As shown, the central node management program includes: a stream information synchronization module, which can synchronize the stream information of the central node and the stream information of each edge node, so as to perform stream pulling scheduling and selectively pull the stream nearby for transcoding; a load control module, which can perform transcoding task scheduling according to the CPU and memory usage of the edge node. Transcoding is a behavior that consumes a lot of computing power. Edge nodes with a large terminal user group usually need to transcode more streams, resulting in higher CPU consumption. Therefore, this embodiment uses a load control module to balance this point. By calling idle adjacent edge nodes for alternative transcoding, the pressure of high-usage edge nodes is shared to achieve transcoding resource load balancing. The edge node transcoding and streaming program includes: a load monitoring module, which is used to record the CPU and memory usage of this node and transmit it to the load control module for task scheduling; a transcoding output module, which is used to pull the stream from the corresponding adjacent edge node or central node after receiving the user's stream pulling request, and decide whether to transcode according to needs. The user then pulls the required stream from the edge node.

[0082] Figure 4 A schematic diagram of a flow information flow provided by an embodiment of the present invention, such as Figure 4 As shown in the figure, the video stream initiated by the user is pushed to the central node, and the central node pushes the stream to the edge node as needed. The edge nodes also push and pull streams between each other. After obtaining the stream, the edge node decides whether to push the initial stream or transcode it before pushing it based on the user request received.

[0083] The overall flow distribution process is as follows:

[0084] 1. The user initiates a live broadcast and pushes the video stream to the streaming module of the video streaming server. At the same time, the stream information is registered in the stream information table. The recorded information includes the stream name, frame rate, bit rate, resolution, node identifier, etc.

[0085] 2. The video streaming server pushes the video stream to the central node and sends the stream information table to all central nodes, so that all central nodes maintain distributed consistency and the stream information on each central node is the same. The stream information synchronization module of the central node reads the stream information sent by the video streaming server and stores it locally. The load control module can initialize all edge nodes to no load.

[0086] 3. The process from the central node to the edge node is mainly based on the edge node pulling the stream. Only when the user initiates access to a certain video stream will the edge node be triggered to pull the stream from the central node. The full push of the central node will cause the edge node to have many more streams that users do not need, so the on-demand stream pulling method is adopted here. During the process of edge node pulling the stream, it will be recorded in the stream information synchronization module of the central node. The stream pulled by each edge node from the central node and the corresponding edge node identifier will be recorded. At the same time, the stream information will be synchronized between all central nodes to keep the stream information tables of all central nodes consistent.

[0087] This embodiment ensures a higher upper limit for the overall system by improving the resource utilization of edge nodes. The transcoding capacity of a single node has an upper limit. If there is no transcoding load balancing, some edge nodes will be fully loaded while other edge nodes will be underloaded, reducing the overall efficiency. Through transcoding task allocation and scheduling, CPU, memory and other resources between edge nodes are integrated, improving the overall upper limit.

[0088] Figure 5 A transcoding schematic diagram provided by an embodiment of the present invention, such as Figure 5 As shown in the figure, the specific process of transcoding includes:

[0089] 1. Call the transcoding function through the program, and pull the original video stream from the edge node based on the feedback from the central node.

[0090] 2. Set the output video stream to real-time transcoding output.

[0091] 3. If the user sets the audio codec, specify the audio codec based on the user's request, otherwise the default is AAC.

[0092] 4. If the user sets the video encoding, specify the video encoder according to the user's request, otherwise the default is libx264.

[0093] 5. If the user sets the resolution, the resolution is specified according to the user's request, otherwise the original video stream resolution is used by default. When the aspect ratio of the resolution set by the user is different from the source ratio, the picture will be stretched or compressed.

[0094] 6. If the user sets the frame rate, specify the frame rate according to the user's request, otherwise the default frame rate is 25, and the frame rate range is 0-60. When the frame rate set by the user is greater than the original frame rate, the transcoding program will insert frames. If you encounter audio and video out of sync, you can force audio and video synchronization through the synchronization parameters.

[0095] 7. Specify the bitrate according to the current load and user request, in kbps. The default bitrate is automatically adjusted according to the input file encoding and resolution. The higher the bitrate, the more data is transmitted per second and the clearer the image quality. For a certain resolution, the bitrate can only improve the image quality to a certain extent. The clarity will no longer improve after reaching a certain level, and the highest is the same as the original video stream. After the bitrate is specified, the current bitrate will be dynamically adjusted until it approaches or even reaches the specified bitrate. Finally, maintaining a stable bitrate is related to the specified bitrate. The higher the specified bitrate, the higher the final stable bitrate. At the same time, the bitrate directly affects the machine load. The load monitoring module can also be used to monitor information such as CPU memory and dynamically adjust the bitrate.

[0096] 8. Specify the video quality according to the current load, that is, set the encoding speed and quality preset for transcoding. Generally, the faster the encoding speed, the lower the quality, and there will be obvious compression distortion, noise, etc. in clarity, color, contrast, etc. Edge nodes with more video streams under load set a higher encoding speed. At the same time, it is necessary to specify the video encoding quality in constant quality mode. The video encoding quality value range is: 0~51. 0 is lossless mode, 18~28 is a reasonable range, and 18 is visually lossless. For video encoding libxh264, the default value is 23. For video encoding libh265, the default value is 28.

[0097] 9. Specify the bitrate output buffer size according to the current load situation. The default unit is byte and the default value is 2M. The buffer is the size of the memory area used to store data when processing audio and video data, which affects processing efficiency and stability. If the setting is too small, data will be read from the memory frequently. If the data volume is too large, data overflow or program crash may occur. If the setting is too large, memory waste and the processor's cache hit rate will decrease, affecting processing efficiency. Normally, the buffer size is set to 2-3 times the bitrate size of the audio and video stream file. For example, when processing a 1M bitrate 1920*1080 video with a frame rate of 25, set the buffer to 2~3M.

[0098] 10. Specify the output format according to user request, and support video streams of protocols such as flv, rtmp, etc.

[0099] The edge node in the embodiment of the present invention can support customized transcoding, and the parameters that can be adjusted by the user include audio encoding, video encoding, resolution, frame rate, bit rate and video quality. Compared with asynchronous transcoding, it provides users with more diverse choices. However, due to limited resources, asynchronous transcoding can only selectively transcode several dimensions and cannot be customized to meet the user's viewing needs. The initial video stream stored by the central node and the video stream transcoded by the edge node exist at the same time. When the user switches, the transcoded video stream can replace the initial video stream for seamless switching, which improves the user experience.

[0100] Embodiment 3

[0101] Figure 6 A flowchart of a real-time transcoding method for video stream distribution provided in Embodiment 3 of the present invention is provided. The method can be applied to responding to a stream pull request from a client, and determining an edge node for processing the stream pull request through a central node. For details not yet provided in this embodiment, please refer to the above embodiments.

[0102] like Figure 6 As shown, a real-time transcoding method for video stream distribution provided by Embodiment 3 of the present invention is applied to a real-time transcoding system for video stream distribution, the system comprising a central node and one or more edge nodes, and the method comprising the following steps:

[0103] S310: The edge node receives a stream pulling request from a client, where the stream pulling request includes adjustment parameters for the video stream.

[0104] The edge node 20 may be a network edge server close to the user end in the content distribution network, providing storage, computing, network and other resources. The stream pull request may be a request from the client to pull the video stream, and the client may be a device at the user end. The video stream may be streaming media, which refers to a technology that compresses a series of media data, sends the data in segments over the Internet, and transmits audio and video in real time over the Internet. The adjustment parameter may be a parameter related to the video stream, and the adjustment parameter may be a user-defined setting of the client.

[0105] In this embodiment, the edge node can receive a stream pulling request from a client.

[0106] S320: The central node determines the edge node that ultimately performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters, and the transcoding load of the edge node.

[0107] The central node 10 may be a server close to the service end in the content distribution network, and the number of central nodes may be one or more. The stream information table may be a data table storing the initial information of the video stream and the pulled information. The transcoding load situation may be the situation of the edge node transcoding and its own load. The acquisition path may be the acquisition address of the video stream.

[0108] In this embodiment, the central node can determine the edge node that ultimately performs the transcoding operation on the video stream and the path for obtaining the video stream according to the stream information table, the adjustment parameters, and the transcoding load of the edge node.

[0109] S330: The edge node pulls the video stream from the corresponding central node or edge node according to the acquisition path, performs a transcoding operation on the video stream based on the adjustment parameters, and pushes the transcoded video stream to the client.

[0110] In this embodiment, the edge node can pull the video stream from the corresponding central node or edge node according to the acquisition path, perform a transcoding operation on the video stream according to the adjustment parameters, and push the transcoded video stream to the client.

[0111] A real-time transcoding method for video stream distribution provided in the third embodiment of the present invention includes: an edge node receives a stream pull request from a client, wherein the stream pull request includes adjustment parameters for the video stream; a central node determines an edge node that finally performs a transcoding operation on the video stream and an acquisition path for the video stream according to a stream information table, the adjustment parameters and the transcoding load of the edge node; the edge node pulls the video stream from the corresponding central node or edge node according to the acquisition path, performs a transcoding operation on the video stream based on the adjustment parameters, and pushes the transcoded video stream to the client. This method takes into account the transcoding load of the edge node when determining the edge node that finally performs the transcoding operation, and performs a transcoding operation on the video stream according to the adjustment parameters of the client, so that the transcoded video stream meets the personalized needs of the client and improves the efficiency of real-time transcoding, thereby solving the problems of waste of computing resources and failure to meet the personalized needs of users in the prior art.

[0112] In one embodiment, the edge node includes an edge node transcoding and streaming program, and the edge node transcoding and streaming program includes a load monitoring module; the method includes:

[0113] When the reporting conditions are met, the load monitoring module reports the transcoding load status of the edge node to the central node; the transcoding load status at least includes the usage of the central processing unit and memory, and the number of video streams pulled by the edge node.

[0114] In one embodiment, the edge node transcoding and streaming program in the edge node includes a transcoding output module; the transcoding output module:

[0115] Adjust the parameters corresponding to the video stream according to the adjustment parameters; the adjustment parameters include one or more of audio encoding, video encoding, resolution, frame rate, bit rate and output format;

[0116] Dynamically adjusting the bit rate of the video stream according to the current load of the edge node and the bit rate in the adjustment parameter;

[0117] Determine the video quality and bit rate output buffer size corresponding to the video stream according to the current load condition;

[0118] The adjusted video stream is used as the transcoded video stream.

[0119] In one embodiment, the edge node includes a streaming module, wherein:

[0120] Pull the video stream from the corresponding central node or edge node according to the acquisition path;

[0121] The transcoded video stream is pushed to the client.

[0122] In one embodiment, the central node includes a central node management program, the central node management program includes a load management module, and the load management module:

[0123] Searching the stream information table for a corresponding transcoded video stream according to the adjustment parameter;

[0124] If yes, then determine the acquisition path of the video stream according to the node where the transcoded video stream is located; otherwise, determine the acquisition path according to the storage address of the video stream in the stream information table;

[0125] An edge node that ultimately performs a transcoding operation on the video stream is determined according to the transcoding load of the edge node and the transcoding loads of other edge nodes adjacent to the edge node.

[0126] In one embodiment, the system further comprises a video streaming server, and the central node management program in the central node comprises a stream information synchronization module;

[0127] The video stream server receives the video stream sent by the client, registers the stream information of the video stream into the stream information table, and sends the stream information table to the stream information synchronization modules of all central nodes;

[0128] The stream information synchronization module updates the local stream information table according to the received stream information table; the stream information table includes basic parameters of the video stream, a node identifier of the node where the video stream is located, and pulled information.

[0129] In one embodiment, the method further comprises:

[0130] When the video stream acquired by the edge node is a transcoded video stream, the transcoded video stream is directly sent to the client through the streaming module.

[0131] Embodiment 4

[0132] Figure 7 FIG. 1 is a schematic diagram of the structure of a central node 10 provided in an embodiment of the present invention. Figure 7As shown, a central node provided by an embodiment of the present invention is applied to the real-time transcoding system for video stream distribution described in any embodiment of the present invention, and the central node 10 includes: a central node management program and a streaming module 103, and the central node management program includes a load control module 101 and a stream information synchronization module 102; the stream information synchronization module 102 is connected to the load control module 101 and the streaming module 103 respectively;

[0133] The load control module 101 is used to receive a stream pull request from an edge node 20, determine the edge node 20 that ultimately performs a transcoding operation on the video stream and an acquisition path for the video stream according to the stream information table, the adjustment parameters for the video stream in the stream pull request, and the transcoding load of the edge node 20, and send the acquisition path to the corresponding edge node 20;

[0134] The flow information synchronization module 102 is used to update the local flow information table after receiving the update information of the flow information table;

[0135] The streaming module 103 is used to pull the video stream from the video streaming server and push the video stream to the edge node 20 .

[0136] The components shown herein, their connections and relationships, and their functions, are intended to be exemplary only, and are not intended to limit implementations of the inventions described and / or claimed herein.

[0137] Embodiment 5

[0138] Figure 8 FIG. 2 is a schematic diagram of the structure of an edge node 20 provided in an embodiment of the present invention. Figure 8 As shown, an edge node provided by an embodiment of the present invention is applied to the real-time transcoding system for video stream distribution described in any embodiment of the present invention, and the edge node 20 includes: an edge node transcoding and streaming program and a streaming module 203, and the edge node transcoding and streaming program includes a load monitoring module 202 and a transcoding output module 201, and the transcoding output module 201 is connected to the load monitoring module 202 and the streaming module 203 respectively;

[0139] The transcoding output module 201 is used to receive a stream pulling request from a client and send the stream pulling request to the central node 10; the stream pulling request includes adjustment parameters for the video stream;

[0140] The load monitoring module 202 is used to report the transcoding load of the edge node 20 to the central node 10 when the transcoding output module 201 sends a stream pull request to the central node 10;

[0141] The streaming module 203 is used to pull the video stream from the corresponding central node 10 or edge node 20 according to the acquisition path sent by the central node 10;

[0142] The transcoding output module 201 is further used to perform a transcoding operation on the video stream based on the adjustment parameters;

[0143] The streaming module 203 is also used to push the transcoded video stream to the client.

[0144] The components shown herein, their connections and relationships, and their functions, are intended to be exemplary only, and are not intended to limit implementations of the inventions described and / or claimed herein.

[0145] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0146] Computer programs for implementing the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that when the computer program is executed by the processor, the functions / operations specified in the flow chart and / or block diagram are implemented. The computer program may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0147] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps described in the present invention can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solution of the present invention can be achieved, and this document does not limit this.

[0148] The above specific implementations do not constitute a limitation on the protection scope of the present invention. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modification, equivalent substitution and improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims

1. A real-time transcoding system for video stream distribution, characterized in that: The system comprises: a central node and one or more edge nodes; The edge node is used to receive a stream pulling request from a client and send the stream pulling request to the central node; the stream pulling request includes adjustment parameters for the video stream; The central node is used to determine the edge node that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node; The edge node is further used to pull the video stream from the corresponding central node or edge node according to the acquisition path, perform a transcoding operation on the video stream based on the adjustment parameters, and push the transcoded video stream to the client.

2. The system according to claim 1, characterized in that The edge node includes an edge node transcoding and streaming program, and the edge node transcoding and streaming program includes a load monitoring module; The load monitoring module is used to report the transcoding load status of the edge node to the central node when the reporting conditions are met; the transcoding load status at least includes the usage of the central processing unit and memory, and the number of video streams pulled by the edge node.

3. The system according to claim 1 or 2, characterized in that: The edge node transcoding and streaming program in the edge node includes a transcoding output module; the transcoding output module is used to: Adjust the parameters corresponding to the video stream according to the adjustment parameters; the adjustment parameters include one or more of audio encoding, video encoding, resolution, frame rate, bit rate and output format; Dynamically adjusting the bit rate of the video stream according to the current load of the edge node and the bit rate in the adjustment parameter; Determine the video quality and bit rate output buffer size corresponding to the video stream according to the current load condition; The adjusted video stream is used as the transcoded video stream.

4. The system according to claim 1, characterized in that The edge node includes a streaming module, which is used to: Pull the video stream from the corresponding central node or edge node according to the acquisition path; The transcoded video stream is pushed to the client.

5. The system according to claim 1, characterized in that The central node includes a central node management program, and the central node management program includes a load control module, and the load control module is used to: Searching the stream information table for a corresponding transcoded video stream according to the adjustment parameter; If yes, then determine the acquisition path of the video stream according to the node where the transcoded video stream is located; otherwise, determine the acquisition path according to the storage address of the video stream in the stream information table; An edge node that ultimately performs a transcoding operation on the video stream is determined according to the transcoding load of the edge node and the transcoding loads of other edge nodes adjacent to the edge node.

6. The system according to claim 1 or 5, characterized in that: The system also includes a video streaming server, and the central node management program in the central node includes a stream information synchronization module; The video stream server is used to receive the video stream sent by the client, register the stream information of the video stream into the stream information table, and send the stream information table to the stream information synchronization modules of all central nodes; The stream information synchronization module is used to update the local stream information table according to the received stream information table; the stream information table includes basic parameters of the video stream, the node identifier of the node where it is located, and the pulled information.

7. The system according to claim 1 or 5, characterized in that: The edge node is specifically used for: When the acquired video stream is a transcoded video stream, the transcoded video stream is directly sent to the client through the streaming module.

8. A real-time transcoding method for video stream distribution, characterized in that: The invention is applied to a real-time transcoding system for video stream distribution, the system comprising a central node and one or more edge nodes, and the method comprising: The edge node receives a stream pulling request from a client, wherein the stream pulling request includes adjustment parameters for the video stream; The central node determines the edge node that finally performs the transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters and the transcoding load of the edge node; The edge node pulls the video stream from the corresponding central node or edge node according to the acquisition path, performs a transcoding operation on the video stream based on the adjustment parameters, and pushes the transcoded video stream to the client.

9. A central node, characterized in that: Applied to the real-time transcoding system for video stream distribution as described in any one of claims 1 to 7, the central node comprises: a central node management program and a streaming module, the central node management program comprises a load control module and a stream information synchronization module; the stream information synchronization module is connected to the load control module and the streaming module respectively; The load control module is used to receive a stream pulling request from an edge node, determine the edge node that ultimately performs a transcoding operation on the video stream and the acquisition path of the video stream according to the stream information table, the adjustment parameters for the video stream in the stream pulling request, and the transcoding load of the edge node, and send the acquisition path to the corresponding edge node; The flow information synchronization module is used to update the local flow information table after receiving the update information of the flow information table; The streaming module is used to pull the video stream from the video streaming server and push the video stream to the edge node.

10. An edge node, characterized in that: Applied to the real-time transcoding system for video stream distribution as described in any one of claims 1 to 7, the edge node comprises: an edge node transcoding and streaming program and a streaming module, the edge node transcoding and streaming program comprises a load monitoring module and a transcoding output module, the transcoding output module is connected to the load monitoring module and the streaming module respectively; The transcoding output module is used to receive a stream pulling request from a client and send the stream pulling request to a central node; the stream pulling request includes adjustment parameters for the video stream; The load monitoring module is used to report the transcoding load of the edge node to the central node when the transcoding output module sends a stream pulling request to the central node; The streaming module is used to pull the video stream from the corresponding central node or edge node according to the acquisition path sent by the central node; The transcoding output module is further used to perform a transcoding operation on the video stream based on the adjustment parameters; The streaming module is also used to push the transcoded video stream to the client.

Citation Information

Cited By

  • Communication method and device based on data push-pull stream, and storage medium

    CN121037443A