Data slicing method, server and storage medium

In live broadcast data distribution, the decoding unit length in the historical slice file is used to predict the keyframe position of the slice file, and more independent sub-slices are split, which solves the problem of live broadcast delay and achieves more efficient live broadcast data decoding and Real-time.

CN119110137APending Publication Date: 2024-12-10ALIBABA (CHINA) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310684989.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-09
Publication Date
2024-12-10

AI Technical Summary

Technical Problem

In the live broadcast data distribution scenario, the size of the GOP cannot be accurately determined, resulting in the inability to effectively split out sub-slices that can be decoded independently, increasing the live broadcast delay.

Method used

By obtaining the length of the decoding unit in the historical slice file, predicting the keyframe position of the slice file, and segmenting the slice file according to the slice parameters, multiple sub-slices are generated, including independent sub-slices and non-independent sub-slices, adding independent decoding entry points .

Benefits of technology

The number of independent sub-slices is increased, the delay of live broadcast is reduced, and the real-timeness of live broadcast is improved. It allows the playback side to jump directly to independent sub-slices for decoding, independent of the decoding results of the pre-sequence sub-slices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119110137A_ABST
    Figure CN119110137A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data slicing method, a server and a storage medium. In the slicing method, slicing parameters of a slicing file are determined according to the length of a decoding unit of a live broadcast stream, the length of the decoding unit is obtained by detecting a decoding unit of a historical slicing file, and the position of a key frame of the slicing file can be predicted under the condition that coding information of a live broadcast source stream is unknown. Based on the predicted location of the key frame, slice parameters that can adapt to the stream characteristics of the live stream may be determined. And according to the slice parameters, segmenting the slice file by taking the predicted position of the key frame as a segmentation point, and automatically segmenting independent sub-slices which take the key frame as the first frame as many as possible from a single slice file. The decoding operation of the independent sub-slices does not depend on other preorder video frames, so that the random entry points of the decoding operation can be increased, and the playing delay of the live stream is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data processing technology, and in particular to a data slicing method, a server, and a storage medium. Background Art

[0002] In the live data distribution scenario, after the server device pulls the live source stream data, it can divide the data packets into individual media files (i.e., slice files) containing several seconds to tens of seconds of data according to the specified streaming media transmission protocol, and distribute the slice files to the playback end by updating the slice list. The slice file consists of one or more GOPs (Group of Pictures, the smallest decoding unit video data packet group), and each GOP starts with a key frame, so that the slice file can be decoded independently. In a low-latency streaming media transmission protocol, a splitting method is proposed that can divide a single slice file into multiple smaller sub-slices. After any smaller sub-slice is generated, the sub-slice can be distributed to the client.

[0003] Due to the decoding reference dependency of streaming media encoding, the independent decoding operation of any sub-slice also needs to use the position of the key frame as the decoding entry point. In the case of unknown live source stream encoding information, the size of the GOP cannot be directly determined, and thus it is impossible to accurately divide the sub-slices that can be independently decoded according to the position of the key frame, which is not conducive to further reducing the live delay. Therefore, a new solution needs to be proposed. Summary of the invention

[0004] Multiple aspects of the present application provide a data slicing method, a server, and a storage medium to increase the number of sub-slices that can be independently decoded to increase the entry points for independent decoding, thereby reducing live broadcast delay.

[0005] An embodiment of the present application provides a data slicing method, including: obtaining a slice file and a first slice parameter of a live stream; determining the first slice parameter according to a first decoding unit length detected in a historical slice file; using the first decoding unit length to predict the position of a key frame of the slice file; performing at least one round of slicing operation on the slice file according to the first slicing parameter to obtain a plurality of sub-slices; if the plurality of sub-slices include a plurality of independent sub-slices with a key frame as the first frame, adding an independent identifier to a non-first independent sub-slice in the plurality of independent sub-slices; and using the independent identifier to enable a playback end to independently decode the non-first independent sub-slice.

[0006] Optionally, it also includes: within a historical time period, dividing at least one historical slice file of the received live stream according to a second slice parameter; in the process of dividing the at least one historical slice file, detecting the length of the decoding unit contained in each of the at least one historical slice file; if the lengths of multiple consecutive decoding units are the same, taking the lengths of the multiple consecutive decoding units as the first decoding unit length; and determining the first slice parameter based on the first decoding unit length and preset constraints.

[0007] Optionally, in the process of segmenting the at least one historical slice file, the length of the decoding unit contained in each of the at least one historical slice file is detected, including: for any historical slice file among the at least one historical slice file, recording the position of the key frame of the historical slice file; and determining the length of the decoding unit contained in the historical slice file based on the recorded position of the key frame.

[0008] Optionally, determining the first slice parameter according to the length of the first decoding unit and preset constraints, including: determining an objective function according to a linear relationship between the length of the first decoding unit and the number of frames of independent sub-slices, the number of slices of non-independent sub-slices, and the number of frames of non-independent sub-slices in the decoding unit; performing linear programming solution on the objective function under the preset constraints to obtain the number of frames of independent sub-slices, the number of slices of non-independent sub-slices, and the number of frames of non-independent sub-slices.

[0009] Optionally, the objective function is linearly programmed under the preset constraints to obtain the number of frames of the independent sub-slice, the number of slices of the non-independent sub-slice, and the number of frames of the non-independent sub-slice, including: determining the frame number range of the independent sub-slice according to the first decoding unit length; traversing the values ​​within the frame number range to obtain multiple frame numbers of the independent sub-slice; solving the objective function according to the multiple frame numbers of the independent sub-slice respectively to obtain multiple slice numbers of the non-independent sub-slice and multiple frame numbers of the non-independent sub-slice; determining a set of slice parameters that meet the constraints from the multiple frame numbers of the independent sub-slice, the multiple slice numbers of the non-independent sub-slice, and the multiple frame numbers of the non-independent sub-slice to obtain the number of frames of the independent sub-slice, the number of slices of the non-independent sub-slice, and the number of frames of the non-independent sub-slice.

