Self-adaptive transcoding method and device

By obtaining the performance monitoring data of the computing instance, adaptive adjustment of the transcoding strategy, solving the problem of the existing technology rotation of rotation and the poor user experience, and achieved more efficient transfer task execution.

CN119383352APending Publication Date: 2025-01-28HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311575321.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-25
Filing Date
2023-11-23
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

The existing transcoding system cannot dynamically adjust the transcoding strategy based on the execution of the transcoding task, resulting in an extended transcoding delay and affecting the user experience.

Method used

By obtaining the performance monitoring data of the calculation instance, adaptive adjustment of the transcoding strategy, including scheduling strategies and processing strategies to optimize the execution of the transcoding task.

Benefits of technology

The dynamic adjustment of the transcoding strategy can reduce the transcoding delay when the processing complexity is high or the computing resources are limited, and improve the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119383352A_ABST
    Figure CN119383352A_ABST
Patent Text Reader

Abstract

The invention provides a self-adaptive transcoding method and device, which can be applied to the technical field of computers. The method comprises the following steps: acquiring first performance monitoring data of a first calculation instance; and adjusting the first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy. Wherein the first performance monitoring data is used for representing the performance of a first subtask of executing a transcoding task by the first calculation instance according to a first transcoding strategy, the transcoding task further comprises a second subtask, and the second transcoding strategy is used for indicating a transcoding mode for processing the second subtask. According to the method and the device, the problems of large transcoding time delay and poor user experience caused by the fact that the transcoding strategy cannot be dynamically adjusted according to the execution condition of the transcoding task can be solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to an adaptive transcoding method and device. Background Art

[0002] The live broadcast system is a typical one-to-many real-time communication system. In order to provide reliable and smooth video services to users' different playback terminals and network environments, the existing transcoding system uses preset transcoding templates to implement video transcoding functions. However, the preset transcoding templates can only provide fixed parameters such as fixed encoding standards, resolutions, bit rates, etc., and cannot be switched flexibly. When the computing resources in the transcoding system are insufficient, or the user's network status changes, it will cause frame loss, delay, freeze and other phenomena on the playback terminal, making it impossible to maintain normal live broadcast and interaction, affecting the user experience. Summary of the invention

[0003] The present application provides an adaptive transcoding method and device, which can solve the problems of large transcoding delay and poor user experience caused by the inability to dynamically adjust the transcoding strategy according to the execution status of the transcoding task.

[0004] In the first aspect, an adaptive transcoding method is provided, including: obtaining first performance monitoring data of a first computing instance; adjusting a first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy. The first performance monitoring data is used to indicate the performance of the first subtask of the transcoding task executed by the first computing instance according to the first transcoding strategy, including one or more of the CPU occupancy rate, memory occupancy rate, transcoding delay, and end-to-end delay of the first subtask executed on the first computing instance, wherein the transcoding delay of the first subtask executed on the first computing instance is the time taken to complete the first subtask, and the end-to-end delay of the first subtask executed on the first computing instance is the time interval between the multimedia stream corresponding to the first subtask being input into the first computing instance in the original format and being output from the first computing instance in the target format. The transcoding task also includes a second subtask. The second transcoding strategy is used to indicate the transcoding method for processing the second subtask, including a scheduling strategy and / or a processing strategy. The scheduling strategy is used to schedule the computing instance for executing the second subtask, including adjusting the number of the first computing instance for executing the second subtask, adjusting the resources of the first computing instance for executing the second subtask, adjusting the number and resources of the first computing instance for executing the second subtask, and migrating the second subtask from the first computing instance to the second computing instance, wherein the resources of the first computing instance include one or more of computing resources, storage resources, and network resources. The processing strategy is used to adjust the processing method of the second subtask, including adjusting the algorithm and / or tool used to implement the processing step, wherein the processing step includes one or more of decapsulating, decoding, pre-processing, encoding, and encapsulating the second subtask, and the pre-processing includes one or more of noise reduction, artifact removal, and color correction.

[0005] In the above scheme, the performance of the first subtask of the transcoding task executed by the first computing instance is sensed by acquiring the first performance monitoring data, and the first transcoding strategy is adaptively adjusted according to the performance, including the scheduling strategy and the processing strategy, so as to obtain the transcoding method of the second subtask indicating the processing of the transcoding task. Therefore, the transcoding strategy in the present technical scheme can be dynamically adjusted according to the execution of the transcoding task, from the first transcoding strategy to the second transcoding strategy. In the case where the processing complexity of the transcoding task is high and the processing steps are time-consuming, or in the case of limited computing resources, the present technical scheme can reduce the transcoding delay by adjusting the computing instance that executes the second subtask or optimizing the processing method of the second subtask, thereby improving the user experience.

[0006] In some possible implementations, the above-mentioned adjusting the first transcoding strategy based on the first performance monitoring data to obtain the second transcoding strategy includes at least the following two methods: (1) inputting the first performance monitoring data into the first classification model to calculate the second transcoding strategy. The first classification model is trained based on the third transcoding strategy and the second performance monitoring data. (2) calculating the first performance indicator data based on the first performance monitoring data, and adjusting the first transcoding strategy based on the first performance indicator data to obtain the second transcoding strategy. The first performance indicator data is a descriptive statistic of the performance monitoring data of multiple transcoding tasks executed on the first computing instance, and the performance monitoring data includes the first performance monitoring data.

[0007] In the above scheme, after obtaining the first performance monitoring data, the second transcoding strategy can be calculated using the first classification model trained by a large amount of second performance monitoring data, or the first performance indicator data that better reflects the performance of the first computing instance can be obtained by first using the first performance monitoring data, and then the first transcoding strategy is adjusted using the first performance indicator data to obtain the second transcoding strategy. Therefore, the second method can further improve the accuracy and effect of the second transcoding strategy. Therefore, the technical scheme provides multiple ways to obtain the second transcoding strategy based on obtaining the first performance monitoring data.

[0008] In some possible implementations, the first transcoding strategy is adjusted based on the first performance indicator data in the second method to calculate the second transcoding strategy, including at least the following two methods:

[0009] (1) Determine a first transcoding scenario from multiple transcoding scenarios based on first performance indicator data, and determine a second transcoding strategy corresponding to the first transcoding scenario. The multiple transcoding scenarios are distinguished based on the first performance indicator. The first performance indicator includes one or more of total CPU occupancy, total memory occupancy, total transcoding delay, end-to-end total delay, average CPU occupancy, average memory occupancy, average transcoding delay, and average end-to-end delay. The first performance indicator data is data obtained based on the first performance indicator.

