Control method and device for data transmission and electronic equipment
By updating the transmission strategy based on the target evaluation value of data transmission quality in a video session, the problem of poor data transmission stability and fluency of the client when the network state is poor is solved, and more efficient media data transmission is achieved.
Patent Information
- Application Number
- CN202411931784.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-25
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2044-12-25
AI Technical Summary
In video session scenarios, the client still transmits multiple types of code streams when the network state is poor, resulting in poor stability and fluency of data transmission.
By determining the target judgment value used to characterize the quality of data transmission, identifying which preset judgment interval it is in, and updating or maintaining the current transmission policy according to the interval value to adapt to the network state. Specifically, if the target evaluation value is in the first interval, it is analyzed whether the available bandwidth of the uplink network meets the transmission strategy with high bandwidth demand; if it is in the second interval, the current strategy is maintained; if it is in the third interval, it is updated to the transmission strategy with low bandwidth demand.
By adapting transmission policies and network status, the stability and fluency of data transmission are improved and the quality of media data transmission during video sessions is ensured.
Smart Images

Figure CN119815132A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of data transmission, and in particular to a control method, device and electronic device for data transmission. Background Art
[0002] In the scenario of video conversation, the client usually encodes the media data to be transmitted to other clients to obtain multiple types of code streams, and then transmits the encoded code streams to the server. Other clients can request the server to obtain code streams that match the network status, thereby realizing the use of media data. For example, in the scenario of network video conferencing, client 1 can encode video data multiple times to obtain video code streams of different resolutions, and encode audio data to obtain audio code streams, so that client 1 encodes multiple types of code streams and transmits the encoded code streams to the server. Subsequently, client 2 can request the server to play the code stream that matches the network status according to the network status.
[0003] However, when the client's network status is poor, if the client still transmits various code streams to the server, it may lead to poor stability and fluency during the transmission process.
[0004] Currently, there is an urgent need for a control method for data transmission to ensure stability and smoothness during the data transmission process. Summary of the invention
[0005] The purpose of the embodiments of the present application is to provide a control method, device and electronic device for data transmission to ensure the stability and smoothness of data transmission. The specific technical solution is as follows:
[0006] In a first aspect, an embodiment of the present application provides a control method for data transmission, which applies a target client; the target client is any client participating in a video session; the method includes:
[0007] Determine a target evaluation value for characterizing the data transmission quality of a specified transmission process; wherein the specified transmission process is a process in which the target client uploads media data for transmission to other clients during a video session to a server, and the media data is transmitted according to one of a plurality of transmission strategies during the specified transmission process; different transmission strategies indicate different types of code streams to be transmitted, and each transmission strategy indicates at least one type of code stream type;
[0008] If the target evaluation value is within the preset first evaluation interval, determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged; the first transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth demand of which is higher than the specified bandwidth demand, and the bandwidth demand corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type indicated by the transmission strategy to be transmitted during transmission, and the specified bandwidth demand is the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process;
[0009] If the target evaluation value is within the preset second evaluation interval, maintaining the transmission strategy currently used in the specified transmission process unchanged;
[0010] If the target evaluation value is within a preset third evaluation interval, the transmission strategy used in the specified transmission process is updated to a second transmission strategy; wherein the second transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth requirement of which is lower than the specified bandwidth requirement;
[0011] Among them, the second evaluation interval is a evaluation value interval used to characterize the expected transmission quality in the specified transmission process, the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval, and the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval.
[0012] In a second aspect, an embodiment of the present application provides a control device for data transmission, applying a target client; the target client is any client participating in a video session; the device includes:
[0013] A first determination module is used to determine a target evaluation value for characterizing the data transmission quality of a specified transmission process; wherein the specified transmission process is a process in which the target client uploads media data for transmission to other clients during a video session to a server, and the media data is transmitted according to one of a plurality of transmission strategies during the specified transmission process; different transmission strategies indicate different bitstream types that need to be transmitted, and each transmission strategy indicates at least one bitstream type;
[0014] A second determination module is used to determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy if the target evaluation value is within the preset first evaluation interval, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged; the first transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth demand of which is higher than the specified bandwidth demand, and the bandwidth demand corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type indicated by the transmission strategy to be transmitted during transmission, and the specified bandwidth demand is the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process;
[0015] A maintaining module, configured to maintain the transmission strategy currently used in the specified transmission process unchanged if the target evaluation value is within a preset second evaluation interval;
[0016] An updating module, configured to update the transmission strategy used in the specified transmission process to a second transmission strategy if the target evaluation value is within a preset third evaluation interval; wherein the second transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth requirement of which is lower than the specified bandwidth requirement;
[0017] Among them, the second evaluation interval is a evaluation value interval used to characterize the expected transmission quality in the specified transmission process, the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval, and the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval.
[0018] In a third aspect, an embodiment of the present application provides an electronic device, including:
[0019] Memory, used to store computer programs;
[0020] The processor is used to implement any of the above-mentioned control methods for data transmission when executing the program stored in the memory.
[0021] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any of the above-mentioned control methods for data transmission is implemented.
[0022] Beneficial effects of the embodiments of the present application:
[0023] It can be seen that in the embodiment of the present application, since the target evaluation value is used to characterize the data transmission quality of the specified transmission process, and the specified transmission process is the process in which the target client uploads the media data used to be transmitted to other clients during the video session to the server, therefore, by identifying the evaluation interval in which the target evaluation value is located, it can be reflected whether the data transmission quality meets the expected transmission quality requirements when the target client transmits media data to the server according to the current transmission strategy, so as to further reflect the network status; thus, according to the evaluation interval in which the target evaluation value is located, different processing methods are adopted to make the transmission strategy used by the target client adapt to the network status, that is, the code streams of each code stream type transmitted are adapted to the network status; and when the target evaluation value is in the preset first evaluation interval, that is, the data transmission quality meets the expected transmission quality requirements, it can be further analyzed whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy, that is, whether it meets the bandwidth requirement corresponding to the transmission strategy to be optimized, so as to analyze whether the network status can adapt to the transmission strategy to be optimized, and according to the analysis result, choose to maintain the current transmission strategy or perform strategy optimization. It can be seen that this solution can adapt the network status to the transmission strategy, thereby ensuring the stability and smoothness of the data transmission process.
[0024] Of course, implementing any product or method of the present application does not necessarily require achieving all of the advantages described above at the same time. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other embodiments can also be obtained based on these drawings.
[0026] Figure 1 A flowchart of a control method for data transmission provided in an embodiment of the present application;
[0027] Figure 2 A schematic diagram of the effect of a transmission strategy and code stream type provided in an embodiment of the present application;
[0028] Figure 3 A schematic diagram of a process for calculating a target evaluation value provided in an embodiment of the present application;
[0029] Figure 4 A schematic diagram of a process flow for a predetermined analysis method provided in an embodiment of the present application;
[0030] Figure 5 A schematic diagram of another control method for data transmission provided in an embodiment of the present application;
[0031] Figure 6 A schematic diagram of the structure of a control device for data transmission provided in an embodiment of the present application;
[0032] Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0033] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. 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 based on the present application belong to the scope of protection of the present application.
[0034] First, some professional terms in the embodiments of the present application are briefly introduced:
[0035] Web conferencing: Through a computer network, participants in multiple locations can have real-time audio-visual communication.
[0036] Streaming media: Media data transmitted in real time over the Internet in the form of a bit stream.
[0037] Bandwidth: Also known as throughput, it refers to the maximum number of data bits transmitted from one end of the network to the other end within a fixed period of time (1 second). It can also be understood as the average rate of a specific code stream between two nodes of the network. The unit of bandwidth is bit / second (bit / s), which can be kbps, kilobits per second, Mbps, megabits per second.
[0038] Uplink rate: refers to the data transmission rate when the user's client sends information to the network.
[0039] Jitter: The degree of variation in the transmission time of multiple data packets. High jitter can cause video playback to freeze. For example, if the transmission time of data packet 1 is 10ms and the transmission time of data packet 2 is 500ms, then it can be considered to have high jitter.
[0040] Delay: The delay time required for a message or data packet group to travel from the sender to the receiver of the network. It is generally composed of transmission delay and processing delay, and can also be called latency.
[0041] Packet loss rate: refers to the percentage of lost packets during network transmission to the total number of transmitted packets.
[0042] Secondly, in order to better understand the present solution, before introducing the method provided in the embodiment of the present application, the control method for data transmission in the related art is first introduced:
[0043] Dynamic adjustment of transmission strategies can also be achieved through SVC (Scalable Video Coding) technology. SVC technology can encode media data through layered coding. However, due to the high complexity of SVC coding and decoding and poor compatibility, it has high requirements on the receiving equipment and cannot be widely used in various scenarios.
[0044] In another related technology, the network status for a period of time in the future can be predicted through the trend of network bandwidth and delay changes. According to the predicted results of the network status, the encoding priority is adjusted (for example, high-definition video data is encoded first, and low-definition video data is encoded secondly), and the configuration of switches and routers is modified, network resources are reconfigured, and bandwidth allocation is adjusted to adjust the transmission strategy and transmit media data. However, the accuracy of the prediction of the network status for a period of time in the future may be insufficient, and it is difficult to adapt to the changing network status. In addition, this related technology requires complete video conferencing equipment and is not suitable for lightweight video conferencing. In addition, the method of allocating network resources by modifying the configuration of switches and routers is too clumsy and has poor practicality.
[0045] Based on the above-mentioned problems, the embodiments of the present application provide a control method, device and electronic device for data transmission.
[0046] Secondly, the control method for data transmission provided in the embodiment of the present application is introduced.
[0047] Among them, the control method for data transmission provided in the embodiment of the present application can be applied to the target client, and the target client is any client participating in the video session. When any client uploads the media data used to be transmitted to other clients during the video session to the server, the client can serve as the target client, for example: when client 1 uploads the media data used to be transmitted to client 2 during the video session to the server, at this time, client 1 can serve as the target client; and the specific form of the client can be software with video session function, such as: video conferencing software, which is not specifically limited in the embodiment of the present application; and the client can run on a device, such as: a mobile phone device, a personal computer PC device, etc., which is not specifically limited in the embodiment of the present application; in addition, the media data uploaded by the target client to the server can be the media data collected by the device running on the target client, or it can be the media data stored in the device, which is not specifically limited in the embodiment of the present application. In addition, the client that executes the specified transmission process, that is, the target client can also be called the sender, and the client that requests the code stream from the server can also be called the receiver, which is not specifically limited in the embodiment of the present application.
[0048] Furthermore, the specific form of the server may be software with data transmission function or a server, and the embodiments of the present application do not specifically limit this.
[0049] The following is a brief introduction to the application scenarios of the control method for data transmission provided in the embodiment of the present application:
[0050] The application scenario of the embodiment of the present application may be a video conversation scenario, for example, a video voice call with classmates, a video conference scenario, etc. The embodiment of the present application does not make any specific limitation on this.
[0051] To better understand the principle of video conversation, the following is an example introduction:
[0052] User a, user b, user c and user d are having a video call. User a uses his mobile phone at home to turn on the camera and microphone. User b, user c and user d turn off the camera and microphone. User a is at home and the network status is very good. At this time, the client in user a's mobile phone can send the code stream of the high-definition video data type with a resolution of 1080P, the medium-definition video data type with a resolution of 720P, and the low-definition video data type with a resolution of 360P to the server. The network status of user b's mobile phone is very good at home. The client in user b's mobile phone can request the code stream of the high-definition video data type with a resolution of 1080P and the code stream of the audio data type from the server. User c is in the subway. The client in user c's mobile phone can request the code stream of the low-definition video data type with a resolution of 360P and the code stream of the audio data type from the server. User d is in the elevator. The client in user d's mobile phone only receives the code stream of the audio data type. The high-definition, medium-definition and low-definition mentioned above in this application are only for reflecting the video data of three different clarity, and are not specifically limited.
[0053] Among them, a control method for data transmission, using a target client; the target client is any client participating in a video session; the method includes:
[0054] Determine a target evaluation value for characterizing the data transmission quality of a specified transmission process; wherein the specified transmission process is a process in which the target client uploads media data for transmission to other clients during a video session to a server, and the media data is transmitted according to one of a plurality of transmission strategies during the specified transmission process; different transmission strategies indicate different types of code streams to be transmitted, and each transmission strategy indicates at least one type of code stream type;
[0055] If the target evaluation value is within the preset first evaluation interval, determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged; the first transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth demand of which is higher than the specified bandwidth demand, and the bandwidth demand corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type indicated by the transmission strategy to be transmitted during transmission, and the specified bandwidth demand is the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process;
[0056] If the target evaluation value is within the preset second evaluation interval, maintaining the transmission strategy currently used in the specified transmission process unchanged;
[0057] If the target evaluation value is within a preset third evaluation interval, the transmission strategy used in the specified transmission process is updated to a second transmission strategy; wherein the second transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth requirement of which is lower than the specified bandwidth requirement;
[0058] Among them, the second evaluation interval is a evaluation value interval used to characterize the expected transmission quality in the specified transmission process, the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval, and the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval.
[0059] It can be seen that in the embodiment of the present application, since the target evaluation value is used to characterize the data transmission quality of the specified transmission process, and the specified transmission process is the process in which the target client uploads the media data used to be transmitted to other clients during the video session to the server, therefore, by identifying the evaluation interval in which the target evaluation value is located, it can be reflected whether the data transmission quality meets the expected transmission quality requirements when the target client transmits media data to the server according to the current transmission strategy, so as to further reflect the network status; thus, according to the evaluation interval in which the target evaluation value is located, different processing methods are adopted to make the transmission strategy used by the target client adapt to the network status, that is, the code streams of each code stream type transmitted are adapted to the network status; and when the target evaluation value is in the preset first evaluation interval, that is, the data transmission quality meets the expected transmission quality requirements, it can be further analyzed whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy, that is, whether it meets the bandwidth requirement corresponding to the transmission strategy to be optimized, so as to analyze whether the network status can adapt to the transmission strategy to be optimized, and according to the analysis result, choose to maintain the current transmission strategy or perform strategy optimization. It can be seen that this solution can adapt the network status to the transmission strategy, thereby ensuring the stability and smoothness of the data transmission process.
[0060] A control method for data transmission provided by an embodiment of the present application is described below in conjunction with the accompanying drawings.
[0061] like Figure 1 As shown, a control method for data transmission provided in an embodiment of the present application is applied to a target client; the target client is any client participating in a video session; the method includes:
[0062] S101, determining a target evaluation value for characterizing data transmission quality of a specified transmission process;
[0063] The designated transmission process is a process in which the target client uploads media data used for transmission to other clients during the video session to the server, and the designated transmission process transmits the media data according to one of the multiple transmission strategies; different transmission strategies indicate different bitstream types that need to be transmitted, and each transmission strategy indicates at least one bitstream type;
[0064] It can be understood that before determining the target evaluation value, the target client is executing a specified transmission process, that is, uploading the media data used to transmit to other clients during the video session to the server. During the specified transmission process, the media data can be transmitted according to one of multiple transmission strategies, and the transmission strategy can indicate at least one bitstream type; specifically, the bitstream type can be divided into video data type and audio data type, etc., among which the video data type can be divided into high-definition video data type, medium-definition video data type and low-definition video data type. The specification of the high-definition video data type is a resolution of 720P and a frame rate of 25fps, the specification of the medium-definition video data type is a resolution of 480P and a frame rate of 15fps, the specification of the low-definition video data type is a resolution of 240P and a frame rate of 10fps, and the specification of the audio data type is 48khz, 16 bits. The embodiment of the present application does not specifically limit the bitstream type. In addition, different transmission strategies indicate different types of code streams that need to be transmitted. The code stream types that need to be transmitted indicated by each transmission strategy may be only for one type of media data (video data) or for two types of media data (video data and audio data). For example, the code stream types indicated by transmission strategy 1 are video data type and audio data type, and the code stream types indicated by transmission strategy 2 are audio data type. The embodiment of the present application does not make specific limitations on this.
[0065] Exemplarily, in one implementation, when the bitstream type is fixed as a high-definition video data type, a medium-definition video data type, a low-definition video data type, and an audio type, each transmission strategy may specifically include 5 transmission strategies, as follows: Transmission strategy 1 is a bitstream indicating the transmission of a high-definition video data type, a medium-definition video data type, a low-definition video data type, and an audio type; transmission strategy 2 is a bitstream indicating the transmission of a high-definition video data type, a low-definition video data type, and an audio type; transmission strategy 3 is a bitstream indicating the transmission of a medium-definition video data type, a low-definition video data type, and an audio type; transmission strategy 4 is a bitstream indicating the transmission of a low-definition video data type. The bitstream of the high-definition video data type and the audio type, and the transmission strategy 5 is to indicate the transmission of the audio type bitstream; wherein, the data volume of the bitstream of the high-definition video data type is greater than the data volume of the bitstream of the medium-definition video data type, the data volume of the bitstream of the medium-definition video data type is greater than the data volume of the bitstream of the low-definition video data type, the data volume of the bitstream of the low-definition video data type is greater than the data volume of the bitstream of the audio data type, and the bitstream transmitted by transmission strategy 1 is the transmission strategy with the largest corresponding data volume among all the transmission strategies, and the bitstream transmitted by transmission strategy 5 is the transmission strategy with the smallest corresponding data volume among all the transmission strategies.
[0066] Exemplarily, in another implementation, when the bitstream type is fixed as a medium-definition video data type, a low-definition video data type and an audio type, each transmission strategy may include three transmission strategies, as follows: transmission strategy a indicates the transmission of a bitstream of a medium-definition video data type, a low-definition video data type and an audio type, transmission strategy b indicates the transmission of a bitstream of a low-definition video data type and an audio type, and transmission strategy c indicates the transmission of a bitstream of an audio type.
[0067] Of course, the above introduction to the transmission strategy and code stream type is only for illustrative purposes and does not specifically limit the embodiments of the present application.
[0068] For the sake of clarity, the calculation process of determining the target evaluation value for characterizing the data transmission quality of a specified transmission process will be introduced in other embodiments, so it will not be described in detail again.
[0069] S102, if the target evaluation value is within the preset first evaluation interval, determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged;
[0070] The first transmission strategy is a transmission strategy among the multiple transmission strategies whose corresponding bandwidth requirement is higher than the specified bandwidth requirement, the bandwidth requirement corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type to be transmitted indicated by the transmission strategy during transmission, and the specified bandwidth requirement is the bandwidth requirement corresponding to the transmission strategy currently used in the specified transmission process;
[0071] Among them, the uplink network is the network bandwidth of the network used by the target client to transmit data to the server. The expected bandwidth required for the code stream of the code stream type to be transmitted indicated by each transmission strategy can be: the minimum bandwidth required for the code stream of the code stream type to be transmitted indicated by the transmission strategy during transmission; of course, the expected bandwidth can also be the intermediate bandwidth required for the code stream during transmission, and the embodiments of the present application do not make specific limitations on this.
[0072] It can be understood that three evaluation intervals can be set for the target evaluation value, namely the first evaluation interval, the second evaluation interval and the third evaluation interval; wherein the second evaluation interval is an evaluation value interval used to characterize the expected transmission quality in the specified transmission process, and the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval; then, if the target evaluation value is in the first evaluation interval, it can be considered that the target evaluation value is higher than the evaluation value in the evaluation value interval of the expected transmission quality in the specified transmission process (the evaluation value in the second evaluation interval). At this time, it can also be considered that the current network status of the target client is good, and there is a possibility of updating the transmission strategy used in the specified transmission process to the first transmission strategy, and the bandwidth requirement corresponding to the first transmission strategy is higher than the specified value. The bandwidth requirement corresponding to the transmission strategy currently used in the specified transmission process is determined. If the transmission strategy used in the specified transmission process is updated to the first transmission strategy, the bandwidth requirement in the specified transmission process can be increased, so that the target client can upload a stream with a higher bandwidth requirement to the server; then, it can be determined whether the available bandwidth of the upstream network meets the bandwidth requirement corresponding to the first transmission strategy. If it does, it indicates that the available bandwidth of the upstream network of the target client meets the bandwidth requirement corresponding to the first transmission strategy, and the transmission strategy used in the specified transmission process can be updated to the first transmission strategy. Otherwise, it indicates that the available bandwidth of the upstream network of the target client does not meet the bandwidth requirement corresponding to the first transmission strategy, and the transmission strategy currently used in the specified transmission process remains unchanged. In addition, each streaming media can be used to transmit a stream of a type of stream, for example: streaming media 1 is used to transmit a stream of an audio data type, and the embodiment of the present application does not specifically limit this. It should be emphasized that the evaluation interval and the evaluation value can be a percentage system or a ten-point system, and the evaluation interval can be set according to the actual usage situation or can be an empirical value. The embodiment of the present application does not specifically limit this. In addition, different methods of calculating the target evaluation value may have different value ranges for the corresponding evaluation intervals. For example, in one implementation, in the case of a percentage system, the evaluation interval is 0-100, wherein the value range of the first evaluation interval is (92, 100], the value range of the second evaluation interval is (76, 92], and the value range of the third evaluation interval is [0, 76].
[0073] Exemplarily, the value range of the first judgment interval is greater than 92, and the target judgment value corresponding to client 1 is 93. It can be determined that the target judgment value is within the first judgment interval. At this time, it can be determined whether the available bandwidth of the uplink network of client 1 meets the bandwidth demand corresponding to the first transmission strategy. Exemplarily, a uses a mobile phone to turn on the camera and microphone to make a video call with b in the subway. The client of a's mobile phone can upload a 360P low-definition video data type code stream and an audio data type code stream to the server. Later, a returns home and the network status at home is very good. At this time, the transmission strategy used in the specified transmission process can be updated to the first transmission strategy. The client in a's mobile phone can send a high-definition video data type with a resolution of 1080P, a medium-definition video data type with a resolution of 720P, a low-definition video data type code stream with a resolution of 360P, and an audio data type code stream to the server.
[0074] For a clear layout, the process of determining whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy will be introduced in other embodiments, so it will not be described in detail again.
[0075] S103, if the target evaluation value is within the preset second evaluation interval, maintaining the transmission strategy currently used in the specified transmission process unchanged;
[0076] It can be understood that the second judgment interval is a judgment value interval used to characterize the expected transmission quality in the specified transmission process. If the target judgment value is within the second judgment interval, it can be considered that the target judgment value is within the judgment value interval of the expected transmission quality in the specified transmission process. At this time, it can be considered that the current network status of the target client is general, and the transmission strategy currently used in the specified transmission process can be kept unchanged without updating the currently used transmission strategy. Exemplarily, the value range of the second judgment interval is less than or equal to 92 and greater than 76, and the target judgment value corresponding to client 2 is 90. It can be determined that the target judgment value is within the second judgment interval. At this time, the transmission strategy currently used in the specified transmission process can be kept unchanged.
[0077] S104, if the target evaluation value is within a preset third evaluation interval, updating the transmission strategy used in the specified transmission process to a second transmission strategy;
[0078] The second transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth requirement of which is lower than the specified bandwidth requirement;
[0079] It can be understood that the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval. Then, if the target evaluation value is in the third evaluation interval, it can be considered that the target evaluation value is lower than the evaluation value in the evaluation value interval of the expected transmission quality in the specified transmission process (the evaluation value in the second evaluation interval). At this time, it can also be considered that the current network status of the target client is poor, and the transmission strategy used in the specified transmission process can be updated to the second transmission strategy, and the bandwidth demand corresponding to the second transmission strategy is lower than the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process; if the transmission strategy used in the specified transmission process is updated to the second transmission strategy, the bandwidth demand in the specified transmission process can be reduced, so that the target client can upload a code stream with a lower bandwidth demand to the server. Exemplarily, the value range of the third evaluation interval is less than or equal to 76, and the target evaluation value corresponding to client 3 is 70. It can be determined that the target evaluation value is in the third evaluation interval. At this time, the transmission strategy used in the specified transmission process can be updated to the second transmission strategy. For example, a uses a mobile phone at home to turn on the camera and microphone to make a video call with b. The client in a's mobile phone can send code streams of high-definition video data types with a resolution of 1080P, medium-definition video data types with a resolution of 720P, and low-definition video data types with a resolution of 360P, as well as code streams of audio data types. Subsequently, a starts downloading a movie while on the video call. At this time, the target judgment value is within the preset third judgment interval, so the transmission strategy used in the specified transmission process can be updated to the second transmission strategy, and the client in a's mobile phone can send code streams of low-definition video data types and audio data types with a resolution of 360P to the server.
[0080] It can be seen that in the embodiment of the present application, since the target evaluation value is used to characterize the data transmission quality of the specified transmission process, and the specified transmission process is the process in which the target client uploads the media data used to be transmitted to other clients during the video session to the server, therefore, by identifying the evaluation interval in which the target evaluation value is located, it can be reflected whether the data transmission quality meets the expected transmission quality requirements when the target client transmits media data to the server according to the current transmission strategy, so as to further reflect the network status; thus, according to the evaluation interval in which the target evaluation value is located, different processing methods are adopted to make the transmission strategy used by the target client adapt to the network status, that is, the code streams of each code stream type transmitted are adapted to the network status; and when the target evaluation value is in the preset first evaluation interval, that is, the data transmission quality meets the expected transmission quality requirements, it can be further analyzed whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy, that is, whether it meets the bandwidth requirement corresponding to the transmission strategy to be optimized, so as to analyze whether the network status can adapt to the transmission strategy to be optimized, and according to the analysis result, choose to maintain the current transmission strategy or perform strategy optimization. It can be seen that this solution can adapt the network status to the transmission strategy, thereby ensuring the stability and smoothness of the data transmission process.
[0081] Exemplarily, in one implementation, each transmission strategy corresponds to a network level set according to a predetermined level setting method, and different transmission strategies correspond to different network levels; the predetermined level setting method includes: sorting the multiple transmission strategies in descending order according to the bandwidth demand corresponding to each transmission strategy, and for the sequence obtained by sorting, setting a corresponding network level for each transmission strategy in the sequence in descending order of level;
[0082] The method for determining the first transmission strategy includes: determining the network level corresponding to the transmission strategy currently used by the specified transmission process, and using the transmission strategy corresponding to the previous network level of the determined network level as the first transmission strategy;
[0083] The method for determining the second transmission strategy includes: determining the network level corresponding to the transmission strategy currently used by the specified transmission process, and using the transmission strategy corresponding to the next network level of the determined network level as the second transmission strategy.
[0084] It can be understood that each transmission strategy corresponds to a network level, and the corresponding network level can be set for each transmission strategy according to a predetermined level setting method. The predetermined level setting method can be understood as follows: the lower the network level, the higher the bandwidth requirement corresponding to the corresponding transmission strategy; for example, the bandwidth requirement corresponding to transmission strategy 1 can transmit high-definition video streams, medium-definition video streams, low-definition video streams and audio streams, the bandwidth requirement corresponding to transmission strategy 2 can transmit high-definition video streams, low-definition video streams and audio streams, the bandwidth requirement corresponding to transmission strategy 3 can transmit medium-definition video streams, low-definition video streams and audio streams, the bandwidth requirement corresponding to transmission strategy 4 can transmit low-definition video streams and audio streams, and the bandwidth requirement corresponding to transmission strategy 5 can transmit audio streams. Then, the network level can be set to network level 1 for transmission strategy 1, network level 2 for transmission strategy 2, network level 3 for transmission strategy 3, network level 4 for transmission strategy 4, and network level 5 for transmission strategy 5. Of course, the above is only an exemplary introduction, and the embodiments of the present application do not make specific limitations on this.
[0085] Furthermore, the method for determining the first transmission strategy can be considered as determining the transmission strategy corresponding to the previous network level of the network level corresponding to the transmission strategy currently used by the specified transmission process as the first transmission strategy, and the bandwidth demand corresponding to the first transmission strategy is higher than the bandwidth demand corresponding to the transmission strategy currently used by the specified transmission process; exemplarily, the network level corresponding to the transmission strategy currently used by the specified transmission process is network level 2, at this time, the first transmission strategy is the transmission strategy corresponding to the previous network level of the network level corresponding to the transmission strategy currently used by the specified transmission process, and the first transmission strategy is the transmission strategy corresponding to network level 1.
[0086] Furthermore, the method for determining the second transmission strategy can be considered as determining the transmission strategy corresponding to the next network level of the network level corresponding to the transmission strategy currently used by the specified transmission process as the second transmission strategy, and the bandwidth demand corresponding to the second transmission strategy is lower than the bandwidth demand corresponding to the transmission strategy currently used by the specified transmission process; exemplarily, the network level corresponding to the transmission strategy currently used by the specified transmission process is network level 2, at this time, the second transmission strategy is the transmission strategy corresponding to the next network level of the network level corresponding to the transmission strategy currently used by the specified transmission process, and the second transmission strategy is the transmission strategy corresponding to network level 3.
[0087] Of course, the above-mentioned method of setting the network level for each transmission strategy based on the bandwidth demand corresponding to each transmission strategy is only an exemplary introduction. The transmission strategy corresponding to the previous network level and the transmission strategy corresponding to the next network level are also only exemplary introductions, and there is no specific limitation on the embodiments of the present application.
[0088] In order to better understand this part of the content, the following is introduced in conjunction with the accompanying drawings. Figure 2 As shown:
[0089] Figure 2 The horizontal axis can be the transmission strategy, and the vertical axis can be the required bandwidth, wherein the audio stream can be considered as the code stream of the audio data type introduced above, and the high-definition stream, medium-definition stream and low-definition stream can be considered as the code stream of the video data type introduced above, wherein the transmission strategy for sending the audio stream can be considered as the transmission strategy of network level 5, the transmission strategy for sending the low-definition stream and sending the audio stream can be considered as the transmission strategy of network level 4, the transmission strategy for sending the medium-definition stream, sending the low-definition stream and sending the audio stream can be considered as the transmission strategy of network level 3, and the transmission strategy for sending the high-definition stream, sending the low-definition stream and sending the audio stream can be considered as the transmission strategy of network level 3. The transmission strategy for sending video streams and audio streams can be considered as the transmission strategy for network level 2, and the transmission strategy for sending high-definition streams, medium-definition streams, low-definition streams and audio streams can be considered as the transmission strategy for network level 1; among them, the transmission strategy corresponding to network level 1 requires the highest bandwidth, and the transmission strategy corresponding to network level 5 requires the lowest bandwidth; and the specifications of each type of code stream are as follows: high-definition stream: 720P, 25fps, medium-definition stream: 480P, 15fps, low-definition stream: 240P, 10fps, audio stream: 48khz, 16 bits.
[0090] It can be seen that the embodiment of the present application can set a network level for each transmission strategy, thereby facilitating the update of the transmission strategy, providing an implementation basis for the control of data transmission, and ensuring the accuracy and stability of the update of the transmission strategy.
[0091] Optionally, in another embodiment, the calculation process of the target evaluation value for characterizing the data transmission quality of the specified transmission process includes: Figure 3 As shown:
[0092] S301, for each type of code stream among various types of code streams, obtaining an analysis index of the type of code stream, and calculating a judgment value for characterizing transmission quality of the type of code stream based on the analysis index of the type of code stream and according to a predetermined transmission quality calculation formula;
[0093] The various code streams are code streams transmitted to the server according to the current transmission strategy in the specified transmission process; the analysis indicators include: one or more of delay duration, jitter value and compensated packet loss rate;
[0094] It is understandable that after the target client uploads the media data used to transmit to other clients during the video session to the server, it can obtain the analysis index of each type of code stream in the various code streams transmitted to the server, and calculate the judgment value used to characterize the transmission quality of this type of code stream according to the predetermined transmission quality calculation formula. When there is only one type of code stream, the judgment value used to characterize the transmission quality of this type of code stream can also be directly regarded as the target judgment value. In addition, the analysis index can include: one or more of the delay duration, jitter value and compensated packet loss rate, which is not specifically limited in the embodiments of the present application; in addition, the analysis index can be detected by the server and obtained by the target client, or it can be directly detected by the target client, which is not specifically limited in the embodiments of the present application. In addition, depending on the analysis indicators, the transmission quality calculation formula will also be different. When the analysis indicators only include the delay duration, the transmission quality calculation formula can calculate the evaluation value for characterizing the transmission quality of this type of code stream based only on the delay duration; similarly, when the analysis indicators only include the delay duration, the jitter value and the compensated packet loss rate, the judgment value for characterizing the transmission quality of this type of code stream can be calculated based on the above three types of analysis indicators using the transmission quality calculation formula. The embodiments of the present application do not make specific limitations on this.
[0095] In order to better understand the content of the predetermined transmission quality calculation formula, it will be introduced in other embodiments and will not be described in detail here.
[0096] Exemplarily, in one implementation, the step of obtaining the analysis index of the type of code stream includes step A1:
[0097] Step A1, obtaining analysis indicators of the code stream of this type in each specified analysis period;
[0098] Accordingly, based on the analysis index of the code stream of this type, according to the predetermined transmission quality calculation formula, the evaluation value for characterizing the transmission quality of the code stream of this type is calculated, including steps B1 and B2:
[0099] Step B1, for each designated analysis period, based on the analysis index of the type of code stream in the designated analysis period, according to a predetermined transmission quality calculation formula, calculating the evaluation value for characterizing the transmission quality of the type of code stream for the analysis period;
[0100] Step B2: remove the maximum value and the minimum value from the obtained evaluation values of the code stream, average the remaining evaluation values of the code stream, and obtain the evaluation value for characterizing the transmission quality of the code stream of this type.
[0101] It can be understood that, for step A1, the analysis index of this type of code stream in each specified analysis period can be obtained. Specifically, each specified analysis period can be 1s, or it can be 10s, etc., and the embodiment of the present application does not make specific limitations on this; and, the smaller the specified analysis period is set, the more accurate the evaluation value of this type of code stream calculated subsequently for characterizing the transmission quality will be, and the analysis index can be obtained once after each specified analysis period is reached.
[0102] It can be understood that for step B1, based on analysis indicators such as the delay duration, jitter value and compensated packet loss rate of this type of code stream within the specified analysis period, the judgment value for characterizing the transmission quality of this type of code stream for the analysis period can be calculated according to a predetermined transmission quality calculation formula. Then, each specified analysis period can correspond to a judgment value for characterizing the transmission quality.
[0103] It can be understood that, for step B2, after obtaining the judgment value for characterizing the transmission quality of the type of code stream for each specified analysis period, the maximum value and the minimum value can be removed from the obtained judgment value of the type of code stream, so as to improve the accuracy of the calculated judgment value for characterizing the transmission quality of the type of code stream; and the remaining judgment values of the code stream are averaged, which can be used as the judgment value for characterizing the transmission quality of the type of code stream. Exemplarily, the judgment values for characterizing the transmission quality of the audio data for each specified analysis period are: 100, 60, 78, 90, 84, respectively, and the maximum value 100 and the minimum value 60 are removed, and the remaining judgment values are averaged, and the judgment value for characterizing the transmission quality of the audio data is 84. Of course, the content introduced in step B2 is only an exemplary introduction, and the maximum value and the minimum value may not be removed, and the obtained judgment value of the code stream may be directly averaged to obtain the judgment value for characterizing the transmission quality of the type of code stream, and the embodiment of the present application does not make specific limitations on this.
[0104] It can be seen that the embodiment of the present application can obtain the analysis index of this type of code stream in each specified analysis cycle, and based on the obtained analysis index, calculate the evaluation value used to characterize the transmission quality of this type of code stream, which provides an implementation basis for the control of data transmission and ensures the accuracy and stability of updating the transmission strategy. In addition, the maximum value and the minimum value are removed from the obtained evaluation value of the code stream, and the remaining evaluation values of the code stream are averaged to calculate the evaluation value used to characterize the transmission quality of this type of code stream, which can improve the accuracy of the calculated evaluation value used to characterize the transmission quality of this type of code stream.
[0105] Exemplarily, in one implementation, when the analysis index includes delay duration, jitter value, and compensated packet loss rate, the predetermined transmission quality calculation formula includes:
[0106] Score=latencyScore×A+jitterScore×B+plrScore×C;
[0107] Among them, Score is the evaluation value of any bitstream, latencyScore is the delay score, A is the weight corresponding to the delay score, jitterScore is the jitter score, B is the weight corresponding to the jitter score, plrScore is the packet loss rate score after compensation, and C is the weight corresponding to the packet loss rate score after compensation;
[0108] The latencyScore is a score determined according to the delay duration in the analysis indicator, and when the delay duration is in a first delay interval, the latencyScore is assigned a maximum delay score, when the delay duration is in a second delay interval, the latencyScore is assigned a linearly decreasing manner, when the delay duration is in a third delay interval, the latencyScore is assigned an exponentially decreasing manner, and when the delay duration is in a fourth delay interval, the latencyScore is assigned a minimum delay score, and the first delay interval, the second delay interval, the third delay interval, and the fourth delay interval are multiple intervals obtained by dividing the range of values that the delay duration can exist in, and the delay duration is in an increasing state;
[0109] The jitterScore is a score determined according to the jitter value in the analysis index. When the jitter value is greater than a predetermined jitter threshold, the jitterScore is assigned an exponentially decreasing value. When the jitter value is not greater than the predetermined jitter threshold, the jitterScore is assigned a maximum jitter score.
[0110] The plrScore is a score determined according to the compensated packet loss rate in the analysis indicator. When the compensated packet loss rate is in the first packet loss rate interval, the plrScore is assigned the maximum packet loss rate score. When the compensated packet loss rate is in the second packet loss rate interval, the plrScore is assigned in a linearly decreasing manner. When the compensated packet loss rate is in the third packet loss rate interval, the plrScore is assigned the minimum packet loss rate score. The first packet loss rate interval, the second packet loss rate interval and the third packet loss rate interval are multiple intervals in which the packet loss rate is in an increasing state, which are obtained by dividing the range of values that the compensated packet loss rate can exist.
[0111] It can be understood that, when the analysis indicators include delay duration, jitter value and compensated packet loss rate, the delay score, jitter score and compensated packet loss rate score can be calculated respectively, and weighted calculations can be performed on the three types of scores respectively, so that the judgment value of any code stream can be calculated, wherein the empirical value of the weight corresponding to the delay score is 0.3, the empirical value of the weight corresponding to the jitter score is 0.2, and the empirical value of the weight corresponding to the compensated packet loss rate score is 0.5. Of course, the weights corresponding to the three types of scores can also be other values, and the embodiments of the present application do not specifically limit this; illustratively, the delay score is 100, the weight corresponding to the delay score is 0.3, the jitter score is 80, the weight corresponding to the jitter score is 0.2, the compensated packet loss rate score is 90, and the weight corresponding to the compensated packet loss rate score is 0.5, then, the judgment value of the code stream can be calculated to be 91. Among them, the compensated packet loss rate is the packet loss rate counted by the target client after resending data. For example, the target client sends 10 data packets to the server for the first time, and the server detects that one data packet is lost, and sends information to make the target client resend 1 data packet. After the server receives the resent data packet, it can be determined that the compensated packet loss rate is 0%.
[0112] Specifically, for the calculation of the latency score latencyScore, four delay intervals can be pre-set, namely the first delay interval, the second delay interval, the third delay interval and the fourth delay interval. The four delay intervals are multiple intervals obtained by dividing the range of values that the delay duration can exist in, and the delay duration is in an increasing state; among which, the delay duration in the first delay interval is lower than the delay duration in the second delay interval, the delay duration in the second delay interval is lower than the delay duration in the third delay interval, and the delay duration in the third delay interval is lower than the delay duration in the fourth delay interval.
[0113] It can be understood that when the delay duration is in the first delay interval, the latencyScore can be assigned the maximum delay score. For example, the first delay interval can be a delay duration less than or equal to 300ms, that is, latency≤300ms. When the delay duration of audio data 1 is 100ms, the latencyScore of audio data 1 can be assigned 100, and 100 is the maximum delay score; when the delay duration is in the second delay interval, the latencyScore can be assigned in a linearly decreasing manner, wherein the linear decreasing manner indicates that the greater the delay duration, the smaller the value assigned to the latencyScore. For example, the second delay interval can be a delay duration greater than 300ms and less than or equal to 500ms, that is, 300ms<latency≤500ms. When the delay duration of audio data 2 is 400ms, the latencyScore of audio data 2 can be assigned in a linearly decreasing manner. When the delay time is in the third delay interval, the latencyScore can be assigned in an exponentially decreasing manner, wherein the exponentially decreasing manner indicates that the greater the delay time, the smaller the value assigned to the latencyScore. For example, the third delay interval can be a delay time greater than 500ms and less than or equal to 1000ms, that is, 500ms<latency≤1000ms. When the delay time of audio data 3 is 700ms, the latencyScore of audio data 3 can be assigned in an exponentially decreasing manner. When the delay time is in the fourth delay interval, the latencyScore can be assigned the minimum delay score. For example, the fourth delay interval can be a delay time greater than 1000ms, that is, latency>1000ms. When the delay time of audio data 4 is 1500ms, the latencyScore of audio data 4 can be assigned 0, and 0 is the minimum delay score. Of course, the above-mentioned settings for each delay interval and the settings for the delay score are only for exemplary introduction, and the embodiments of the present application do not make specific limitations on this.It should be emphasized that when the latency is in the second delay interval, the latencyScore can be assigned in a linear decline manner; the decline rate represented by the linear decline method remains unchanged, and the impact of latency changes on latencyScore can be smoothly displayed. The linear decline method is relatively simple and intuitive, easy to implement and adjust, and can maintain a high latencyScore when the latency increases slightly, thereby determining the latencyScore more reasonably; when the latency is in the third delay interval, the latencyScore can be assigned in an exponential decline manner; the decline rate represented by the exponential decline method is variable, and the larger the latency, the greater the decline in latencyScore.
[0114] To better understand the calculation of delay score, the following is introduced in the form of formula:
[0115] The calculation formula for latencyScore is:
[0116] ;
[0117] Among them, latency is the delay duration in the analysis indicator. It is a linear decline method. The way the index falls;
[0118] Specifically, for the calculation of the jitter score jitterScore, a predetermined jitter threshold can be set in advance. When the jitter value is greater than the predetermined jitter threshold, the jitterScore can be assigned in an exponentially decreasing manner, wherein the decrease rate indicated by the exponentially decreasing manner is variable, and the larger the jitter value, the smaller the value assigned to the jitterScore; when the jitter value is not greater than the predetermined jitter threshold, the jitterScore can be assigned to the maximum jitter score; illustratively, when the predetermined jitter threshold is 75ms and the jitter value of audio data 1 is 100ms, the jitterScore of audio data 1 can be assigned in an exponentially decreasing manner, and when the jitter value of audio data 2 is 50ms, the jitterScore of audio data 1 can be assigned to 100, and 100 is the maximum jitter score.
[0119] To better understand the content of calculating jitter score, the following is introduced in the form of formula:
[0120] The calculation formula of jitterScore is:
[0121] ;
[0122] Among them, jitter is the jitter in the analysis index, and 75ms is the preset jitter threshold. The way the index falls;
[0123] Specifically, for the calculation of the compensated packet loss rate score plrScore, three packet loss rate intervals can be set, namely the first packet loss rate interval, the second packet loss rate interval and the third packet loss rate interval. The three packet loss rate intervals are multiple intervals in which the packet loss rate is in an increasing state and are obtained by dividing the range of values that the compensated packet loss rate can exist in; among which, the compensated packet loss rate in the first packet loss rate interval is lower than the compensated packet loss rate in the second packet loss rate interval, and the compensated packet loss rate in the second packet loss rate interval is lower than the compensated packet loss rate in the third packet loss rate interval.
[0124] It can be understood that when the compensated packet loss rate is in the first packet loss rate interval, plrScore can be assigned the maximum packet loss rate score. For example, the first packet loss rate interval can be a packet loss rate less than or equal to 3%, that is, plr≤3%. When the compensated packet loss rate of audio data 1 is 1%, plrScore of audio data 1 can be assigned 100, which is the maximum packet loss rate score. When the compensated packet loss rate is in the second packet loss rate interval, plrScore can be assigned in a linearly decreasing manner, wherein the linearly decreasing manner indicates that the greater the compensated packet loss rate, the smaller the value assigned to plrScore. For example, The second packet loss rate interval can be a compensated packet loss rate greater than 3% and less than or equal to 10%, that is, 3%<plr≤10%. When the compensated packet loss rate of audio data 2 is 4%, the plrScore of audio data 2 can be assigned in a linear decreasing manner; when the compensated packet loss rate is in the third packet loss rate interval, the plrScore can be assigned the minimum packet loss rate score. For example, the third packet loss rate interval can be a compensated packet loss rate greater than 10%, that is, plr>10%. When the compensated packet loss rate of audio data 4 is 15%, the plrScore of audio data 4 can be assigned 0, which is the minimum packet loss rate score. It should be emphasized that when plr is in the second packet loss rate interval, plrScore can be assigned in a linear decline manner; wherein the decline rate represented by the linear decline manner remains unchanged, and the impact of the change in plr on plrScore can be smoothly displayed, and the linear decline manner is relatively simple and intuitive, easy to implement and adjust, and when plr increases slightly, a higher plrScore can be maintained, thereby determining the plrScore more reasonably.
[0125] To better understand how to calculate the compensated packet loss rate score, the following is an introduction in the form of a formula:
[0126] The calculation formula of plrScore is:
[0127] ;
[0128] Among them, plr is the packet loss rate after compensation in the analysis index, It is a linear decline method.
[0129] Of course, the predetermined transmission quality calculation formula introduced above is only an exemplary introduction. In one implementation, when the analysis indicator only includes the delay duration, the transmission quality calculation formula can also be Score=latencyScore×A. The transmission quality calculation formula is not specifically limited in the embodiments of the present application.
[0130] S302, based on the calculated evaluation values of various code streams, a target evaluation value for characterizing the data transmission quality of a specified transmission process is calculated.
[0131] Among them, the evaluation value of each type of code stream calculated can also be called OverallScore, and the embodiment of the present application does not make specific limitations on this. It can be understood that each type of code stream is the code stream of the media data transmitted by the specified transmission process. After the evaluation value of each type of code stream is calculated, the sum of the evaluation values of each type of code stream can be calculated as the evaluation value to be used, and the ratio of the evaluation value to be used to the number of types of each type of code stream can be calculated to obtain the target evaluation value for characterizing the data transmission quality of the specified transmission process. Exemplarily, the evaluation values of each type of code stream are 100, 90, 60, 70, and 80, respectively, and the evaluation value to be used can be calculated to be 400. Then, the target evaluation value for characterizing the data transmission quality of the specified transmission process can be calculated to be 80.
[0132] It can be seen that the embodiments of the present application can obtain the analysis indicators of this type of code stream, and calculate the judgment value for characterizing the transmission quality of this type of code stream according to a predetermined transmission quality calculation formula, and based on the judgment values of each type of code stream obtained by calculation, calculate the target judgment value for characterizing the data transmission quality of the specified transmission process, so as to obtain an accurate target judgment value. Based on the target judgment value, it can be determined whether to update the transmission strategy used in the specified transmission process, which provides a basis for the control of data transmission and ensures the accuracy and stability of updating the transmission strategy.
[0133] Exemplarily, in another embodiment, determining whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy includes steps C1-C3:
[0134] Step C1, constructing multiple detection packets;
[0135] It can be understood that the construction of the detection packet can be executed by the target client, and the bandwidth demand of the detection packet can be the bandwidth demand corresponding to the first transmission strategy, that is, the bandwidth demand corresponding to the transmission strategy corresponding to the network level and the previous network level used in the specified transmission process; and, the number of retransmissions of the detection packet is set to 0, the transmission order of the detection packet is set to disorderly, the survival time of the detection packet is set to 500ms and the number of detection packets; for the first packet of multiple detection packets, it is required to include the bandwidth demand corresponding to the first transmission strategy and the specific number of multiple detection packets, wherein the amount of data contained in each detection packet is fixed, and in order to prevent SCTP (StreamControl Transmission Protocol) from segmenting the packet during the transmission process, each packet is fixed to 1150 bytes, specifically 1200-Internet Protocol IP header bytes-UDP (User Datagram Protocol) header bytes. Of course, the above-mentioned settings for the detection packet are only for exemplary introduction, and the embodiments of the present application do not make specific limitations on this.
[0136] Exemplarily, in one implementation, the constructing of multiple detection packages includes step C11:
[0137] Step C11, constructing a target number of detection packages to obtain multiple detection packages;
[0138] The target quantity is calculated according to a predetermined quantity calculation formula, and the predetermined quantity calculation formula includes:
[0139] s = (k1-k0) × t / b;
[0140] Among them, s is the target number, k1 is the bandwidth requirement corresponding to the first transmission strategy, k0 is the specified bandwidth requirement, t is the expected sending time, and b is the data volume of a single detection packet.
[0141] It can be understood that the target number of detection packets can be calculated according to a predetermined number calculation formula, which can be understood as: the difference between the bandwidth demand corresponding to the first transmission strategy and the specified bandwidth demand multiplied by the expected sending time t and then divided by the data volume of a single detection packet. The difference between the bandwidth demand corresponding to the first transmission strategy and the specified bandwidth demand can also be considered as the growth of the bandwidth demand. The growth is multiplied by the expected sending time to obtain the total bandwidth growth within the expected sending time. The ratio of the total bandwidth growth to the data volume of a single detection packet is calculated to obtain the target number of detection packets sent within the expected sending time. Exemplarily, the difference between the bandwidth demand corresponding to the first transmission strategy and the specified bandwidth demand is 10kbps, the expected sending time is 1s, and the data volume of a single detection packet is 1kb, so the target number is 10.
[0142] Of course, the above process of calculating the number of detection packets is only for illustrative purposes, and the number of detection packets may also be an empirical value or directly set, and the embodiments of the present application do not specifically limit this.
[0143] It can be seen that the target number of detection packets can be calculated according to a predetermined number calculation formula, so that the accurate number of detection packets to be sent can be obtained, which provides a basis for the control of data transmission and ensures the accuracy and stability of updating the transmission strategy.
[0144] Step C2, continuously sending multiple detection packets to the server;
[0145] It is understandable that the target client can continuously send a target number of detection packets to the server to determine whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy.
[0146] Step C3, determining the analysis result of whether the available bandwidth of the uplink network obtained by analyzing in a predetermined analysis manner meets the bandwidth requirement corresponding to the first transmission strategy;
[0147] Wherein, the predetermined analysis method includes:
[0148] Obtaining the packet loss rate of each detection packet received by the server as the target packet loss rate;
[0149] If the target packet loss rate is greater than the predetermined packet loss rate, determining that the available bandwidth of the uplink network does not meet the bandwidth requirement corresponding to the first transmission strategy;
[0150] If the target packet loss rate is not greater than the predetermined packet loss rate, the delay difference of each detection packet received by the server is calculated according to the delay difference calculation formula, and it is detected whether the delay difference of the multiple detection packets is greater than the predetermined delay difference. If it is greater, it is determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy. Otherwise, it is determined that the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy; wherein, the delay difference of the multiple detection packets received by the server is determined based on the difference in transmission time between every two consecutively received detection packets.
[0151] It can be understood that after continuously sending multiple detection packets to the server, the target client can perform analysis according to a predetermined analysis method to obtain an analysis result of whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy. The server can also perform analysis according to a predetermined analysis method and return the analysis result of whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy to the target client, so that the target client can determine the analysis result. However, the execution subject is the target client or the server, and the specific process of performing analysis according to the predetermined analysis method is the same. The above two implementation methods can be used as implementation methods of the embodiments of the present application, and the embodiments of the present application do not make specific limitations on this.
[0152] And, the predetermined analysis method can specifically consist of two parts: detecting the packet loss rate and detecting the delay difference of multiple detection packets. The packet loss rate of each detection packet received by the server can be first obtained as the target packet loss rate, and the relationship between the target packet loss rate and the predetermined packet loss rate can be detected. If the target packet loss rate is greater than the predetermined packet loss rate, it is determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy; wherein the predetermined packet loss rate can be 1%. When the target packet loss rate is greater than 1%, it can be determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy. Of course, the predetermined packet loss rate can be 1% only as an exemplary introduction, and the embodiment of the present application does not specifically limit the predetermined packet loss rate; if the target packet loss rate is not greater than the predetermined packet loss rate, then according to the delay difference calculation formula, The delay difference of each detection packet received by the server is calculated, and it is detected whether the delay difference of multiple detection packets is greater than a predetermined delay difference. If so, it is determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy. Otherwise, it is determined that the bandwidth demand corresponding to the first transmission strategy is met. The predetermined delay difference is 10ms. When it is detected that the delay difference of multiple detection packets is greater than 10ms, it is determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy. When it is detected that the delay difference of multiple detection packets is not greater than 10ms, it can be determined that the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy. Of course, the predetermined delay difference of 10ms is only introduced as an example, and the embodiments of the present application do not specifically limit the predetermined delay difference.
[0153] It should be emphasized that the delay difference between multiple probe packets can be considered as the average difference in delays between multiple probe packets received by the server. For example, the transmission time for the first probe packet to reach the server is 10ms, and the transmission time for the second probe packet to reach the server is 11ms. Then, the delay difference between the first probe packet and the second probe packet is 1ms. The delay differences of the multiple probe packets sent are counted and divided by the number of probe packets sent to obtain the delay difference of the multiple probe packets.
[0154] Exemplarily, in one implementation, the delay difference calculation formula includes:
[0155] ;
[0156] Wherein, m is the delay difference of multiple detection packets received by the server, N is the number of multiple detection packets received by the server, T n is the reception time of the nth packet, t n is the sending time of the nth packet, T n-1 is the receiving time of the n-1th packet, t n-1 is the sending time of the n-1th packet, d is the waiting delay of each detection packet detected by the server, △L is the data volume of multiple detection packets received by the server, C is the difference between the total bandwidth of the code stream type required for transmission represented by the first transmission test and the total bandwidth required for the code stream type required for transmission represented by the transmission strategy currently used in the specified transmission process, and Z is a preset random error.
[0157] It is understandable that m can be a negative number, and d is the waiting delay of each detection packet detected by the server, that is, the waiting delay between two adjacent detection packets, which can be calculated based on the expected sending time and the number of detection packets sent. For example, 10 detection packets are sent within 1 minute, and one detection packet can be sent every 6 seconds, and d is 6 seconds. In addition, the value range of the preset random error Z can be 3≤Z≤10, and the empirical value is 5, which is not specifically limited in the embodiment of the present application.
[0158] Of course, the above delay difference calculation formula is only introduced as an example, and the embodiments of the present application do not make any specific limitations on this.
[0159] It can be seen that the embodiment of the present application can calculate the delay difference of multiple detection packets based on the delay difference calculation formula, so as to accurately determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy.
[0160] In order to better understand the content of the predetermined analysis method, the following is an introduction with reference to the accompanying drawings. Figure 4 As shown:
[0161] Figure 4 The process of the server performing analysis according to the predetermined analysis method.
[0162] S401, the server receives multiple detection packets;
[0163] It is understandable that the server can receive multiple detection packets continuously sent by the target client.
[0164] S402, detecting packet loss rates of multiple detection packets;
[0165] It is understandable that the server can detect the packet loss rates of multiple detection packets and collect statistics on the detected packet loss rates.
[0166] S403, determining whether the packet loss rate is greater than 1%;
[0167] It is understandable that 1% can be considered as the predetermined packet loss rate, and it can be determined whether the counted packet loss rate is greater than the predetermined packet loss rate; if so, step S404 is executed, and if not, step S406 is executed;
[0168] S404, determining that the bandwidth demand corresponding to the first transmission strategy is not satisfied;
[0169] It can be understood that when the counted packet loss rate is greater than the predetermined packet loss rate, it can be determined that the bandwidth requirement corresponding to the first transmission strategy is not met.
[0170] S405, feedback to the target client;
[0171] It is understandable that the result determined in S404 may be fed back to the target client.
[0172] S406, calculating the delay difference of multiple detection packets received by the server;
[0173] It is understandable that the delay difference calculation formula introduced above can be used to calculate the delay difference of multiple detection packets received by the server.
[0174] S407, determining whether the delay difference of the multiple detection packets is greater than 10ms;
[0175] Among them, 10ms can be regarded as a predetermined delay difference, and it can be determined whether the delay difference of multiple detection packets is greater than 10ms. If so, step S408 is executed, and if not, step S410 is executed.
[0176] S408, determining that the bandwidth demand corresponding to the first transmission strategy is not satisfied;
[0177] It can be understood that when the delay difference between the plurality of detection packets is greater than the predetermined delay difference, it can be determined that the bandwidth requirement corresponding to the first transmission strategy is not met.
[0178] S409, feedback to the target client;
[0179] It is understandable that the result determined in S408 may be fed back to the target client.
[0180] S410, determining a bandwidth requirement corresponding to a first transmission strategy;
[0181] It can be understood that when the delay difference between the multiple detection packets is not greater than the predetermined delay difference, it can be determined that the bandwidth requirement corresponding to the first transmission strategy is met.
[0182] S411, feedback to the target client;
[0183] It is understandable that the result determined in S410 may be fed back to the target client.
[0184] Of course, there is no unique way to determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy. The above is only an exemplary introduction and the embodiments of the present application do not make specific limitations.
[0185] It can be seen that the embodiment of the present application can be analyzed according to a predetermined analysis method, so as to obtain an analysis result of whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy. The packet loss rate of multiple detection packets can be detected first, and then the delay difference of multiple detection packets can be detected. Only when the multiple packet loss rates are not greater than the predetermined packet loss rate and the delay difference of multiple detection packets is not greater than the predetermined delay difference, it can be determined that the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy, thereby ensuring the accuracy and stability of updating the transmission strategy and optimizing the transmission effect of media data.
[0186] Optionally, in another embodiment, the present application also provides another control method for data transmission, such as Figure 5 As shown:
[0187] Figure 5The control method for data transmission introduced can be composed of three modules, all of which are software modules, namely a streaming media sending strategy module, a streaming media transmission quality calculation module and an uplink available bandwidth detection module. Among them, the streaming media sending strategy module is used to formulate multiple transmission strategies and determine the transmission strategy currently used in the specified transmission process. The streaming media sending strategy module can send the determined transmission strategy currently used in the specified transmission process to the streaming media transmission quality calculation module, and the streaming media transmission quality calculation module calculates the current streaming media transmission quality. The current streaming media transmission quality can be considered to be the target judgment value introduced above; the current streaming media transmission quality is poor, which can be considered that the target judgment value is within the preset third judgment interval. At this time, the transmission strategy used in the specified transmission process can be updated to the second transmission strategy, that is, the transmission strategy used in the specified transmission process is updated to: the transmission strategy used in the specified transmission process corresponds to the previous network level of the network level corresponding to the transmission strategy used in the specified transmission process. strategy, and returns the updated transmission strategy to the streaming media sending strategy module; the current streaming media transmission quality is medium, which can be considered that the target evaluation value is within the preset second evaluation interval. At this time, the transmission strategy currently used in the specified transmission process can be kept unchanged, and the unchanged transmission strategy is returned to the streaming media sending strategy module; the current streaming media transmission quality is good, which can be considered that the target evaluation value is within the preset first evaluation interval. At this time, the uplink bandwidth detection can be turned on to detect whether the current available bandwidth meets the bandwidth demand corresponding to the first transmission strategy. If not, the transmission strategy currently used in the specified transmission process is kept unchanged and returned to the streaming media sending strategy module. If so, the transmission strategy used in the specified transmission process is updated to the first transmission strategy, that is, the transmission strategy used in the specified transmission process is updated to: the transmission strategy corresponding to the next network level of the network level corresponding to the transmission strategy used in the specified transmission process, and the updated transmission strategy is returned to the streaming media sending strategy module.
[0188] It can be seen that the embodiment of the present application can reflect whether the target client meets the expected transmission quality requirements when transmitting media data to the server according to the current transmission strategy by identifying the judgment interval in which the target judgment value is located, so as to further reflect the network status; thus, according to the judgment interval in which the target judgment value is located, different processing methods are adopted to adapt the transmission strategy used by the target client to the network status, that is, the code streams of each code stream type transmitted are adapted to the network status; and when the target judgment value is in the preset first judgment interval, that is, the data transmission quality meets the expected transmission quality requirements, it is possible to further analyze whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy, that is, whether it meets the bandwidth requirement corresponding to the transmission strategy to be optimized, so as to analyze whether the network status can adapt to the transmission strategy to be optimized, and according to the analysis results, choose to maintain the current transmission strategy or perform strategy optimization. It can be seen that through this scheme, the network status can be adapted to the transmission strategy, so as to ensure the stability and fluency of the data transmission process.
[0189] Based on the method embodiments described above, Figure 6 As shown, an embodiment of the present application provides a control device for data transmission, applying a target client; the target client is any client participating in a video session; the device includes:
[0190] The first determination module 610 is used to determine a target evaluation value for characterizing the data transmission quality of a specified transmission process; wherein the specified transmission process is a process in which the target client uploads media data used for transmission to other clients during a video session to a server, and the media data is transmitted according to one of a plurality of transmission strategies during the specified transmission process; different transmission strategies indicate different bitstream types that need to be transmitted, and each transmission strategy indicates at least one bitstream type;
[0191] The second determination module 620 is used to determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy if the target evaluation value is within the preset first evaluation interval, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged; the first transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth demand of which is higher than the specified bandwidth demand, and the bandwidth demand corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type to be transmitted indicated by the transmission strategy during transmission, and the specified bandwidth demand is the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process;
[0192] A maintaining module 630, configured to maintain the transmission strategy currently used in the specified transmission process unchanged if the target evaluation value is within a preset second evaluation interval;
[0193] An updating module 640 is configured to update the transmission strategy used in the specified transmission process to a second transmission strategy if the target evaluation value is within a preset third evaluation interval; wherein the second transmission strategy is a transmission strategy among the multiple transmission strategies whose corresponding bandwidth demand is lower than the specified bandwidth demand;
[0194] Among them, the second evaluation interval is a evaluation value interval used to characterize the expected transmission quality in the specified transmission process, the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval, and the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval.
[0195] Optionally, each transmission strategy corresponds to a network level set according to a predetermined level setting method, and different transmission strategies correspond to different network levels; the predetermined level setting method includes: sorting the multiple transmission strategies in descending order according to the bandwidth demand corresponding to each transmission strategy, and for the sequence obtained by sorting, setting a corresponding network level for each transmission strategy in the sequence in descending order of level;
[0196] The method for determining the first transmission strategy includes: determining the network level corresponding to the transmission strategy currently used by the specified transmission process, and using the transmission strategy corresponding to the previous network level of the determined network level as the first transmission strategy;
[0197] The method for determining the second transmission strategy includes: determining the network level corresponding to the transmission strategy currently used by the specified transmission process, and using the transmission strategy corresponding to the next network level of the determined network level as the second transmission strategy.
[0198] Optionally, the calculation process of the target evaluation value for characterizing the data transmission quality of the specified transmission process includes:
[0199] For each type of code stream in each type of code stream, an analysis index of the type of code stream is obtained, and based on the analysis index of the type of code stream, a judgment value for characterizing the transmission quality of the type of code stream is calculated according to a predetermined transmission quality calculation formula; wherein the type of code stream is a code stream transmitted to the server according to the current transmission strategy in the specified transmission process; the analysis index includes: one or more of a delay duration, a jitter value, and a packet loss rate after compensation;
[0200] Based on the calculated evaluation values of various code streams, a target evaluation value for characterizing the data transmission quality of a specified transmission process is calculated.
[0201] Optionally, obtaining analysis indicators of the type of code stream includes:
[0202] Obtain the analysis index of this type of code stream in each specified analysis period;
[0203] Based on the analysis index of the code stream of this type, according to the predetermined transmission quality calculation formula, the evaluation value for characterizing the transmission quality of the code stream of this type is calculated, including:
[0204] For each designated analysis period, based on the analysis index of the type of code stream in the designated analysis period, according to a predetermined transmission quality calculation formula, calculate the evaluation value for characterizing the transmission quality of the type of code stream for the analysis period;
[0205] The maximum value and the minimum value are removed from the obtained evaluation values of the code stream, and the remaining evaluation values of the code stream are averaged to obtain the evaluation value of the code stream of this type for characterizing the transmission quality.
[0206] Optionally, when the analysis index includes delay duration, jitter value and compensated packet loss rate, the predetermined transmission quality calculation formula includes:
[0207] Score=latencyScore×A+jitterScore×B+plrScore×C;
[0208] Among them, Score is the evaluation value of any bitstream, latencyScore is the delay score, A is the weight corresponding to the delay score, jitterScore is the jitter score, B is the weight corresponding to the jitter score, plrScore is the packet loss rate score after compensation, and C is the weight corresponding to the packet loss rate score after compensation;
[0209] The latencyScore is a score determined according to the delay duration in the analysis indicator, and when the delay duration is in a first delay interval, the latencyScore is assigned a maximum delay score, when the delay duration is in a second delay interval, the latencyScore is assigned a linearly decreasing manner, when the delay duration is in a third delay interval, the latencyScore is assigned an exponentially decreasing manner, and when the delay duration is in a fourth delay interval, the latencyScore is assigned a minimum delay score, and the first delay interval, the second delay interval, the third delay interval, and the fourth delay interval are multiple intervals obtained by dividing the range of values that the delay duration can exist in, and the delay duration is in an increasing state;
[0210] The jitterScore is a score determined according to the jitter value in the analysis index. When the jitter value is greater than a predetermined jitter threshold, the jitterScore is assigned an exponentially decreasing value. When the jitter value is not greater than the predetermined jitter threshold, the jitterScore is assigned a maximum jitter score.
[0211] The plrScore is a score determined according to the compensated packet loss rate in the analysis indicator. When the compensated packet loss rate is in the first packet loss rate interval, the plrScore is assigned the maximum packet loss rate score. When the compensated packet loss rate is in the second packet loss rate interval, the plrScore is assigned in a linearly decreasing manner. When the compensated packet loss rate is in the third packet loss rate interval, the plrScore is assigned the minimum packet loss rate score. The first packet loss rate interval, the second packet loss rate interval and the third packet loss rate interval are multiple intervals in which the packet loss rate is in an increasing state, which are obtained by dividing the range of values that the compensated packet loss rate can exist.
[0212] Optionally, the second determining module includes:
[0213] Build submodules for building multiple detection packages;
[0214] A sending submodule, used for continuously sending multiple detection packets to the server;
[0215] A determination submodule, used to determine whether the available bandwidth of the uplink network obtained by analyzing in a predetermined analysis manner satisfies the analysis result of the bandwidth requirement corresponding to the first transmission strategy;
[0216] Wherein, the predetermined analysis method includes:
[0217] Obtaining the packet loss rate of each detection packet received by the server as the target packet loss rate;
[0218] If the target packet loss rate is greater than the predetermined packet loss rate, determining that the available bandwidth of the uplink network does not meet the bandwidth requirement corresponding to the first transmission strategy;
[0219] If the target packet loss rate is not greater than the predetermined packet loss rate, the delay difference of each detection packet received by the server is calculated according to the delay difference calculation formula, and it is detected whether the delay difference of the multiple detection packets is greater than the predetermined delay difference. If it is greater, it is determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy. Otherwise, it is determined that the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy; wherein, the delay difference of the multiple detection packets received by the server is determined based on the difference in transmission time between every two consecutively received detection packets.
[0220] Optionally, the delay difference calculation formula includes:
[0221] ;
[0222] Wherein, m is the delay difference of multiple detection packets received by the server, N is the number of multiple detection packets received by the server, T n is the reception time of the nth packet, t n is the sending time of the nth packet, T n-1 is the receiving time of the n-1th packet, t n-1 is the sending time of the n-1th packet, d is the waiting delay of each detection packet detected by the server, △L is the data volume of multiple detection packets received by the server, C is the difference between the total bandwidth of the code stream type required for transmission represented by the first transmission test and the total bandwidth required for the code stream type required for transmission represented by the transmission strategy currently used in the specified transmission process, and Z is a preset random error.
[0223] Optionally, build submodules specifically for:
[0224] Construct the target number of detection packages to obtain multiple detection packages;
[0225] The target quantity is calculated according to a predetermined quantity calculation formula, and the predetermined quantity calculation formula includes:
[0226] s = (k1-k0) × t / b;
[0227] Among them, s is the target number, k1 is the bandwidth requirement corresponding to the first transmission strategy, k0 is the specified bandwidth requirement, t is the expected sending time, and b is the data volume of a single detection packet.
[0228] In the technical solution of this application, the operations involved in obtaining, storing, using, processing, transmitting, providing and disclosing user personal information are all carried out with the user's authorization.
[0229] The present application also provides an electronic device, such as Figure 7 As shown, including:
[0230] Memory 701, used for storing computer programs;
[0231] The processor 702 is used to implement a control method for data transmission when executing a program stored in the memory 701 .
[0232] Furthermore, the electronic device may further include a communication bus and / or a communication interface, and the processor 702, the communication interface, and the memory 701 communicate with each other via the communication bus.
[0233] The communication bus mentioned in the above electronic device can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
[0234] The communication interface is used for communication between the above electronic device and other devices.
[0235] The memory may include a random access memory (RAM) or a non-volatile memory (NVM), such as at least one disk memory. Optionally, the memory may also be at least one storage device located away from the aforementioned processor.
[0236] The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
[0237] In another embodiment provided in the present application, a computer-readable storage medium is provided, in which a computer program is stored. When the computer program is executed by a processor, any of the above control methods for data transmission is implemented.
[0238] In another embodiment provided in the present application, a computer program product including instructions is also provided, which, when executed on a computer, enables the computer to execute any of the control methods for data transmission in the above embodiments.
[0239] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a solid-state hard disk (SSD), etc.
[0240] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article 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, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.
[0241] Each embodiment in this specification is described in a related manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.
[0242] The above description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application are included in the protection scope of the present application.
Claims
1. A control method for data transmission, characterized in that: Application target client; The target client is any client participating in a video session; the method comprises: Determine a target evaluation value for characterizing the data transmission quality of a specified transmission process; wherein the specified transmission process is a process in which the target client uploads media data for transmission to other clients during a video session to a server, and the media data is transmitted according to one of a plurality of transmission strategies during the specified transmission process; different transmission strategies indicate different types of code streams to be transmitted, and each transmission strategy indicates at least one type of code stream type; If the target evaluation value is within the preset first evaluation interval, determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged; the first transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth demand of which is higher than the specified bandwidth demand, and the bandwidth demand corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type indicated by the transmission strategy to be transmitted during transmission, and the specified bandwidth demand is the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process; If the target evaluation value is within the preset second evaluation interval, maintaining the transmission strategy currently used in the specified transmission process unchanged; If the target evaluation value is within a preset third evaluation interval, the transmission strategy used in the specified transmission process is updated to a second transmission strategy; wherein the second transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth requirement of which is lower than the specified bandwidth requirement; Among them, the second evaluation interval is a evaluation value interval used to characterize the expected transmission quality in the specified transmission process, the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval, and the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval.
2. The method according to claim 1, characterized in that Each transmission strategy corresponds to a network level set according to a predetermined level setting method, and different transmission strategies correspond to different network levels; the predetermined level setting method includes: sorting the multiple transmission strategies in descending order according to the bandwidth demand corresponding to each transmission strategy, and setting a corresponding network level for each transmission strategy in the sequence in descending order according to the sequence obtained by sorting; The method for determining the first transmission strategy includes: determining the network level corresponding to the transmission strategy currently used by the specified transmission process, and using the transmission strategy corresponding to the previous network level of the determined network level as the first transmission strategy; The method for determining the second transmission strategy includes: determining the network level corresponding to the transmission strategy currently used by the specified transmission process, and using the transmission strategy corresponding to the next network level of the determined network level as the second transmission strategy.
3. The method according to claim 1 or 2, characterized in that: The calculation process of the target evaluation value for characterizing the data transmission quality of a specified transmission process includes: For each type of code stream in each type of code stream, an analysis index of the type of code stream is obtained, and based on the analysis index of the type of code stream, a judgment value for characterizing the transmission quality of the type of code stream is calculated according to a predetermined transmission quality calculation formula; wherein the type of code stream is a code stream transmitted to the server according to the current transmission strategy in the specified transmission process; the analysis index includes: one or more of a delay duration, a jitter value, and a packet loss rate after compensation; Based on the calculated evaluation values of various code streams, a target evaluation value for characterizing the data transmission quality of a specified transmission process is calculated.
4. The method according to claim 3, characterized in that: The obtaining of the analysis index of the code stream of this type includes: Obtain the analysis index of this type of code stream in each specified analysis period; Based on the analysis index of the code stream of this type, according to the predetermined transmission quality calculation formula, the evaluation value for characterizing the transmission quality of the code stream of this type is calculated, including: For each designated analysis period, based on the analysis index of the type of code stream in the designated analysis period, according to a predetermined transmission quality calculation formula, calculate the evaluation value for characterizing the transmission quality of the type of code stream for the analysis period; The maximum value and the minimum value are removed from the obtained evaluation values of the code stream, and the remaining evaluation values of the code stream are averaged to obtain the evaluation value of the code stream of this type for characterizing the transmission quality.
5. The method according to claim 3, characterized in that: In the case where the analysis indicators include delay duration, jitter value and compensated packet loss rate, the predetermined transmission quality calculation formula includes: Score=latencyScore×A+jitterScore×B+plrScore×C; Among them, Score is the evaluation value of any bitstream, latencyScore is the delay score, A is the weight corresponding to the delay score, jitterScore is the jitter score, B is the weight corresponding to the jitter score, plrScore is the packet loss rate score after compensation, and C is the weight corresponding to the packet loss rate score after compensation; The latencyScore is a score determined according to the delay duration in the analysis indicator, and when the delay duration is in a first delay interval, the latencyScore is assigned a maximum delay score, when the delay duration is in a second delay interval, the latencyScore is assigned a linearly decreasing manner, when the delay duration is in a third delay interval, the latencyScore is assigned an exponentially decreasing manner, and when the delay duration is in a fourth delay interval, the latencyScore is assigned a minimum delay score, and the first delay interval, the second delay interval, the third delay interval, and the fourth delay interval are multiple intervals obtained by dividing the range of values that the delay duration can exist in, and the delay duration is in an increasing state; The jitterScore is a score determined according to the jitter value in the analysis index. When the jitter value is greater than a predetermined jitter threshold, the jitterScore is assigned an exponentially decreasing value. When the jitter value is not greater than the predetermined jitter threshold, the jitterScore is assigned a maximum jitter score. The plrScore is a score determined according to the compensated packet loss rate in the analysis indicator. When the compensated packet loss rate is in the first packet loss rate interval, the plrScore is assigned the maximum packet loss rate score. When the compensated packet loss rate is in the second packet loss rate interval, the plrScore is assigned in a linearly decreasing manner. When the compensated packet loss rate is in the third packet loss rate interval, the plrScore is assigned the minimum packet loss rate score. The first packet loss rate interval, the second packet loss rate interval and the third packet loss rate interval are multiple intervals in which the packet loss rate is in an increasing state, which are obtained by dividing the range of values that the compensated packet loss rate can exist.
6. The method according to claim 1 or 2, characterized in that: Determining whether the available bandwidth of the uplink network meets the bandwidth requirement corresponding to the first transmission strategy includes: Build multiple probe packages; Continuously sending multiple detection packets to the server; Determine whether the available bandwidth of the uplink network obtained by analyzing in a predetermined analysis manner satisfies the analysis result of the bandwidth requirement corresponding to the first transmission strategy; Wherein, the predetermined analysis method includes: Obtaining the packet loss rate of each detection packet received by the server as the target packet loss rate; If the target packet loss rate is greater than the predetermined packet loss rate, determining that the available bandwidth of the uplink network does not meet the bandwidth requirement corresponding to the first transmission strategy; If the target packet loss rate is not greater than the predetermined packet loss rate, the delay difference of each detection packet received by the server is calculated according to the delay difference calculation formula, and it is detected whether the delay difference of the multiple detection packets is greater than the predetermined delay difference. If it is greater, it is determined that the available bandwidth of the uplink network does not meet the bandwidth demand corresponding to the first transmission strategy. Otherwise, it is determined that the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy; wherein, the delay difference of the multiple detection packets received by the server is determined based on the difference in transmission time between every two consecutively received detection packets.
7. The method according to claim 6, characterized in that The delay difference calculation formula includes: ; Wherein, m is the delay difference of multiple detection packets received by the server, N is the number of multiple detection packets received by the server, T n is the reception time of the nth packet, t n is the sending time of the nth packet, T n-1 is the receiving time of the n-1th packet, t n-1 is the sending time of the n-1th packet, d is the waiting delay of each detection packet detected by the server, △L is the data volume of multiple detection packets received by the server, C is the difference between the total bandwidth of the code stream type required for transmission represented by the first transmission test and the total bandwidth required for the code stream type required for transmission represented by the transmission strategy currently used in the specified transmission process, and Z is a preset random error.
8. The method according to claim 6, characterized in that The construction of multiple detection packages includes: Construct the target number of detection packages to obtain multiple detection packages; The target quantity is calculated according to a predetermined quantity calculation formula, and the predetermined quantity calculation formula includes: s = (k1 - k0) × t / b; Among them, s is the target number, k1 is the bandwidth requirement corresponding to the first transmission strategy, k0 is the specified bandwidth requirement, t is the expected sending time, and b is the data volume of a single detection packet.
9. A control device for data transmission, characterized in that: Application target client; The target client is any client participating in a video session; the device comprises: A first determination module is used to determine a target evaluation value for characterizing the data transmission quality of a specified transmission process; wherein the specified transmission process is a process in which the target client uploads media data for transmission to other clients during a video session to a server, and the media data is transmitted according to one of a plurality of transmission strategies during the specified transmission process; different transmission strategies indicate different bitstream types that need to be transmitted, and each transmission strategy indicates at least one bitstream type; A second determination module is used to determine whether the available bandwidth of the uplink network meets the bandwidth demand corresponding to the first transmission strategy if the target evaluation value is within the preset first evaluation interval, and if so, update the transmission strategy used in the specified transmission process to the first transmission strategy, otherwise, keep the transmission strategy currently used in the specified transmission process unchanged; the first transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth demand of which is higher than the specified bandwidth demand, and the bandwidth demand corresponding to any transmission strategy is: the expected bandwidth required for the code stream of the code stream type indicated by the transmission strategy to be transmitted during transmission, and the specified bandwidth demand is the bandwidth demand corresponding to the transmission strategy currently used in the specified transmission process; A maintaining module, configured to maintain the transmission strategy currently used in the specified transmission process unchanged if the target evaluation value is within a preset second evaluation interval; An updating module, configured to update the transmission strategy used in the specified transmission process to a second transmission strategy if the target evaluation value is within a preset third evaluation interval; wherein the second transmission strategy is a transmission strategy among the multiple transmission strategies, the corresponding bandwidth requirement of which is lower than the specified bandwidth requirement; Among them, the second evaluation interval is a evaluation value interval used to characterize the expected transmission quality in the specified transmission process, the evaluation values in the first evaluation interval are all greater than the evaluation values in the second evaluation interval, and the evaluation values in the third evaluation interval are all less than the evaluation values in the second evaluation interval.
10. An electronic device, characterized in that: include: Memory, used to store computer programs; A processor, for implementing any of the methods described in claims 1-8 when executing a program stored in a memory.
11. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
Differentiated video content service method for intelligent video surveillance
CN109587438A
Method and device for dynamically calculating code rate required by video transmission and computer device
CN109951727A
Video data transmission control method and device and computer readable storage medium
CN112565204A
Video code stream network bandwidth self-adaption method and device, equipment and medium
CN112866752A
Data packet transmission method and device, electronic equipment and storage medium
CN118764547A