[0010] Optionally, the constraint conditions include: the duration of any sub-slice is within a set duration range; and / or the duration of the independent sub-slice is the same as the duration of the non-independent sub-slice.

[0011] Optionally, according to the first slicing parameter, at least one round of slicing operation is performed on the slicing file with the predicted key frame position as the slicing point to obtain multiple sub-slices, including: after any round of slicing operation is completed, it is determined whether there is any remaining unsliced ​​data in the slicing file; if so, the first frame data in the remaining unsliced ​​data is used as the slicing starting position; if the slicing starting position is a key frame, the first slicing parameter is used to perform the next round of slicing operation on the remaining unsliced ​​data starting from the slicing starting position to obtain a non-first independent sub-slice and at least one non-independent sub-slice.

[0012] Optionally, it also includes: if the segmentation starting position is a non-key frame, segmenting the remaining unsegmented data rows starting from the segmentation starting position according to the frame number of the non-independent sub-slice in the first slicing parameter to obtain at least one non-independent sub-slice.

[0013] Optionally, it also includes: if the starting position of the segmentation is a non-key frame, detecting the decoding unit length of the slice file; if there is a second decoding unit length different from the first decoding unit length in the decoding unit length of the slice file, in the process of segmenting at least one subsequent slice file received after the slice file, obtaining the length of the decoding unit contained in each of the at least one subsequent slice file; if the length of the decoding unit contained in each of the at least one subsequent slice file is the same as the second decoding unit length, determining a third slice parameter according to the second decoding unit length; and using the third slice parameter to update the first slice parameter.

[0014] An embodiment of the present application also provides a server, comprising: a memory and a processor; the memory is used to store one or more computer instructions; the processor is used to execute the one or more computer instructions to: execute the steps in the method provided in the embodiment of the present application.

[0015] The embodiment of the present application also provides a computer-readable storage medium storing a computer program, which can implement the steps in the method provided in the embodiment of the present application when the computer program is executed by a processor.

[0016] In an embodiment of the present application, the slice parameters of the slice file are determined according to the decoding unit length of the live stream. The decoding unit length is obtained by detecting the decoding unit of the historical slice file, and the position of the key frame of the slice file can be predicted when the encoding information of the live source stream is unknown. Based on the predicted position of the key frame, the slice parameters that can adapt to the stream characteristics of the live stream can be determined. According to the slice parameters, the slice file is segmented with the predicted position of the key frame as the segmentation point, and as many independent sub-slices as possible with the key frame as the first frame can be automatically segmented from a single slice file. The decoding operation of the independent sub-slice does not depend on other previous video frames, so the random entry point of the decoding operation can be increased. In the live broadcast scenario, the playback end can directly jump to the independent sub-slice for decoding without relying on the decoding results of the sub-slice that has not been decoded before the independent sub-slice, thereby shortening the delay of the live picture and improving the real-time performance of the live broadcast. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0018] Figure 1 A flowchart of a data slicing method provided for an exemplary embodiment of the present application;

[0019] Figure 2 A flowchart of a data slicing method provided for another exemplary embodiment of the present application;

[0020] Figure 3 A schematic diagram of a slicing result provided for an exemplary embodiment of the present application;

[0021] Figure 4 A schematic diagram of the structure of a server provided for an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0022] In order to make the purpose, technical solution and advantages of the present application clearer, the technical solution of the present application will be clearly and completely described below in combination with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.

[0023] The terms used in the embodiments of the present invention are only for the purpose of describing specific embodiments, and are not intended to limit the present invention. The singular forms "a", "said" and "the" used in the embodiments of the present invention and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings, and "multiple" generally includes at least two, but does not exclude the inclusion of at least one.

[0024] It should be understood that the term "and / or" used in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship.

[0025] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a product or system including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such a product or system. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the product or system including the elements.

[0026] In some slice services, the size of GOP cannot be directly determined, and the size of GOP may change dynamically, so it is impossible to accurately divide the HLS slices into sub-slices that can be independently decoded, which is not conducive to reducing the live broadcast delay. In response to the above technical problems, some embodiments of the present application provide a solution. The following is a detailed description of the technical solutions provided by each embodiment of the present application in conjunction with the accompanying drawings.

[0027] Figure 1 is a flow chart of a data slicing method provided by an exemplary embodiment of the present application, and the method may include: Figure 1 Steps shown:

[0028] Step 101, obtain a slice file and a first slice parameter of a live stream; the first slice parameter is determined according to a first decoding unit length detected in a historical slice file; the first decoding unit length is used to predict the position of a key frame of the slice file.

[0029] Step 102: According to the first slicing parameters, the slice file is sliced ​​at least once with the predicted key frame positions as the slicing points to obtain a plurality of sub-slices.

[0030] Step 103: If the multiple sub-slices include multiple independent sub-slices with a key frame as the first frame, an independent identifier is added to the non-first independent sub-slice in the multiple independent sub-slices; the independent identifier is used to enable the playback end to independently decode the non-first independent sub-slice.