[0010] In some possible implementations, the above-mentioned determining the first transcoding scenario from multiple transcoding scenarios based on the first performance indicator data includes at least the following two methods: (1) inputting the first performance indicator data into a second classification model to calculate the first transcoding scenario. The second classification model is trained based on the second transcoding scenario and the second performance indicator data. (2) receiving an application interface parameter input by a user, determining a threshold value of the first performance indicator based on the application interface parameter, comparing the first performance indicator data with the threshold value of the first performance indicator, and thereby determining the first transcoding scenario from multiple transcoding scenarios.

[0011] In the above solution, the first performance indicator data can be used as the input data of the second classification model, and the second classification model trained by a large amount of second performance indicator data can be used to calculate the first transcoding scenario, or after determining the threshold of the first performance indicator, the first performance indicator data can be compared with the threshold of the first performance indicator to determine the first transcoding scenario from multiple transcoding scenarios. Therefore, the technical solution provides multiple ways to determine the first transcoding scenario.

[0012] (2) Inputting the first performance indicator data into the third classification model to calculate the second transcoding strategy, wherein the third classification model is trained based on the fourth transcoding strategy and the third performance indicator data.

[0013] In the above scheme, after the first performance indicator data is calculated, the first transcoding scenario can be determined from multiple transcoding scenarios based on the first performance indicator data, and then the transcoding strategy corresponding to the first transcoding scenario can be used as the second transcoding strategy, or the first performance indicator data can be used as input data of the third classification model, and the second transcoding strategy can be calculated using the third classification model trained by a large amount of third performance indicator data. Therefore, the technical scheme provides multiple ways to obtain the second transcoding strategy based on the calculation of the first performance indicator data.

[0014] In the second aspect, an adaptive transcoding device is provided, including: a monitoring module and an adjustment module. The monitoring module is used to obtain the first performance monitoring data of the first computing instance; the adjustment module is used to adjust the first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy. The first performance monitoring data is used to indicate the performance of the first subtask of the first computing instance executing the transcoding task according to the first transcoding strategy, including one or more of the CPU occupancy rate, memory occupancy rate, transcoding delay, and end-to-end delay of the first subtask executed on the first computing instance, wherein the transcoding delay of the first subtask executed on the first computing instance is the time taken to complete the first subtask, and the end-to-end delay of the first subtask executed on the first computing instance is the time interval between the multimedia stream corresponding to the first subtask being input into the first computing instance in the original format and being output from the first computing instance in the target format. The transcoding task also includes a second subtask. The second transcoding strategy is used to indicate the transcoding method for processing the second subtask, including a scheduling strategy and / or a processing strategy. The scheduling strategy is used to schedule the computing instance for executing the second subtask, including adjusting the number of the first computing instance for executing the second subtask, adjusting the resources of the first computing instance for executing the second subtask, adjusting the number and resources of the first computing instance for executing the second subtask, and migrating the second subtask from the first computing instance to the second computing instance, wherein the resources of the first computing instance include one or more of computing resources, storage resources, and network resources. The processing strategy is used to adjust the processing method of the second subtask, including adjusting the algorithm and / or tool used to implement the processing step, wherein the processing step includes one or more of decapsulating, decoding, pre-processing, encoding, and encapsulating the second subtask, and the pre-processing includes one or more of noise reduction, artifact removal, and color correction.

[0015] In some possible implementations, the adjustment module is specifically configured to input the first performance monitoring data into a first classification model to calculate a second transcoding strategy, wherein the first classification model is trained based on the third transcoding strategy and the second performance monitoring data.

[0016] In some possible implementations, the adjustment module is specifically configured to calculate first performance indicator data based on the first performance monitoring data, and adjust the first transcoding strategy based on the first performance indicator data to obtain a second transcoding strategy. The first performance indicator data is a descriptive statistic of performance monitoring data of multiple transcoding tasks executed on the first computing instance, and the performance monitoring data includes the first performance monitoring data.

[0017] In some possible implementations, the adjustment module is specifically used to calculate the first performance indicator data based on the first performance monitoring data, determine the first transcoding scenario from multiple transcoding scenarios based on the first performance indicator data, and determine the second transcoding strategy corresponding to the first transcoding scenario. Among them, multiple transcoding scenarios are distinguished based on the first performance indicator. The first performance indicator includes one or more of the total CPU occupancy, the total memory occupancy, the total transcoding delay, the end-to-end total delay, the average CPU occupancy, the average memory occupancy, the average transcoding delay, and the end-to-end average delay. The first performance indicator data is data obtained based on the first performance indicator.

[0018] In some possible implementations, the adjustment module is specifically used to calculate the first performance indicator data based on the first performance monitoring data, input the first performance indicator data into the second classification model, calculate the first transcoding scenario, and determine the second transcoding strategy corresponding to the first transcoding scenario. The second classification model is trained based on the second transcoding scenario and the second performance indicator data.

[0019] In some possible implementations, the adjustment module is specifically used to calculate first performance indicator data based on the first performance monitoring data, compare the first performance indicator data with a threshold of the first performance indicator, determine a first transcoding scenario from multiple transcoding scenarios, and determine a second transcoding strategy corresponding to the first transcoding scenario.

[0020] In some possible implementations, the adaptive transcoding device further includes a receiving module, wherein the receiving module is configured to receive an application program interface parameter input by a user, and determine a threshold value of the first performance indicator based on the application program interface parameter.

[0021] In some possible implementations, the adjustment module is specifically used to calculate the first performance indicator data based on the first performance monitoring data, input the first performance indicator data into the third classification model, and calculate the second transcoding strategy. The third classification model is trained based on the fourth transcoding strategy and the third performance indicator data.

[0022] In a third aspect, a computing device cluster is provided, comprising at least one computing device, each computing device comprising a processor and a memory;

[0023] The processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes any method of the first aspect.

[0024] According to a fourth aspect, a computer program product comprising instructions is provided. When the instructions are executed by a computing device, the computing device executes the method as described in any one of the first aspects.

[0025] In a fifth aspect, a computer-readable storage medium is provided, characterized in that it includes computer program instructions. When the computer program instructions are executed by a computing device, the computing device executes any method of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] Figure 1 It is a structural schematic diagram of a transcoding system involved in this application;

[0027] Figure 2 It is a flowchart of an adaptive transcoding method provided by this application;

[0028] Figure 3 It is a structural schematic diagram of an adaptive transcoding device provided by the present application;

[0029] Figure 4 It is a structural diagram of a computing device cluster provided by this application;

[0030] Figure 5 It is a structural diagram of another computing device cluster provided by this application. DETAILED DESCRIPTION

[0031] The embodiments of the present application are described below in conjunction with the drawings in the embodiments of the present application.

[0032] In order to facilitate understanding of the embodiments of the present application, the transcoding object involved in the present application, namely, multimedia stream, is first introduced. Multimedia streams include video, audio, voice, etc., and have commercial value by being consumed by users using various terminal devices. Generally, multimedia streams need to have multiple formats to adapt to different terminal devices and network environments of users. The following will take video as an example of multimedia streams to introduce various formats of videos. Referring to Table 1 exemplarily shown in the present application, in Table 1, the video has four formats: low definition (LD), standard definition (SD), high definition (HD), and full high definition (FHD), and each format has its fixed resolution, bit rate and other parameters.

[0033] Table 1

[0034] Video Format Resolution Bit rate (Kbps) Smooth LD 640*360 400 Standard Definition 854*480 600 HD 1280*720 1000 FHD 1920*1080 2000

[0035] It should be understood that the above Table 1 is only an example of the video format and is not a specific limitation here.

[0036] The following will continue to use video as an example of multimedia stream to specifically introduce the embodiments of the present application.

[0037] In order to facilitate understanding of the embodiments of the present application, the transcoding system involved in the present application is first introduced.

[0038] See also Figure 1 , Figure 1 Schematic diagram of a transcoding system involved in this application. The transcoding system is used to convert the video format. Figure 1 As shown, the transcoding system 10 includes a service layer 11 , a scheduling layer 12 and a physical layer 13 .

[0039] The service layer 11 is used to provide a transcoding service interface, thereby receiving the video file 141 and transmitting the transcoded video file to the user's terminal device. When there is one transcoding service interface, the transcoding service interface not only receives the video file 141 but also transmits the transcoded video file. When there are multiple transcoding service interfaces, a part of the transcoding service interfaces can be used to receive the video file 141, and another part of the transcoding service interfaces can be used to transmit the transcoded video file.

[0040] The scheduling layer 12 is used to receive the transcoding notification 15 sent by the service layer 11, generate multiple transcoding tasks (such as transcoding task 161, transcoding task 162, transcoding task 163, and transcoding task 164) according to the transcoding notification 15, distribute the multiple transcoding tasks to the physical layer 13, and schedule the resources of the physical layer 13 to perform the multiple transcoding tasks. Among them, the transcoding task is to convert the original format of the video into the target format, that is, to convert the original video into the target video. For example, transcoding task 161 is to convert the original video into a smooth video; transcoding task 162 is to convert the original video into a standard definition video; transcoding task 163 is to convert the original video into a high-definition video; transcoding task 164 is to convert the original video into an ultra-high-definition video.

[0041] The physical layer 13 is used to process the video according to the transcoding task sent by the scheduling layer 12, including processing steps 130 such as decapsulation 131, decoding 132, pre-processing 133, encoding 134 and encapsulation 135. Specifically, decapsulation 131 is to extract the binary code stream of the video from the video file 141. Decoding 132 is to decode the binary code stream into video frames. Pre-processing 133 is to reduce noise, remove artifacts, and perform color correction on the video frames to improve the quality and visualization of the video. Encoding 134 is to encode the video frames that have undergone pre-processing 133 into a new binary code stream. Encapsulation 135 is to generate a video file containing a new binary code stream, and to match the format of the video file with the application on the terminal device. Therefore, the physical layer 13 can generate a video file 142 with a smooth format according to the transcoding task 161, generate a video file 143 with a standard definition format according to the transcoding task 162, generate a video file 144 with a high-definition format according to the transcoding task 163, and generate a video file 145 with an ultra-high-definition format according to the transcoding task 164. Subsequently, the physical layer 13 sends the video files 142 , 143 , 144 , and 145 to the service layer 11 , which transmits the video files to the user's terminal device.

[0042] In some possible implementations, the transcoding system 10 can be implemented by one or more computing instances. Among them, computing instances include physical hosts (computing devices), virtual machines, containers, bare metal servers, etc. A computing instance can execute one or more transcoding tasks. Multiple transcoding tasks in the same computing instance share the resources of the computing instance, including computing resources, storage resources, network resources, etc.

[0043] The existing transcoding system uses a preset transcoding strategy to perform video transcoding tasks. However, the preset transcoding strategy can only provide fixed parameters such as fixed encoding standards, resolutions, bit rates, etc., and cannot be switched flexibly. The video transcoding task is a computationally intensive task. The processing complexity of the video is strongly related to the format and content of the video. Generally, the processing complexity of videos with fast motion or complex texture scenes (such as game videos) is relatively high, and the processing steps are time-consuming. If the transcoding strategy cannot be dynamically adjusted according to the execution of the transcoding task, it will lead to a long time for the entire transcoding task, that is, a large transcoding delay. In the process of playing the video on the terminal device, frame loss, delay, and freeze will occur, affecting the user experience. On the other hand, multiple transcoding tasks executed on the same computing instance will also occupy resources. Therefore, if the transcoding strategy cannot be dynamically adjusted according to the execution of the transcoding task when computing resources are limited, the transcoding delay will be further increased and the user experience will be affected.

[0044] Based on the above-mentioned transcoding system, the present application provides an adaptive transcoding method and device to solve the problems of large transcoding delay and poor user experience caused by the inability to dynamically adjust the transcoding strategy according to the execution status of the transcoding task.

[0045] See also Figure 2 , Figure 2 is a flowchart of an adaptive transcoding method provided by this application. Figure 2 As shown, the adaptive transcoding method provided by the present application includes:

[0046] S201: Obtain first performance monitoring data of a first computing instance.

[0047] In some possible implementations, the first performance monitoring data of the first computing instance is collected according to a monitoring period (such as real-time, 5 seconds / time). The first performance monitoring data is data indicating the performance of the first subtask of the first computing instance executing the transcoding task according to the first transcoding strategy, including the central processing unit (CPU) occupancy rate, memory occupancy rate, transcoding delay, end-to-end delay, etc. of the first subtask executed on the first computing instance. The transcoding delay of the first subtask executed on the first computing instance is the time taken to complete the first subtask. The end-to-end delay of the first subtask executed on the first computing instance is the time interval between the video corresponding to the first subtask being input into the first computing instance in the original format and being output from the first computing instance in the target format, that is, the time interval between the video file containing the original video corresponding to the first subtask being input into the first computing instance and the video file containing the target video corresponding to the first subtask being output from the first computing instance. The first transcoding strategy is used to indicate the transcoding method for processing the first subtask, for example, the encoding standard, resolution, bit rate used for the first subtask, or the algorithm, tool and its parameters used for the processing steps such as decapsulation, decoding, pre-processing, encoding, and encapsulation of the first subtask. The processing steps can be Figure 1 The transcoding task may be a processing step 130 in the physical layer 13 of the transcoding system 10. Figure 1 The video file containing the original video corresponding to the first subtask may be Figure 1 The video file 141 in the transcoding system 10 of the first subtask can be Figure 1 The video file 142, the video file 143, the video file 144 or the video file 145 in the transcoding system 10.