[0031] This embodiment can be applied to the slicing scenario of streaming data, such as the slicing scenario of streaming data generated by live broadcast. Among them, the streaming data generated by live broadcast may include: audio streaming data and / or video streaming data. The streaming data generated by the live stream is sent in the form of data packets. In order to reduce the delay caused by the transmission of data packets, after the slicing service receives the data packet, it can split the data packet according to the streaming media transmission protocol to obtain a media file with a smaller data volume. For example, in the HLS (HTTP ((Hyper Text Transfer Protocol, Hypertext Transfer Protocol) Live Streaming, a streaming media transmission protocol based on HTTP) distribution scenario of the live broadcast system, the server device responsible for HLS protocol conversion can pull the live source stream and split the data packet of the live source stream into media files, and a single media file contains several seconds to tens of seconds of data. Thereby, it is beneficial to send the streaming data to the playback end in the form of smaller media files, reducing the transmission pressure.

[0032] In this embodiment, the media files obtained by dividing the data packets of the live source stream are described as slice files. According to the requirements of the streaming media transmission protocol, a single slice file may include one or more decoding units. Among them, the decoding unit refers to the smallest decoding unit video data packet group (GOP). A single decoding unit takes the key frame as the first frame, so it can be decoded independently without referring to the data in other GOPs. After receiving the slice file, the playback end can independently decode any slice file without relying on the decoding results of other slice files, which is beneficial to reduce the live broadcast delay. In this embodiment, after the streaming data is divided into slice files, the slice files of the streaming data are further divided to add new independent decoding entry points inside the slice files, thereby further reducing the live broadcast delay.

[0033] The execution subject of this embodiment may be a slice service, which may be an application or plug-in running on a server. The slice service is used to slice the streaming data to obtain a slice file, and to slice the slice file again to obtain a sub-slice of the slice file. Based on this implementation, a single slice file can be divided into smaller sub-slices, and after any sub-slice is generated, it can be distributed to the playback end for playback. Compared with slice files, sub-slices have a smaller data volume, higher transmission efficiency, and are conducive to improving the decoding efficiency of the playback end. Sub-slices include: independent sub-slices with a key frame as the first frame, and non-independent sub-slices with a non-key frame as the first frame. For any slice file, its first frame is a key frame, so its first sub-slice is an independent sub-slice. The first frame of an independent sub-slice is a key frame, so the independent sub-slice can be decoded independently and does not depend on the decoding results of other sub-slices. The decoding operation of a non-independent sub-slice depends on the decoding results of the independent sub-slice.

[0034] When a single slice file contains a decoding unit, the single slice file is segmented to obtain an independent sub-slice and at least one dependent sub-slice. In this embodiment, when a single slice file containing a decoding unit is segmented, no new entry point for independent decoding can be added.

[0035] When a single slice file contains multiple decoding units, the single slice file contains multiple key frames. Therefore, the slice parameters can be planned to cut as many independent sub-slices as possible from the single slice file to increase the independent decoding entry points in the single slice.

[0036] For any decoding unit, its starting frame (first frame) is a key frame, the next frame of its last frame is the starting frame of the next decoding unit, and the starting frame of the next decoding unit is also a key frame. Therefore, the position of the key frame in the slice file can be predicted based on the length of the decoding unit in the slice file. Among them, the length of the decoding unit of any live stream is determined by the encoding method of the live stream. In the case of unknown encoding information of the live stream, it is impossible to directly obtain the length of the decoding unit of the live stream based on the encoding information. In this embodiment, the decoding unit length of the live stream can be obtained by detecting the historical slice file, and the position of the key frame in the slice file can be predicted based on the detected decoding unit length. Among them, the historical slice file can be a preceding slice file of the currently acquired slice file, and the preceding slice file can be adjacent to or not adjacent to the currently acquired slice file, which is not limited in this embodiment.

[0037] In some optional embodiments, within the historical period, the slicing service may slice at least one historical slice file of the received streaming data packet according to the second slicing parameter. The second slicing parameter may include: a parameter for slicing a sub-slice of a fixed length, or may include: a slice parameter calculated according to the decoding unit length of the previous period of the historical period and the preset constraint condition, which is not limited in this embodiment. In the process of slicing the at least one historical slice file, the length of the decoding unit contained in each of the at least one historical slice file may be obtained. Optionally, for any slice file in the at least one historical slice file, the slicing service may record the position of the key frame of the slice file; and determine the length of the decoding unit contained in the historical slice file according to the recorded key frame. If the lengths of multiple consecutive decoding units are the same, the lengths of the multiple consecutive decoding units are used as the first decoding unit length. The consecutive multiple may be three or more consecutive. "First" and "second" are used here to limit the objects being described, which are only used to facilitate description and distinguish them from similar objects introduced later.

[0038] When predicting the position of the key frame of the slice file based on the length of the first decoding unit, you can start from the starting frame of the slice file (including the starting frame) and offset the number of frames corresponding to the first decoding length to the right to obtain the offset end frame. If the length of the first decoding unit of the slice file is the first decoding unit length, then the offset end frame is the last frame of the first decoding unit of the slice file. Therefore, it can be predicted that the next frame of the offset end frame is the starting frame of the next decoding unit, that is, the key frame. By dividing the key frame as the dividing point, the key frames of different decoding units can be divided into the first frames of sub-slices, thereby dividing more independent sub-slices.

[0039] The first slicing parameter is determined according to the length of the first decoding unit, and is used to describe the number of sub-slices required for complete slicing of the slicing object with a length of the first decoding unit and the length of each sub-slice. The length of the sub-slice is described in the number of frames. Complete slicing means that the starting position of slicing is the first frame data of the slicing object, and the ending position of slicing is the last frame data of the slicing object. After a round of slicing operation is performed according to the first slicing parameter, the next frame of the slicing ending position is the position of the key frame predicted according to the length of the first decoding unit. In this embodiment, if it is assumed that the length of the decoding unit of the slicing file is the first decoding unit length, the first slicing parameter is used to completely slicing the decoding unit of the slicing file. The complete slicing allows the key frame of the non-first decoding unit in the slicing file to be separated from the previous decoding unit, so as to expose the first frame of the non-first decoding unit as the slicing starting position of the next round of slicing operation. Thus, an independent sub-slice with a key frame as the first frame can be sliced ​​out in the non-first decoding unit.

[0040] In this embodiment, at least one round of slicing operation can be performed on the slice file based on the first slicing parameter, with the predicted position of the key frame as the slicing point. Wherein, taking the key frame as the slicing point means that in any slicing round, the position of the predicted key frame is used as the starting slicing position of the current slicing round, and the position of the previous frame data of the predicted key frame is used as the slicing end position of the previous slicing round. Wherein, a round of slicing operation can completely perform a slicing action corresponding to the first slicing parameter between the slicing start position and the slicing end position. For example, if the first slicing parameter specifies slicing 4 sub-slices with a specified length, a round of slicing operation can start from the slicing start position, perform 4 slicing actions according to the specified length, and the last slicing action falls at the slicing end position, thereby obtaining 4 sub-slices. If two rounds of slicing are performed, 8 sub-slices with a specified length are sliced ​​from the slice file. In the process of performing a segmentation operation on the slice file with the predicted position of the key frame as the segmentation point, the predicted position of the key frame can be verified to determine whether the prediction is accurate. Optionally, after any round of segmentation operation is completed, if there is remaining unsegmented data in the slice file, it is determined whether the first frame data of the remaining unsegmented data is a key frame. If the first frame data of the remaining unsegmented data is a key frame, it is considered that the position of the key frame predicted based on the length of the first decoding unit is accurate, and then the first slicing parameter can be used to perform the next round of segmentation operation on the remaining unsegmented data. In the case where the decoding unit has a stable length, when the slice file contains multiple decoding units, the position of the key frame of each decoding unit can be accurately predicted. Furthermore, the slice file is segmented using the first slicing parameter to obtain multiple independent sub-slices, and the multiple independent sub-slices respectively use the key frames of the multiple decoding units as the first frames.

[0041] Based on the above, it can be known that in some embodiments, when a slice file contains multiple decoding units, and the length of the first decoding unit is the same as the length of the first decoding unit, after a round of segmentation of the slice file according to the first slicing parameter, the next frame data of the last sub-slice segmented can be a key frame. That is, the first round of segmentation of the slice file according to the first slicing parameter just completes the complete segmentation of the first decoding unit contained in the slice file, and the first frame of the next decoding unit can be exposed. If the remaining unsliced ​​data of the slice file is segmented for the next round according to the slicing parameter, an independent sub-slice can be segmented from the remaining unsliced ​​data of the slice file. That is, the remaining unsliced ​​data of the slice file is segmented again according to the slicing parameter, and the segmentation of the second decoding unit contained in the slice file can be completed, and an independent sub-slice with the key frame of the second decoded unit as the first frame can be obtained. If the slice file contains three or more decoding units, it is analogous to the above method and will not be repeated.

[0042] Among the multiple independent sub-slices, the first frame of the first independent sub-slice is the first frame of the slice file and carries an independent identifier. To facilitate the playback end to identify non-first independent sub-slices, the slice service can add an independent identifier to the non-first independent sub-slice. The independent identifier is used to enable the playback end to independently decode the non-first independent sub-slice.

[0043] In this embodiment, the slice parameters of the slice file are determined according to the decoding unit length of the live stream. The decoding unit length is obtained by detecting the decoding unit of the historical slice file. The position of the key frame of the slice file can be predicted when the encoding information of the live source stream is unknown. Based on the predicted position of the key frame, the slice parameters that can adapt to the stream characteristics of the live stream can be determined. According to the slice parameters, the slice file is segmented with the predicted position of the key frame as the segmentation point, and as many independent sub-slices as possible with the key frame as the first frame can be automatically segmented from a single slice file. The decoding operation of the independent sub-slice does not depend on other previous video frames, so the random entry point of the decoding operation can be increased. In the live broadcast scene, the playback end can directly jump to the independent sub-slice for decoding without relying on the decoding results of the sub-slice that has not been decoded before the independent sub-slice, thereby shortening the delay of the live picture and improving the real-time performance of the live broadcast.

[0044] In some exemplary embodiments, the slice parameters may include: the number of frames of independent sub-slices, the number of slices of non-independent sub-slices, and the number of frames of non-independent sub-slices. When the sliced ​​object is a decoding unit, the above-mentioned various parameters have a linear relationship with the length of the decoding unit. Based on this, the slice service can determine the slice parameters by linear programming according to the length of the decoding unit and the preset constraints. Among them, the preset constraints may include at least one of the duration conditions of the sub-slices, the number of frames of the sub-slices, the number of sub-slices, and the length relationship conditions of the independent sub-slices and the non-independent sub-slices, which are not limited in this embodiment.

[0045] Optionally, the objective function can be determined based on the linear relationship between the decoding unit length and the number of frames of the independent sub-slice, the number of slices of the non-independent sub-slice, and the number of frames of the non-independent sub-slice. In some low-latency streaming media transmission protocols, it is agreed that the number of frames of non-independent sub-slices is the same, and the number of frames of independent sub-slices and subsequent non-independent sub-slices may be different. Therefore, taking the length of the decoding unit as the first decoding unit length as an example, the objective function can be expressed as: the number of frames of independent sub-slices + the number of slices of non-independent sub-slices * the number of frames of non-independent sub-slices = the first decoding unit length.

[0046] After determining the objective function, a linear programming solution can be performed on the objective function under the preset constraint conditions to obtain the number of frames of the independent sub-slice, the number of slices of the non-independent sub-slice, and the number of frames of the non-independent sub-slice as the first slicing parameter. When the length of the segmented object is the same as the length of the first decoding unit, the independent sub-slices obtained by segmenting the segmented object using the first slicing parameter are independent sub-slices.

[0047] Optionally, the linear programming solution of the objective function can be implemented by a loop traversal method. In this method, the frame number range of the independent sub-slice can be determined according to the length of the first decoding unit; the values ​​in the frame number range are traversed to obtain multiple frame numbers of the independent sub-slice; the objective function is solved according to the multiple frame numbers of the independent sub-slice to obtain multiple slice numbers of the non-independent sub-slice and multiple frame numbers of the non-independent sub-slice; from the multiple frame numbers of the independent sub-slice, the multiple slice numbers of the non-independent sub-slice and the multiple frame numbers of the non-independent sub-slice, a set of slice parameters that meet the constraint condition is determined to obtain the frame number of the independent sub-slice, the slice number of the non-independent sub-slice and the frame number of the non-independent sub-slice. The following formula is used to assist in explaining the above loop traversal process.

[0048] Assume that the length of the first decoding unit is n, the number of frames marking the first slice is i, the number of frames of the non-independent sub-slice is j, the number of slices of the non-independent sub-slice is k, and assume that the size of the remaining non-independent sub-slices remains unchanged except for the independent sub-slices. That is, the number of frames of the non-independent sub-slice is j = (ni) / k, and the objective function can be expressed as: j*k+i = n. Among them, the range of the number of frames of the independent sub-slice can be determined according to the length of the first decoding unit n: i∈[1,n-1]. In the process of traversal, i=1,2,…,n-1 can be taken respectively, and when the value of i is determined, multiple groups of k,j are calculated according to the objective function, and the determined i can be combined with the calculated multiple groups of k,j to form multiple groups of potential solutions (i,j,k). Among them, in the process of traversing the values ​​of i, multiple groups of potential solutions corresponding to multiple values ​​of i can be obtained. From the multiple groups of potential solutions corresponding to multiple values ​​of i, a group of potential solutions that meet the constraints can be screened out as a group of slice parameters.

[0049] In some exemplary embodiments, the constraint condition may be determined according to the low-delay streaming media transmission protocol adopted by the live stream. For example, in some low-delay streaming media transmission protocols, it is agreed that the duration of a single sub-slice is not less than the specified duration. Based on this, the constraint condition may be set as follows: the duration of any sub-slice is within the set duration range. Among them, the set duration range includes an upper limit value of the duration and a lower limit value of the duration, which is used to constrain the duration of the sub-slice to reduce decoding errors or playback errors caused by factor slices that are too small or too large. For example, in some embodiments, the upper limit value of the duration may be set to 500ms and the lower limit value of the duration may be set to 200ms. The above values ​​are for example only and do not limit the scheme provided in the embodiments of the present application. It should be understood that in different scenarios, the upper limit value of the duration and the lower limit value of the duration may be flexibly set according to the decoding protocol of the playback end. Based on this, after obtaining multiple groups of potential solutions corresponding to multiple values ​​of i based on the aforementioned embodiment, it is possible to determine whether the duration of i and j in each group of potential solutions is within the set duration range, thereby screening out a group of potential solutions that meet the duration requirements.

[0050] In other exemplary embodiments, the constraint condition may include: the duration of the independent sub-slice is the same as that of the non-independent sub-slice. Based on this implementation, the slice file can be divided into sub-slices with relatively stable lengths to cope with the situation where the length of the decoding unit of the live stream changes suddenly. After obtaining multiple groups of potential solutions corresponding to multiple values ​​of i based on the above embodiments, it can be determined whether the durations of i and j in each group of potential solutions are the same, thereby selecting a group of potential solutions that meet the duration requirements.

[0051] In some other exemplary embodiments, the constraint condition may include: the duration of any sub-slice is within a set duration range, and the duration of an independent sub-slice is the same as that of a non-independent sub-slice. In this embodiment, after obtaining multiple sets of potential solutions corresponding to multiple values ​​of i based on the aforementioned embodiment, a set of solutions in which the durations of i and j are within the set duration range and the durations of i and j are the same can be screened out as a set of slice parameters. The duration of any sub-slice is determined based on the number of frames and the frame rate of the sub-slice; the frame rate can be obtained in the process of slicing the file in a historical period, or it can be obtained from a data source, and this embodiment does not impose any restrictions.

[0052] In some exemplary embodiments, when the slicing service performs at least one round of slicing operations on the slicing file according to the first slicing parameter, it can detect the stability of the decoding unit length during the slicing process and execute different slicing strategies according to the stability of the decoding unit length.

[0053] Optionally, after any round of segmentation operation is completed, it can be determined whether there is any remaining unsegmented data in the slice file. If there is any remaining unsegmented data, the first frame data in the remaining unsegmented data is used as the segmentation starting position. The segmentation starting position is the position of the key frame predicted based on the length of the first decoding unit. If the segmentation starting position is a key frame, it can be considered that the prediction result is accurate, and then the first slicing parameter can be used to perform the next round of segmentation operation on the remaining unsegmented data starting from the segmentation starting position to obtain a non-first independent sub-slice and at least one non-independent sub-slice.

[0054] Optionally, if the segmentation start position is a non-key frame, it can be considered that the position of the key frame predicted according to the length of the first decoding unit is inaccurate. In order to meet the length consistency requirement of the streaming media transmission protocol for non-independent sub-slices, the remaining unsegmented data rows can be segmented from the segmentation start position according to the number of frames of the non-independent sub-slices in the first slicing parameter to obtain at least one non-independent sub-slice.

[0055] The following will be combined Figure 2 The multiple rounds of segmentation operations are further illustrated. Optionally, the first frame data of the slice file can be used as the segmentation start position, and the first slice parameter can be used to segment the slice file starting from the segmentation start position. Figure 2 As shown, after the first round of segmentation operation, the following segmentation steps can be repeated until there is no remaining unsegmented data in the slice file:

[0056] Optionally, after any round of slicing operation is completed, the slicing service can determine whether there is any remaining unsliced ​​data in the slicing file; if there is any remaining unsliced ​​data, the first frame data in the remaining unsliced ​​data can be used as the starting position for slicing. The slicing service can determine whether the first frame data is a key frame. If so, it can be considered that the decoding unit length has not changed, and the position of the key frame is accurately predicted using the first decoding unit length. In this case, the first decoding unit length can continue to be used to assume the length of the decoding unit of the slicing file, and the first slicing parameter can be used to slice the remaining unsliced ​​data rows starting from the slicing starting position to obtain at least one sub-slice. Optionally, in this case, when the first frame data of the remaining unsliced ​​data is a key frame, the first sub-slice in the at least one sub-slice is an independent sub-slice, and the slicing service can add an independent identifier to the independent sub-slice in the at least one sub-slice for easy identification by the playback end.

[0057] Optionally, if the first frame of the remaining unsegmented data is a non-key frame, it means that the length of the decoding unit has changed, and the position of the key frame cannot be accurately predicted using the first decoding unit length. In this case, in order to meet the length consistency requirements of the streaming media transmission protocol for non-independent sub-slices, such as Figure 2As shown, a slicing operation can be performed starting from the first frame of the remaining unsliced ​​data according to the number of frames of the non-independent sub-slice in the first slicing parameter, so as to slice the non-independent sub-slices from the remaining unsliced ​​data, and make the length of the non-independent sub-slice consistent with the non-independent sub-slice sliced ​​by the previous slicing operation.

[0058] Alternatively, if Figure 2 As shown, if the first frame of the remaining unsegmented data is a non-key frame, the slicing service can start detecting the length of the decoding unit of the slicing file, so as to adaptively start the detection operation of the decoding unit length when the decoding unit length changes, thereby flexibly responding to changes in the encoding information of the live stream.

[0059] Optionally, if the length of the decoding unit of the detected slice file contains a second decoding unit length different from the first decoding unit length, an operation of continuing to detect the decoding unit length may be performed. In the process of segmenting at least one subsequent slice file received after the slice file, the slice service may obtain the length of the decoding unit contained in each of the at least one subsequent slice file. If the length of the decoding unit contained in each of the at least one subsequent slice file is the same as the second decoding unit length, it can be assumed that the length of the decoding unit enters a stable period again, and the second decoding unit length can be used to predict the position of the key frame of the slice file received later. Further, according to the second decoding unit length and the preset constraints, the third slice parameter is determined, and the first slice parameter is updated using the third slice parameter. That is, in the subsequent slicing process, the slice file of the streaming data is segmented using the updated first slice parameter. Among them, the implementation method of determining the third slice parameter according to the second decoding unit length and the preset constraints can refer to the above description, which will not be repeated here.

[0060] In this embodiment, the stability of the decoding unit length can be detected during the slicing process. If the decoding unit length is stable, the slicing parameters calculated based on the decoding unit length will continue to be used for slicing, thereby continuously reducing the delay. When the decoding unit length is unstable, the decoding unit length can be re-detected and the slicing parameters can be planned in the next slicing process, which is conducive to dynamically slicing the slice file according to the changed decoding unit length when the decoding unit length changes, thereby adaptively adding random entry points to the streaming data to be decoded, thereby reducing the live broadcast delay. In addition, when the decoding unit length is unstable, the slice file can continue to be sliced ​​using the planned slicing parameters or fixed slicing parameters, so as to automatically retreat to a higher delay method that meets the standards, reducing the risk of playback problems.

[0061] The following will be combined Figure 3 , the data slicing method provided in the embodiment of the present application is further exemplified.

[0062] For example, Figure 3 For example, within a period of time after the live broadcast begins, the slice file L0 can be divided according to a fixed duration, and the obtained sub-slices include: sub-slice C01, sub-slice C02, and sub-slice C03. The slice file L1 is divided according to a fixed duration, and the obtained sub-slices include: sub-slice C11, sub-slice C12, and sub-slice C13. The slice file L2 is divided according to a fixed duration, and the obtained sub-slices include: sub-slice C21, sub-slice C22, and sub-slice C23. In the process of segmenting L0, L1, and L2, the decoding unit length and frame rate can be detected. Among them, the period of time after the live broadcast begins can be tens of seconds or minutes after the live broadcast begins. In a short period of time after the live broadcast begins, the live broadcast room is in the adjustment stage and the number of viewers is limited, so the use of a fixed slice duration to segment a single slice file can have a small impact. According to the decoding unit length and constraints, the slice parameter can be determined. The segmentation length of the slice parameter is the decoding unit length, so it can just separate two adjacent decoding units.

[0063] The slice file L3 is segmented once according to the slice parameter, and the obtained sub-slices include: sub-slice C31 and sub-slice C32. Among them, sub-slice C31 is an independent sub-slice with a key frame as the first frame and carries an independent sub-slice identifier, and sub-slice C32 is a non-independent sub-slice. The total number of frames of sub-slices C31 and sub-slices C32 is the same as the decoding unit length.

[0064] If the next frame of sub-slice C32 is a key frame, it means that the length of the decoding unit in the slice file L3 has not changed. The remaining part of the slice file L3 is divided again to obtain sub-slice C33. Sub-slice C33 is not the first independent sub-slice in the slice file L3, and an independent identifier can be added to sub-slice C33. After receiving the slice file L2 and the sub-slice file of the slice file L3, the playback end may not perform the decoding and playback operations of sub-slices C21, sub-slice C22, sub-slice C23, sub-slice C31 and sub-slice C32, and may directly jump to sub-slice C33 for decoding and playback, so that the playback progress is closer to the push progress of the live stream. Furthermore, the characteristic that the independent sub-slice does not depend on the decoding result of the previous data is fully utilized, and the random entry point of the decoding operation is increased by dividing as many independent sub-slices as possible, so as to realize the decoding jump, thereby reducing the live broadcast delay. In addition, after completing the segmentation of L3, the slice file L4 can continue to be segmented using the planned slice parameters.

[0065] On the contrary, if the next frame data of sub-slice C32 is a non-key frame, it can be considered that the decoding unit length of slice file L3 has changed, and the planned slice parameters can be continued to be used to segment the remaining part of slice file L3, and the decoding unit length is continuously detected during the slicing process until the decoding unit is detected to be relatively stable, and the slice parameters are re-planned according to the detected decoding unit length. No more details are given.

[0066] It should be noted that the execution subject of each step of the method provided in the above embodiment can be the same device, or the method can be executed by different devices. For example, the execution subject of steps 101 to 103 can be device A; for another example, the execution subject of steps 101 and 102 can be device A, and the execution subject of step 103 can be device B; and so on.

[0067] In addition, in some of the processes described in the above embodiments and the accompanying drawings, multiple operations that appear in a specific order are included, but it should be clearly understood that these operations may not be executed in the order in which they appear in this article or executed in parallel, and the sequence numbers of the operations, such as 101, 102, etc., are only used to distinguish between different operations, and the sequence numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the descriptions of "first", "second", etc. in this article are used to distinguish different messages, devices, modules, etc., do not represent the order of precedence, and do not limit the "first" and "second" to be different types.

[0068] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0069] Figure 4 A schematic diagram of the structure of a server provided by an exemplary embodiment of the present application is shown. Figure 4 As shown, the server includes: a memory 401 , a processor 402 and a communication component 403 .

[0070] The memory 401 is used to store computer programs and can be configured to store various other data to support operations on the server, such as instructions for any application program or method used to operate on the server.

[0071] The processor 402 is coupled to the memory 401 and is used to execute the computer program in the memory 401, so as to: obtain a slice file and a first slice parameter of a live stream; the first slice parameter is determined according to a first decoding unit length detected in a historical slice file; the first decoding unit length is used to predict the position of a key frame of the slice file; according to the first slice parameter, the slice file is sliced ​​at least once with the predicted position of the key frame as a segmentation point to obtain a plurality of sub-slices; if the plurality of sub-slices include a plurality of independent sub-slices with a key frame as the first frame, an independent identifier is added to a non-first independent sub-slice in the plurality of independent sub-slices; the independent identifier is used to enable the playback end to independently decode the non-first independent sub-slice.

[0072] Optionally, the processor 402 is also used to: within the historical time period, segment at least one historical slice file of the received live stream according to the second slice parameter; in the process of segmenting the at least one historical slice file, detect the length of the decoding unit contained in each of the at least one historical slice file; if the lengths of multiple consecutive decoding units are the same, use the lengths of the multiple consecutive decoding units as the first decoding unit length; and determine the first slice parameter based on the first decoding unit length and preset constraints.

[0073] Optionally, when the processor 402 detects the length of the decoding unit contained in each of the at least one historical slice file during the process of segmenting the at least one historical slice file, it is specifically used to: record the position of the key frame of any historical slice file in the at least one historical slice file; and determine the length of the decoding unit contained in the historical slice file based on the recorded position of the key frame.