[0048] In a specific implementation, the descriptive statistics calculated based on the data representing the performance of the first computing instance collected over multiple monitoring cycles can also be used as the first performance monitoring data. For example, the CPU occupancy rate, memory occupancy rate, transcoding delay, and end-to-end delay of the first computing instance when executing the first subtask are collected over multiple monitoring cycles, and the average value of the multiple CPU occupancy rates, the average value of the multiple memory occupancy rates, the average value of the multiple transcoding delays, and the average value of the multiple end-to-end delays collected are used as the first performance monitoring data. Alternatively, the maximum value among the multiple CPU occupancy rates, the maximum value among the multiple memory occupancy rates, the maximum value among the multiple transcoding delays, and the maximum value among the multiple end-to-end delays collected are used as the first performance monitoring data.

[0049] S202: Adjust the first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy.

[0050] The second transcoding strategy is used to indicate the transcoding method of the second subtask of the transcoding task. In some application scenarios, such as online video playback and live broadcast, the generation time of the original video corresponding to the first subtask of the transcoding task is earlier than the generation time of the original video corresponding to the second subtask. In other application scenarios, such as offline video playback, the original video is divided into multiple blocks, each of which corresponds to a subtask in the transcoding task. Then the original video corresponding to the first subtask and the original video corresponding to the second subtask are independent of each other.

[0051] In some possible implementations, the second transcoding strategy includes a scheduling strategy and / or a processing strategy. Among them, the scheduling strategy is used to schedule the computing instance for executing the second subtask, including adjusting the number of the first computing instance for executing the second subtask, adjusting the resources of the first computing instance for executing the second subtask, adjusting the number and resources of the first computing instance for executing the second subtask at the same time, migrating the second subtask from the first computing instance to the second computing instance, etc. The processing strategy is used to adjust the processing method of the second subtask, including adjusting the algorithm used to implement the processing step, replacing the tool used to implement the processing step, adjusting the parameters of the tool used to implement the processing step, etc. The following will take encoding as an example of a processing step and adjusting the parameters of the encoding tool as an example to specifically introduce the specific content of the processing strategy. Referring to Table 2 exemplarily shown in the present application, Table 2 provides encoding parameters adapted to different encoding complexities, including gear (preset), depth of coding unit division (CU division), coding tree unit size (CTU size), sample adaptive offset (SAO), rate distortion quantization level (rdoq_level), and early jump out of the level of coding unit division (early-skip). By setting the encoding tool according to the encoding parameters in Table 2, the encoding tool can complete the encoding task of the corresponding encoding complexity.

[0052] Table 2

[0053] Coding complexity preset CU Division CTU size SAO rdoq_level early-skip <th1 6 [1,1] 32 0 0 2 [th1,th2) 6 [1,2] 32 1 1 1 [th2,th3) 6 [0,2] 64 1 1 1 [th3,th4) 5 [0,3] 64 2 2 1 >th4 5 [0,3] 64 2 2 0

[0054] It should be understood that the above Table 2 is only an example of encoding parameters and is not a specific limitation here.

[0055] In some possible implementations, adjusting the first transcoding strategy based on the first performance monitoring data to obtain the second transcoding strategy includes at least the following two implementations:

[0056] In a first implementation method of adjusting the first transcoding strategy based on the first performance monitoring data to obtain the second transcoding strategy, the first performance monitoring data is input into the first classification model to calculate the second transcoding strategy. Specifically, the first performance monitoring data is used as input data, and a model such as a logistic regression model, a machine learning model, a deep learning model, or any combination thereof is used as the first classification model for classification, and a transcoding strategy corresponding to the first performance monitoring data is obtained as the second transcoding strategy. Among them, the first classification model is obtained by training the second performance monitoring data stored in the database as training data and the third transcoding strategy as the label of the training data. The second performance monitoring data is the performance monitoring data of the transcoding task executed on the first computing instance collected in the monitoring cycle before the current monitoring cycle. The performance monitoring data includes CPU occupancy, memory occupancy, transcoding delay, end-to-end delay, etc. The transcoding delay is the time taken to complete the transcoding task. The end-to-end delay is the time interval between the video inputting the first computing instance in the original format and outputting the first computing instance in the target format, that is, the time interval between the video file containing the original video inputting the first computing instance and the video file containing the target video outputting the first computing instance. Therefore, end-to-end latency includes transcoding latency.

[0057] In a second implementation, in order to further improve the accuracy and effect of the second transcoding strategy, first performance indicator data is first calculated based on the first performance monitoring data, and then the first transcoding strategy is adjusted based on the first performance indicator data, thereby obtaining the second transcoding strategy. The first performance indicator data is a descriptive statistic of performance monitoring data of multiple transcoding tasks executed on the first computing instance.

[0058] In some possible implementations, the specific process of calculating the first performance indicator data based on the first performance monitoring data is as follows: first, collect the performance monitoring data of each transcoding task executed on the first computing instance in the current monitoring period, including the first performance monitoring data. Secondly, perform statistical analysis on the performance monitoring data of all transcoding tasks collected to obtain descriptive statistics, and use the descriptive statistics as the first performance indicator data. For example, collect the CPU occupancy rate, memory occupancy rate, transcoding delay, and end-to-end delay of each transcoding task executed on the first computing instance, and use the sum of all CPU occupancy rates (total CPU occupancy rate), the sum of all memory occupancy rates (total memory occupancy rate), the sum of all transcoding delays (total transcoding delay), and the sum of all end-to-end delays (total end-to-end delay) as the first performance indicator data. Alternatively, use the average value of all CPU occupancy rates (average CPU occupancy rate), the average value of all memory occupancy rates (average memory occupancy rate), the average value of all transcoding delays (average transcoding delay), and the average value of all end-to-end delays (average end-to-end delay) as the first performance indicator data. Alternatively, the maximum value of all CPU occupancy rates (maximum CPU occupancy rate), the maximum value of all memory occupancy rates (maximum memory occupancy rate), the maximum value of all transcoding delays (maximum transcoding delay), and the maximum value of all end-to-end delays (maximum end-to-end delay) are used as the first performance indicator data.

[0059] In some possible implementations, the first transcoding strategy is adjusted based on the first performance indicator data to obtain the second transcoding strategy, including at least the following two implementations:

[0060] In the first implementation, in order to further improve the accuracy and effect of the second transcoding strategy, the first transcoding scenario can be determined from multiple transcoding scenarios based on the first performance indicator data, and then the transcoding strategy corresponding to the first transcoding scenario is used as the second transcoding strategy.

[0061] In some possible implementations, multiple transcoding scenarios are divided based on the first performance indicator. Among them, the first performance indicator is an indicator to measure the performance of the first computing instance in executing the transcoding task, and is also the basis for obtaining the first performance indicator data, including total CPU occupancy, total memory occupancy, total transcoding delay, end-to-end total delay, average CPU occupancy, average memory occupancy, average transcoding delay, end-to-end average delay, etc. The number of transcoding scenarios increases exponentially with the increase in the number of first performance indicators. When the number of first performance indicators is one, two transcoding scenarios can be divided; when the number of first performance indicators is two, four transcoding scenarios can be divided; when the number of first performance indicators is three, eight transcoding scenarios can be divided...

[0062] In some possible implementations, determining the first transcoding scenario from multiple transcoding scenarios based on the first performance indicator data includes at least the following two implementations:

[0063] In a first implementation, the first performance indicator data is input into a second classification model, and a first transcoding scenario is calculated. Specifically, the first performance indicator data is used as input data, and a model such as a logistic regression model, a machine learning model, a deep learning model, or any combination thereof is used as a second classification model for classification, and a transcoding scenario corresponding to the first performance indicator data is obtained as the first transcoding scenario. The second classification model is obtained by training the second performance indicator data stored in a database as training data and the second transcoding scenario as a label of the training data. The second performance indicator data is a descriptive statistic of performance monitoring data of multiple transcoding tasks executed on the first computing instance, which is calculated in the monitoring period before the current monitoring period.

[0064] In a second implementation, the first performance indicator data is compared with the threshold of the first performance indicator, and the first transcoding scenario is determined from multiple transcoding scenarios according to the comparison result. Referring to Table 3 exemplarily shown in the present application, in Table 3, eight transcoding scenarios are divided using the total CPU occupancy, the total memory occupancy, and the end-to-end total delay as the first performance indicator, 70% as the threshold of the total CPU occupancy, 80% as the threshold of the total memory occupancy, and 100ms as the threshold of the end-to-end total delay.

[0065] Table 3

[0066] Transcoding scenario Total CPU usage Total memory usage End-to-end total delay Low load, low memory, and low latency scenarios <70% <80% <1000ms Low load, low memory, and high latency scenarios <70% <80% ≥1000ms Low load, high memory, and low latency scenarios <70% ≥80% <1000ms Low load, high memory, and high latency scenarios <70% ≥80% ≥1000ms High load, low memory, and low latency scenarios ≥70% <80% <1000ms High load, low memory, and high latency scenarios ≥70% <80% ≥1000ms High-load, high-memory, and low-latency scenarios ≥70% ≥80% <1000ms High-load, high-memory, and high-latency scenarios ≥70% ≥80% ≥1000ms

[0067] Assume that a set of first performance indicator data is: total CPU occupancy 78%, total memory occupancy 90%, and end-to-end total latency 120ms. Since the total CPU occupancy 78%>70%, it means that the first computing instance is in a high load state; the total memory occupancy 90%>80%, which means that the first computing instance is in a high memory state; the end-to-end total latency 1200ms>1000ms, which means that the first computing instance is in a high latency state, and thus the first computing instance is in a high load, high memory, and high latency scenario. Therefore, the high load, high memory, and high latency scenario is the first transcoding scenario. In summary, by comparing the first performance indicator data with the threshold of the first performance indicator, the first transcoding scenario can be determined from multiple transcoding scenarios.

[0068] It should be understood that the above Table 3 is only an example of dividing multiple transcoding scenarios. Multiple transcoding scenarios can also be divided according to the total CPU occupancy, the total memory occupancy, and the total transcoding delay. Multiple transcoding scenarios can also be divided according to the average CPU occupancy, the average memory occupancy, the end-to-end average delay, etc., which is not specifically limited here.

[0069] In some possible implementations, after determining the first transcoding scenario, the transcoding strategy corresponding to the first transcoding scenario is used as the second transcoding strategy. For example, if the first transcoding scenario is the high-load, high-memory, high-latency scenario in Table 3, and the transcoding strategy corresponding to the high-load, high-memory, high-latency scenario is a scheduling strategy, then the scheduling strategy can be used as the second transcoding strategy. Wherein, the specific content of the scheduling strategy can be to migrate the second subtask from the high-load first computing instance to the low-load second computing instance, and reduce the resources of the first computing instance, or reduce the threshold of the total CPU occupancy rate of the first computing instance, so that the scheduling layer in the transcoding system no longer sends new transcoding tasks to the high-load first computing instance. Alternatively, if the first transcoding scenario is the low-load, low-memory, high-latency scenario in Table 3, and the transcoding strategy corresponding to the low-load, low-memory, high-latency scenario is a processing strategy, then the processing strategy can be used as the second transcoding strategy. Wherein, the specific content of the processing strategy can be: optimize the algorithm used to implement the processing step (such as adjusting algorithm parameters, replacing the algorithm), or optimize the tool used to implement the processing step (such as adjusting tool parameters, replacing the tool), or a combination thereof. In a specific implementation, a more sophisticated processing strategy can be obtained by collecting and analyzing the delay of each processing step. For example, the frequent switching of the video content background will increase the P frame encoding complexity and the encoding delay. Therefore, the processing strategy for encoding can be to adjust the encoding algorithm and / or encoding tool, such as replacing it with an encoding algorithm with a simple structure. Furthermore, a correspondence between encoding delay and encoding complexity can be established. Therefore, when the target encoding delay is calculated, the target encoding complexity can be determined through the correspondence between encoding delay and encoding complexity, and then the target encoding parameters can be obtained from Table 2 above, so that the encoding tool can subsequently encode according to the target encoding parameters. Among them, the transcoding system can be Figure 1 The transcoding system 10, the scheduling layer may be Figure 1 In the scheduling layer 12 of the transcoding system 10, the encoding may be Figure 1 The encoding 134 in the physical layer 13 of the transcoding system 10.

[0070] In some possible implementations, the threshold of the above-mentioned first performance indicator is set based on empirical data. Alternatively, the threshold of the first performance indicator is determined based on an application program interface parameter input by the user. For example, before using a terminal device to play a video, the user enters "video quality: standard definition, whether to accept freezes: no" as an application program interface parameter through the application program interface on the application that plays the video. Subsequently, the terminal device sends the application program interface parameters to the transcoding system. After receiving the application program interface parameters, the service layer of the transcoding system sends a transcoding notification to the scheduling layer, and the scheduling layer generates a transcoding task with the target video as a standard definition video. In addition, the scheduling layer sets the threshold of the end-to-end average delay to 100ms based on the information "whether to accept freezes: no". Among them, the service layer can be Figure 1 In the service layer 11 of the transcoding system 10, the transcoding notification may be Figure 1 The transcoding notification 15 in the transcoding system 10.