[0074] Optionally, when the processor 402 determines the first slice parameter according to the first decoding unit length and preset constraints, it is specifically used to: determine the objective function according to the linear relationship between the first decoding unit length and the number of frames of independent sub-slices, the number of slices of non-independent sub-slices, and the number of frames of non-independent sub-slices in the decoding unit; and perform linear programming solution on the objective function under the preset constraints to obtain the number of frames of independent sub-slices, the number of slices of non-independent sub-slices, and the number of frames of non-independent sub-slices.

[0075] Optionally, when the processor 402 performs linear programming to solve the objective function under the preset constraints to obtain the number of frames of the independent sub-slice, the number of slices of the non-independent sub-slice, and the number of frames of the non-independent sub-slice, it is specifically used to: determine the frame number range of the independent sub-slice according to the first decoding unit length; traverse the values ​​within the frame number range to obtain multiple frame numbers of the independent sub-slice; solve the objective function according to the multiple frame numbers of the independent sub-slices respectively to obtain multiple slice numbers of the non-independent sub-slices and multiple frame numbers of the non-independent sub-slices; determine a set of slice parameters that meet the constraints from the multiple frame numbers of the independent sub-slices, the multiple slice numbers of the non-independent sub-slices, and the multiple frame numbers of the non-independent sub-slices to obtain the number of frames of the independent sub-slice, the number of slices of the non-independent sub-slice, and the number of frames of the non-independent sub-slice.