[0071] In the second implementation method of adjusting the first transcoding strategy based on the first performance monitoring data to obtain the second transcoding strategy, the first performance indicator data is input into the third classification model to calculate the second transcoding strategy. Specifically, the first performance indicator data is used as input data, and a model such as a logistic regression model, a machine learning model, a deep learning model, or any combination thereof is used as the third classification model for classification, and the transcoding strategy corresponding to the first performance indicator data is obtained as the second transcoding strategy. Among them, the third classification model is obtained by training the third performance indicator data stored in the database as training data and the fourth transcoding strategy as the label of the training data. The third performance indicator data is a descriptive statistic of the performance monitoring data of multiple transcoding tasks executed on the first computing instance, which is calculated in the monitoring period before the current monitoring period.

[0072] In summary, by implementing the embodiments of the present invention, the first performance monitoring data can be obtained to sense the performance of the first computing instance executing the first subtask of the transcoding task, and the first transcoding strategy, including the scheduling strategy and the processing strategy, can be adaptively adjusted according to the performance, so as to obtain the transcoding method of the second subtask indicating the processing of the transcoding task. Therefore, the transcoding strategy in the present technical solution can be dynamically adjusted according to the execution status of the transcoding task, from the first transcoding strategy to the second transcoding strategy. In the case where the processing complexity of the transcoding task is high and the processing steps are time-consuming, or in the case of limited computing resources, the present technical solution can reduce the transcoding delay by adjusting the computing instance executing the second subtask or optimizing the processing method of the second subtask, thereby improving the user experience.

[0073] See also Figure 3 , Figure 3300 is a schematic diagram of the structure of an adaptive transcoding device provided by the present application. The adaptive transcoding device 300 can be used to implement the aforementioned adaptive transcoding method. Figure 3 As shown, the adaptive transcoding device 300 includes: a monitoring module 301 and an adjustment module 302.

[0074] The monitoring module 301 is used to obtain first performance monitoring data of a first computing instance;

[0075] The adjustment module 302 is used to adjust the first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy;

[0076] Among them, the first performance monitoring data is used to represent the performance of the first computing instance executing the first subtask of the transcoding task according to the first transcoding strategy. The transcoding task also includes a second subtask. The second transcoding strategy is used to indicate the transcoding method for processing the second subtask.

[0077] In some possible implementations, the first performance monitoring data includes one or more of CPU occupancy, memory occupancy, transcoding delay, and end-to-end delay when the first subtask is executed on the first computing instance, wherein the transcoding delay when the first subtask is executed on the first computing instance is the time taken to complete the first subtask, and the end-to-end delay when the first subtask is executed on the first computing instance is the time interval between when the multimedia stream corresponding to the first subtask is input into the first computing instance in the original format and output from the first computing instance in the target format.

[0078] In some possible implementations, the second transcoding strategy includes a scheduling strategy and / or a processing strategy, wherein the scheduling strategy is used to schedule a computing instance for executing the second subtask, and the processing strategy is used to adjust a processing method for the second subtask.

[0079] In some possible implementations, the scheduling strategy includes adjusting the number of first computing instances used to execute the second subtask, adjusting the resources of the first computing instance used to execute the second subtask, adjusting the number and resources of the first computing instances used to execute the second subtask, and migrating the second subtask from the first computing instance to the second computing instance, wherein the resources of the first computing instance include one or more of computing resources, storage resources, and network resources.

[0080] In some possible implementations, the processing strategy includes adjusting the algorithms and / or tools used to implement the processing steps, wherein the processing steps include one or more of decapsulating, decoding, pre-processing, encoding, and encapsulating the second subtask, and the pre-processing includes one or more of noise reduction, artifact removal, and color correction.

[0081] In some possible implementations, the adjustment module 302 is specifically configured to input the first performance monitoring data into a first classification model to calculate a second transcoding strategy, wherein the first classification model is trained based on the third transcoding strategy and the second performance monitoring data.

[0082] In some possible implementations, the adjustment module 302 is specifically used to calculate first performance indicator data based on first performance monitoring data, and adjust the first transcoding strategy based on the first performance indicator data to obtain a second transcoding strategy, wherein the first performance indicator data is a descriptive statistic of performance monitoring data of multiple transcoding tasks executed on a first computing instance, and the performance monitoring data includes the first performance monitoring data.

[0083] In some possible implementations, the adjustment module 302 is specifically used to calculate first performance indicator data based on the first performance monitoring data, determine a first transcoding scenario from multiple transcoding scenarios based on the first performance indicator data, and determine a second transcoding strategy corresponding to the first transcoding scenario, wherein the multiple transcoding scenarios are distinguished based on the first performance indicator, and the first performance indicator data is data obtained based on the first performance indicator.

[0084] In some possible implementations, the first performance indicator includes one or more of total CPU occupancy, total memory occupancy, total transcoding delay, total end-to-end delay, average CPU occupancy, average memory occupancy, average transcoding delay, and average end-to-end delay.

[0085] In some possible implementations, the adjustment module 302 is specifically used to calculate first performance indicator data based on the first performance monitoring data, input the first performance indicator data into the second classification model, calculate the first transcoding scenario, and determine the second transcoding strategy corresponding to the first transcoding scenario, wherein the second classification model is trained based on the second transcoding scenario and the second performance indicator data.

[0086] In some possible implementations, the adjustment module 302 is specifically used to calculate first performance indicator data based on the first performance monitoring data, compare the first performance indicator data with a threshold of the first performance indicator, determine a first transcoding scenario from multiple transcoding scenarios, and determine a second transcoding strategy corresponding to the first transcoding scenario.

[0087] In some possible implementations, the adaptive transcoding device 300 further includes a receiving module, where the receiving module is used to receive an application program interface parameter, and determine a threshold value of the first performance indicator based on the application program interface parameter, wherein the application program interface parameter is input by a user.

[0088] In some possible implementations, the adjustment module 302 is specifically used to calculate first performance indicator data based on the first performance monitoring data, input the first performance indicator data into the third classification model, and calculate the second transcoding strategy, wherein the third classification model is trained based on the fourth transcoding strategy and the third performance indicator data.

[0089] Among them, the above-mentioned monitoring module 301, adjustment module 302 and receiving module can all be implemented by software, or can be implemented by hardware. Exemplarily, the following takes the monitoring module 301 as an example to introduce the implementation of the monitoring module 301. Similarly, the implementation of the adjustment module 302 and the receiving module can refer to the implementation of the monitoring module 301.

[0090] As an example of a software functional unit, the monitoring module 301 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the monitoring module 301 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with close geographical locations. Among them, usually a region can include multiple AZs.

[0091] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0092] As an example of a hardware functional unit, the monitoring module 301 may include at least one computing device, such as a server, etc. Alternatively, the monitoring module 301 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.

[0093] The multiple computing devices included in the monitoring module 301 can be distributed in the same region or in different regions. The multiple computing devices included in the monitoring module 301 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the monitoring module 301 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0094] It should be noted that, in other embodiments, the monitoring module 301 can be used to execute any step in the adaptive transcoding method, the adjustment module 302 can be used to execute any step in the adaptive transcoding method, and the receiving module can be used to execute any step in the adaptive transcoding method. The steps that the monitoring module 301, the adjustment module 302 and the receiving module are responsible for implementing can be specified as needed. The monitoring module 301, the adjustment module 302 and the receiving module respectively implement different steps in the adaptive transcoding method to realize all the functions of the fault self-healing device.

[0095] See also Figure 4 , Figure 4 1 is a schematic diagram of the structure of a computing device cluster provided by the present application. The computing device cluster provided by the present application includes at least one computing device. The computing device may be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0096] like Figure 4 As shown, the computing device cluster includes at least one computing device 400 .

[0097] The computing device 400 includes: a bus 401, a processor 402, a memory 403, and a communication interface 404. The processor 402, the memory 403, and the communication interface 404 communicate with each other through the bus 401. The computing device 400 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 400.

[0098] The bus 401 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 4 The bus 401 is represented by only one line, but it does not mean that there is only one bus or one type of bus. The bus 401 may include a path for transmitting information between various components of the computing device 400 (eg, the memory 403, the processor 402, and the communication interface 404).

[0099] The processor 402 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

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

[0101] The memory 403 stores executable program codes, and the processor 402 executes the executable program codes to respectively implement the functions of the monitoring module 301, the adjustment module 302, and the receiving module, thereby implementing the aforementioned Figure 2 That is, the memory 403 stores instructions for executing the adaptive transcoding method.

[0102] The communication interface 404 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 400 and other computing devices or communication networks.

[0103] The memory 403 in one or more computing devices 400 in the computing device cluster may store the same instructions for executing the adaptive transcoding method.

[0104] In some possible implementations, the memory 403 of one or more computing devices 400 in the computing device cluster may also store partial instructions for executing the adaptive transcoding method. In other words, the combination of one or more computing devices 400 may jointly execute instructions for executing the adaptive transcoding method.

[0105] It should be noted that the memory 403 in different computing devices 400 in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the adaptive transcoding apparatus 300. That is, the instructions stored in the memory 403 in different computing devices 400 can implement the functions of one or more modules among the monitoring module 301, the adjustment module 302 and the receiving module.

[0106] See also Figure 5 , Figure 5 FIG. 1 is a schematic diagram of another computing device cluster provided by the present application. In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network. The network may be a wide area network or a local area network, etc. Figure 5 As shown, two computing devices 400A and 400B are connected via a network. Specifically, they are connected to the network via a communication interface in each computing device. In this type of possible implementation, the memory 403 in the computing device 400A stores instructions for executing the functions of the monitoring module 301. At the same time, the memory 403 in the computing device 400B stores instructions for executing the functions of the adjustment module 302.

[0107] Figure 5 The connection mode between the computing device clusters shown may be that considering that the adaptive transcoding method provided in the present application requires a large amount of storage of monitoring data and indicator data, it is considered to hand over the functions implemented by the adjustment module 302 to the computing device 400B for execution.

[0108] It should be understood that Figure 5 The functions of the computing device 400A shown in FIG. 4 may also be completed by multiple computing devices 400. Similarly, the functions of the computing device 400B may also be completed by multiple computing devices 400.

[0109] The present application embodiment also provides another computing device cluster. The connection relationship between the computing devices in the computing device cluster can be similar to that of Figure 4 and Figure 5 The connection mode of the computing device cluster is different in that the memory 403 in one or more computing devices 400 in the computing device cluster may store the same instructions for executing the adaptive transcoding method.

[0110] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be software or a program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on a computing device, the computing device is caused to perform the aforementioned adaptive transcoding method.

[0111] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to perform the aforementioned adaptive transcoding method.

[0112] It should be understood that in the embodiments of the present invention, "when..." and "when..." both mean that the device will perform corresponding processing under certain objective circumstances, and it does not limit the time, nor does it require the device to perform a judgment action when it is implemented, nor does it mean that there are other limitations.

[0113] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.

Claims

1. An adaptive transcoding method, characterized in that: include: Acquire first performance monitoring data of a first computing instance, wherein the first performance monitoring data is used to indicate the performance of the first computing instance in executing a first subtask of a transcoding task according to a first transcoding strategy, wherein the transcoding task further includes a second subtask; The first transcoding strategy is adjusted based on the first performance monitoring data to obtain a second transcoding strategy, wherein the second transcoding strategy is used to indicate a transcoding method for processing the second subtask.

2. The method according to claim 1, characterized in that The first performance monitoring data includes one or more of the central processing unit CPU occupancy, memory occupancy, transcoding delay, and end-to-end delay when the first subtask is executed on the first computing instance, wherein the transcoding delay when the first subtask is executed on the first computing instance is the time taken to complete the first subtask, and the end-to-end delay when the first subtask is executed on the first computing instance is the time interval between the multimedia stream corresponding to the first subtask being input into the first computing instance in the original format and being output from the first computing instance in the target format.

3. The method according to claim 1 or 2, characterized in that: The second transcoding strategy includes a scheduling strategy and / or a processing strategy, wherein the scheduling strategy is used to schedule the computing instance for executing the second subtask, and the processing strategy is used to adjust the processing method of the second subtask.

4. The method according to claim 3, characterized in that The scheduling strategy includes adjusting the number of the first computing instances used to execute the second subtask, adjusting the resources of the first computing instance used to execute the second subtask, adjusting the number and resources of the first computing instances used to execute the second subtask, and migrating the second subtask from the first computing instance to the second computing instance, wherein the resources of the first computing instance include one or more of computing resources, storage resources, and network resources.

5. The method according to claim 3 or 4, characterized in that: The processing strategy includes adjusting the algorithms and / or tools used to implement the processing steps, wherein the processing steps include one or more of decapsulating, decoding, pre-processing, encoding, and encapsulating the second subtask, and the pre-processing includes one or more of noise reduction, artifact removal, and color correction.