[0076] Optionally, the constraint conditions include: the duration of any sub-slice is within a set duration range; and / or the duration of the independent sub-slice is the same as the duration of the non-independent sub-slice.

[0077] Optionally, when the processor 402 performs at least one round of slicing operation on the slice file according to the first slicing parameter and takes the predicted key frame position as the slicing point to obtain multiple sub-slices, it is specifically used to: after any round of slicing operation is completed, determine whether there is any remaining unsliced ​​data in the slice file; if so, use the first frame data in the remaining unsliced ​​data as the slicing starting position; if the slicing starting position is a key frame, use the first slicing parameter to perform the next round of slicing operation on the remaining unsliced ​​data starting from the slicing starting position to obtain a non-first independent sub-slice and at least one non-independent sub-slice.

[0078] Optionally, the processor 402 is further used to: if the segmentation starting position is a non-key frame, segment the remaining unsegmented data rows starting from the segmentation starting position according to the number of frames of the non-independent sub-slice in the first slicing parameter to obtain at least one non-independent sub-slice.

[0079] Optionally, the processor 402 is also used to: if the starting position of the segmentation is a non-key frame, detect the decoding unit length of the slice file; if there is a second decoding unit length different from the first decoding unit length in the decoding unit length of the slice file, then in the process of segmenting at least one subsequent slice file received after the slice file, obtain the length of the decoding unit contained in each of the at least one subsequent slice file; if the length of the decoding unit contained in each of the at least one subsequent slice file is the same as the second decoding unit length, determine a third slice parameter according to the second decoding unit length; and use the third slice parameter to update the first slice parameter.