6. The method according to any one of claims 1 to 5, characterized in that: The adjusting the first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy includes: The first performance monitoring data is input into a first classification model, and the second transcoding strategy is calculated, wherein the first classification model is trained based on the third transcoding strategy and the second performance monitoring data.

7. The method according to any one of claims 1 to 5, characterized in that: The adjusting the first transcoding strategy based on the first performance monitoring data includes: First performance indicator data is calculated based on the first performance monitoring data, and the first transcoding strategy is adjusted based on the first performance indicator data, wherein the first performance indicator data is a descriptive statistic of performance monitoring data of multiple transcoding tasks executed on the first computing instance, and the performance monitoring data includes the first performance monitoring data.

8. The method according to claim 7, characterized in that The adjusting the first transcoding strategy based on the first performance indicator data to obtain a second transcoding strategy includes: Based on the first performance indicator data, a first transcoding scenario is determined from multiple transcoding scenarios, and the second transcoding strategy corresponding to the first transcoding scenario is determined, wherein the multiple transcoding scenarios are distinguished based on the first performance indicator, and the first performance indicator data is data obtained according to the first performance indicator.

9. The method according to claim 8, characterized in that The first performance indicator includes one or more of total CPU occupancy, total memory occupancy, total transcoding delay, total end-to-end delay, average CPU occupancy, average memory occupancy, average transcoding delay, and average end-to-end delay.

10. The method according to claim 8 or 9, characterized in that: The determining a first transcoding scenario from a plurality of transcoding scenarios based on the first performance indicator data includes: The first performance indicator data is input into a second classification model to calculate the first transcoding scenario, wherein the second classification model is trained based on the second transcoding scenario and the second performance indicator data.

11. The method according to claim 8 or 9, characterized in that: The determining a first transcoding scenario from a plurality of transcoding scenarios based on the first performance indicator data includes: The first performance indicator data is compared with a threshold value of the first performance indicator, and the first transcoding scenario is determined from the multiple transcoding scenarios.

12. The method according to claim 11, characterized in that Before comparing the first performance indicator data with the threshold of the first performance indicator, the method further includes: An application program interface parameter is received, and a threshold of the first performance indicator is determined based on the application program interface parameter, wherein the application program interface parameter is input by a user.

13. An adaptive transcoding device, characterized in that: include: Monitoring module and adjustment module, The monitoring module is used to obtain first performance monitoring data of the first computing instance, wherein the first performance monitoring data is used to represent the performance of the first computing instance in executing a first subtask of a transcoding task according to a first transcoding strategy, and the transcoding task also includes a second subtask; The adjustment module is used to adjust the first transcoding strategy based on the first performance monitoring data to obtain a second transcoding strategy, wherein the second transcoding strategy is used to indicate a transcoding method for processing the second subtask.

14. The device according to claim 13, characterized in that The first performance monitoring data includes one or more of the central processing unit CPU occupancy, memory occupancy, transcoding delay, and end-to-end delay when the first subtask is executed on the first computing instance, wherein the transcoding delay when the first subtask is executed on the first computing instance is the time taken to complete the first subtask, and the end-to-end delay when the first subtask is executed on the first computing instance is the time interval between the multimedia stream corresponding to the first subtask being input into the first computing instance in the original format and being output from the first computing instance in the target format.

15. The device according to claim 13 or 14, characterized in that The second transcoding strategy includes a scheduling strategy and / or a processing strategy, wherein the scheduling strategy is used to schedule the computing instance for executing the second subtask, and the processing strategy is used to adjust the processing method of the second subtask.

16. The device according to claim 15, characterized in that The scheduling strategy includes adjusting the number of the first computing instances used to execute the second subtask, adjusting the resources of the first computing instances used to execute the second subtask, adjusting the number and resources of the first computing instances used to execute the second subtask, and migrating the second subtask from the first computing instance to the second computing instance, wherein the resources of the first computing instance include one or more of computing resources, storage resources, and network resources.

17. The device according to claim 15 or 16, characterized in that The processing strategy includes adjusting the algorithms and / or tools used to implement the processing steps, wherein the processing steps include one or more of decapsulating, decoding, pre-processing, encoding, and encapsulating the second subtask, and the pre-processing includes one or more of noise reduction, artifact removal, and color correction.

18. The device according to any one of claims 13 to 17, characterized in that The adjustment module is specifically used to input the first performance monitoring data into a first classification model to calculate the second transcoding strategy, wherein the first classification model is trained based on the second transcoding strategy and the second performance monitoring data.

19. The device according to any one of claims 13 to 17, characterized in that The adjustment module is specifically used to calculate first performance indicator data based on the first performance monitoring data, and adjust the first transcoding strategy based on the first performance indicator data, wherein the first performance indicator data is a descriptive statistic of performance monitoring data of multiple transcoding tasks executed on the first computing instance, and the performance monitoring data includes the first performance monitoring data.

20. The device according to claim 19, characterized in that The adjustment module is specifically used to calculate the first performance indicator data based on the first performance monitoring data, determine a first transcoding scenario from multiple transcoding scenarios based on the first performance indicator data, and determine the second transcoding strategy corresponding to the first transcoding scenario, wherein the multiple transcoding scenarios are distinguished based on the first performance indicator, and the first performance indicator data is data obtained according to the first performance indicator.

21. The device according to claim 20, characterized in that The first performance indicator includes one or more of total CPU occupancy, total memory occupancy, total transcoding delay, total end-to-end delay, average CPU occupancy, average memory occupancy, average transcoding delay, and average end-to-end delay.

22. The device according to claim 20 or 21, characterized in that The adjustment module is specifically used to calculate the first performance indicator data based on the first performance monitoring data, input the first performance indicator data into a second classification model, calculate the first transcoding scenario, and determine the second transcoding strategy corresponding to the first transcoding scenario, wherein the second classification model is trained based on the second transcoding scenario and the second performance indicator data.

23. The device according to claim 20 or 21, characterized in that The adjustment module is specifically used to calculate the first performance indicator data based on the first performance monitoring data, compare the first performance indicator data with the threshold of the first performance indicator, determine the first transcoding scenario from the multiple transcoding scenarios, and determine the second transcoding strategy corresponding to the first transcoding scenario.

24. The device according to claim 23, characterized in that The adaptive transcoding device further includes a receiving module. The receiving module is used to receive an application program interface parameter, and determine a threshold value of the first performance indicator based on the application program interface parameter, wherein the application program interface parameter is input by a user.

25. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 12.

26. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device, the computing device is caused to perform the method according to any one of claims 1 to 12.

27. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device, the computing device performs the method according to any one of claims 1 to 12.