[0080] Further, if Figure 4 As shown, the server also includes: a power supply component 404 and other components. Figure 4 Only some components are shown schematically, which does not mean that the server only includes Figure 4 Components shown.

[0081] Among them, the memory 401 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk.

[0082] The communication component 403 is configured to facilitate wired or wireless communication between the device where the communication component is located and other devices. The device where the communication component is located can access a wireless network based on a communication standard, such as Wi-Fi (wireless network communication technology), 2G (such as Global System for Mobile Communications (GSM)), 3G (such as Wideband Code Division Multiple Access (WCDMA), 4G (such as Long Term Evolution (LTE)), 4G+ (such as upgraded Long Term Evolution (LTE-Advanced, LTE-A)) or 5G (5th Generation Mobile Communication Technology), or a combination thereof. In an exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component can be implemented based on Near Field Communication (NFC) technology, Radio Frequency Identification (RFID) technology, Infrared Data Association (IrDA) technology, Ultra Wide Band (UWB) technology, Bluetooth (BT) technology and other technologies.

[0083] The power supply component 404 is used to provide power to various components of the device where the power supply component is located. The power supply component may include a power management system, one or more power supplies, and other components associated with generating, managing and distributing power to the device where the power supply component is located.

[0084] In this embodiment, the slice parameters of the slice file are determined according to the decoding unit length of the live stream. The decoding unit length is obtained by detecting the decoding unit of the historical slice file. The position of the key frame of the slice file can be predicted when the encoding information of the live source stream is unknown. Based on the predicted position of the key frame, the slice parameters that can adapt to the stream characteristics of the live stream can be determined. According to the slice parameters, the slice file is segmented with the predicted position of the key frame as the segmentation point, and as many independent sub-slices as possible with the key frame as the first frame can be automatically segmented from a single slice file. The decoding operation of the independent sub-slice does not depend on other previous video frames, so the random entry point of the decoding operation can be increased. In the live broadcast scene, the playback end can directly jump to the independent sub-slice for decoding without relying on the decoding results of the sub-slice that has not been decoded before the independent sub-slice, thereby shortening the delay of the live picture and improving the real-time performance of the live broadcast.

[0085] Accordingly, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, which, when executed, can implement the steps that can be executed by the server in the above method embodiment.

[0086] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM (Compact Disc Read-Only Memory, read-only optical disc read-only memory), optical storage, etc.) containing computer-usable program codes.

[0087] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0088] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0089] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0090] In a typical configuration, a computing device includes one or more processors (Central Processing Unit, CPU), input / output interface, network interface and memory.

[0091] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0092] Computer-readable media include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, Parallel Random Access Machine (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, Digital Video Disc (DVD) or other optical storage, magnetic cassettes, disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include temporary computer-readable media (transitory media), such as modulated data signals and carrier waves.

[0093] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.

[0094] The above is only an embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.

Claims

1. A data slicing method, It is characterized in that include: Get the slice file and first slice parameters of the live stream; The first slice parameter is determined according to a first decoding unit length detected in the historical slice file; The first decoding unit length is used to predict the position of the key frame of the slice file; According to the first slicing parameter, the slice file is sliced ​​at least once with the predicted key frame position as a slice point to obtain a plurality of sub-slices; If the multiple sub-slices include multiple independent sub-slices with a key frame as the first frame, an independent identifier is added to the non-first independent sub-slice in the multiple independent sub-slices.

2. The method according to claim 1, It is characterized in that Also includes: During the historical period, segmenting at least one historical segment file of the received live stream according to the second segment parameter; In the process of segmenting the at least one historical slice file, detecting the length of the decoding unit respectively included in the at least one historical slice file; If the lengths of the consecutive decoding units are the same, the lengths of the consecutive decoding units are used as the first decoding unit length; The first slice parameter is determined according to the first decoding unit length and preset constraints.

3. The method according to claim 2, It is characterized in that In the process of segmenting the at least one historical slice file, detecting the length of the decoding unit respectively included in the at least one historical slice file includes: For any historical slice file among the at least one historical slice file, record the position of the key frame of the historical slice file; The length of the decoding unit contained in the historical slice file is determined according to the position of the recorded key frame.

4. The method according to claim 2, It is characterized in that Determining a first slice parameter according to the first decoding unit length and a preset constraint condition includes: Determining an objective function according to a linear relationship between the length of the first decoding unit and the number of frames of the independent sub-slice, the number of slices of the dependent sub-slice, and the number of frames of the dependent sub-slice in the decoding unit; The objective function is solved by linear programming under the preset constraint conditions to obtain the number of frames of independent sub-slices, the number of slices of non-independent sub-slices, and the number of frames of non-independent sub-slices.

5. The method according to claim 4, It is characterized in that The objective function is solved by linear programming under the preset constraint conditions to obtain the number of frames of the independent sub-slices, the number of slices of the dependent sub-slices, and the number of frames of the dependent sub-slices, including: Determining a range of the number of frames of the independent sub-slice according to the first decoding unit length; Traversing the values ​​within the frame number range to obtain multiple frame numbers of independent sub-slices; Solving the objective function according to the multiple frame numbers of the independent sub-slices respectively to obtain multiple slice numbers of the dependent sub-slices and multiple frame numbers of the dependent sub-slices; From the multiple frame numbers of the independent sub-slices, the multiple slice numbers of the non-independent sub-slices, and the multiple frame numbers of the non-independent sub-slices, a set of slice parameters that satisfy the constraint condition is determined to obtain the frame number of the independent sub-slices, the slice number of the non-independent sub-slices, and the frame number of the non-independent sub-slices.

6. The method according to claim 4, It is characterized in that The constraint conditions include: the duration of any sub-slice is within a set duration range; and / or the duration of the independent sub-slice is the same as the duration of the non-independent sub-slice.

7. The method according to any one of claims 1 to 6, It is characterized in that According to the first slicing parameter, the slice file is sliced ​​at least once with the predicted key frame position as a slicing point to obtain a plurality of sub-slices, including: after any round of slicing operation is completed, determining whether there is any remaining unsliced ​​data in the slice file; If yes, the first frame of the remaining unsplit data is used as the splitting start position; If the segmentation start position is a key frame, the first slicing parameter is used to perform the next round of segmentation operation on the remaining unsegmented data rows starting from the segmentation start position to obtain a non-first independent sub-slice and at least one non-independent sub-slice.

8. The method according to claim 7, It is characterized in that Also includes: If the segmentation start position is a non-key frame, the remaining unsegmented data rows are segmented starting from the segmentation start position according to the number of frames of the non-independent sub-slice in the first slicing parameter to obtain at least one non-independent sub-slice.

9. The method according to claim 7, It is characterized in that Also includes: If the segmentation start position is a non-key frame, detecting the decoding unit length of the slice file; If the decoding unit length of the slice file includes a second decoding unit length different from the first decoding unit length, in the process of segmenting at least one subsequent slice file received after the slice file, obtaining the length of the decoding unit contained in each of the at least one subsequent slice file; If the length of the decoding unit included in each of the at least one subsequent slice file is the same as the length of the second decoding unit, determining a third slice parameter according to the length of the second decoding unit; The first slicing parameter is updated using the third slicing parameter.

10. A server, It is characterized in that include: Memory and processor; The memory is used to store one or more computer instructions; The processor is configured to execute the one or more computer instructions to perform the steps in the method according to any one of claims 1 to 9.

11. A computer-readable storage medium storing a computer program, It is characterized in that When the computer program is executed by a processor, it can implement the data slicing method described in any one of claims 1 to 9.