Packet loss retransmission method, device, system and computer readable storage medium
By dynamically adjusting the retransmission code rate and maximum retransmission code rate of video packets, network congestion and video lag caused by excessive retransmission code rate in the prior art are solved, and the practicality and user experience of packet loss and retransmission are improved.
Patent Information
- Application Number
- CN202210496537.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-06
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2042-05-06
AI Technical Summary
The existing packet loss and retransmission technology can easily lead to excessive retransmission rate, resulting in network congestion, video lag and delay, affecting the user experience, and reducing the practicality of packet loss and retransmission.
When receiving the packet loss retransmission instruction from the client, the uplink bandwidth, packet loss rate and normal code rate are determined, the retransmission code rate of each video packet to be retransmitted dynamically, and the maximum retransmission code rate of each client is determined based on the packet loss rate and retransmission code rate to avoid excessive retransmission code rate.
It effectively reduces the stuttering and delay of video during packet loss and retransmission, improves the practicality of packet loss and retransmission, and improves the user experience.
Smart Images

Figure CN114938439B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of wireless communication technology, and in particular to a packet loss retransmission method, device, system and computer-readable storage medium. Background Art
[0002] Video conferencing has high requirements for concurrency and real-time performance. Currently, the SFU architecture is widely used to support video conferencing. However, packet loss may occur in a poor network environment, resulting in loss of video clips, which brings a bad experience to users. In order to solve the problem of video clip loss caused by packet loss, packet retransmission technology is introduced to retransmit packets that have not arrived. However, the existing packet retransmission technology is prone to excessively high retransmission bitrates, causing network congestion to cause video freezes and delays, and also affects the user experience, resulting in low practicality of packet retransmission. Therefore, improving the practicality of packet retransmission is an urgent problem to be solved. Summary of the invention
[0003] The main purpose of the present invention is to propose a packet loss retransmission method, device, system and computer-readable storage medium, aiming to solve the problem of how to improve the practicality of packet loss retransmission.
[0004] To achieve the above object, the present invention provides a packet loss retransmission method, which comprises the following steps:
[0005] Upon receiving a packet loss retransmission instruction sent by the first client, determining an uplink bandwidth and a packet loss rate and a normal bit rate of each client connected to the video conferencing server;
[0006] Upon receiving a packet loss retransmission instruction sent by a first client, determining an uplink bandwidth and a packet loss rate and a normal bit rate of each to-be-retransmitted video packet corresponding to the first client;
[0007] Determine the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determine the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate;
[0008] Each video packet to be retransmitted is sent to the first client according to the retransmission bit rate and the maximum retransmission bit rate.
[0009] Optionally, before the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each to-be-retransmitted video packet corresponding to the first client, the step includes:
[0010] According to the packet loss retransmission instruction, determine the current request timestamp, the last request timestamp and the current retransmission number of each video packet to be retransmitted corresponding to the first client;
[0011] Determine a request time interval of each to-be-retransmitted video packet according to the current request timestamp and the last request timestamp, compare the request time interval with a preset request time threshold, and compare the current number of retransmissions with a preset number of retransmissions threshold to obtain a first comparison result;
[0012] If the first comparison result is that the request time interval of each video packet to be retransmitted is greater than the preset request time threshold, and the current retransmission number of each video packet to be retransmitted is less than the preset retransmission number threshold, then execute the step of: determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client.
[0013] Optionally, the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each to-be-retransmitted video packet corresponding to the first client includes:
[0014] Determine, according to the packet loss retransmission instruction, a normal bit rate of each to-be-retransmitted video packet corresponding to the first client;
[0015] Acquire transmission parameters of the first client, determine a delay bandwidth, a packet loss bandwidth, and a packet loss rate of each to-be-retransmitted video packet corresponding to the first client according to the transmission parameters, and determine an uplink bandwidth according to the delay bandwidth, the packet loss bandwidth, and the packet loss rate.
[0016] Optionally, according to the retransmission bit rate and the maximum retransmission bit rate, the step of sending each video packet to be retransmitted to the first client includes:
[0017] Adding the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adding the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates;
[0018] The sum of the retransmission code rates is compared with the sum of the maximum retransmission code rates to obtain a second comparison result, and each video packet to be retransmitted is sent to the first client according to the second comparison result.
[0019] Optionally, according to the second comparison result, the step of sending each video packet to be retransmitted to the first client includes:
[0020] If the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0021] If the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, the queuing time of each video packet to be retransmitted in the video sending buffer is calculated respectively, and the queuing time is compared with a preset queuing time threshold to obtain a third comparison result, and based on the third comparison result, each video packet to be retransmitted is sent to the first client.
[0022] Optionally, according to the third comparison result, the step of sending the set of video packets to be retransmitted to the first client includes:
[0023] If the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0024] If the third comparison result is that there is a video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold, the video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold is used as the target video packet to be retransmitted, and the retransmission bit rate of the target video packet to be retransmitted is reduced, and the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client is re-executed.
[0025] Optionally, the step of caching each video packet to be retransmitted in a video sending buffer, and sending each video packet to be retransmitted to the first client through the video sending buffer includes:
[0026] Buffering each video packet to be retransmitted in a sending queue in a video sending buffer, and placing each video packet to be retransmitted before a normal video packet to be sent in the sending queue;
[0027] Each video packet to be retransmitted is sent to the first client through the video sending buffer according to a first-in-first-out strategy.
[0028] In addition, to achieve the above object, the present invention further provides a packet loss retransmission device, the packet loss retransmission device comprising:
[0029] A receiving module, configured to determine an uplink bandwidth and a packet loss rate and a normal bit rate of each to-be-retransmitted video packet corresponding to the first client upon receiving a packet loss retransmission instruction sent by the first client;
[0030] A determination module, configured to determine the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determine the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate;
[0031] The retransmission module is used to send each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate.
[0032] Furthermore, the receiving module is also used for:
[0033] According to the packet loss retransmission instruction, determine the current request timestamp, the last request timestamp and the current retransmission number of each video packet to be retransmitted corresponding to the first client;
[0034] Determine a request time interval of each to-be-retransmitted video packet according to the current request timestamp and the last request timestamp, compare the request time interval with a preset request time threshold, and compare the current number of retransmissions with a preset number of retransmissions threshold to obtain a first comparison result;
[0035] If the first comparison result is that the request time interval of each video packet to be retransmitted is greater than the preset request time threshold, and the current retransmission number of each video packet to be retransmitted is less than the preset retransmission number threshold, then execute the step of: determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client.
[0036] Furthermore, the receiving module is also used for:
[0037] Determine, according to the packet loss retransmission instruction, a normal bit rate of each to-be-retransmitted video packet corresponding to the first client;
[0038] Acquire transmission parameters of the first client, determine a delay bandwidth, a packet loss bandwidth, and a packet loss rate of each to-be-retransmitted video packet corresponding to the first client according to the transmission parameters, and determine an uplink bandwidth according to the delay bandwidth, the packet loss bandwidth, and the packet loss rate.
[0039] Furthermore, the retransmission module is also used for:
[0040] Adding the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adding the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates;
[0041] The sum of the retransmission code rates is compared with the sum of the maximum retransmission code rates to obtain a second comparison result, and each video packet to be retransmitted is sent to the first client according to the second comparison result.
[0042] Furthermore, the retransmission module is also used for:
[0043] If the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0044] If the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, the queuing time of each video packet to be retransmitted in the video sending buffer is calculated respectively, and the queuing time is compared with a preset queuing time threshold to obtain a third comparison result, and based on the third comparison result, each video packet to be retransmitted is sent to the first client.
[0045] Furthermore, the retransmission module is also used for:
[0046] If the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0047] If the third comparison result is that there is a video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold, the video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold is used as the target video packet to be retransmitted, and the retransmission bit rate of the target video packet to be retransmitted is reduced, and the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client is re-executed.
[0048] Furthermore, the retransmission module is also used for:
[0049] Buffering each video packet to be retransmitted in a sending queue in a video sending buffer, and placing each video packet to be retransmitted before a normal video packet to be sent in the sending queue;
[0050] Each video packet to be retransmitted is sent to the first client through the video sending buffer according to a first-in-first-out strategy.
[0051] In addition, to achieve the above-mentioned purpose, the present invention also provides a packet loss retransmission system, which includes: a memory, a processor, and a packet loss retransmission program stored in the memory and executable on the processor, and the packet loss retransmission program implements the steps of the packet loss retransmission method described above when executed by the processor.
[0052] In addition, to achieve the above-mentioned purpose, the present invention also provides a computer-readable storage medium, on which a packet loss retransmission program is stored, and when the packet loss retransmission program is executed by a processor, the steps of the packet loss retransmission method described above are implemented.
[0053] The packet loss retransmission method proposed by the present invention determines the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client when receiving the packet loss retransmission instruction sent by the first client; determines the retransmission bit rate of each video packet to be retransmitted corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determines the maximum retransmission bit rate of the second client corresponding to each video packet to be retransmitted according to the packet loss rate and the retransmission bit rate; sends each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate; the present invention adjusts the retransmission bit rate of the video packet to be retransmitted that needs to be adjusted according to the maximum retransmission bit rate of each second client, and then sends each video packet to be retransmitted to the first client according to the adjusted retransmission bit rate and the maximum retransmission bit rate of each second client, thereby avoiding excessively high retransmission bit rate and thus reducing the freeze and delay of the video during packet loss retransmission, and improving the practicality of packet loss retransmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] Figure 1 It is a schematic diagram of the device structure of the hardware operating environment involved in the embodiment of the present invention;
[0055] Figure 2 This is a flow chart of a first embodiment of a packet loss retransmission method according to the present invention;
[0056] Figure 3 A schematic diagram of a sending queue of a video sending buffer of the present invention;
[0057] Figure 4 This is a schematic diagram of the video packet flow framework of the video conference of the present invention;
[0058] Figure 5 It is a schematic diagram of the packet loss retransmission framework of the video conference of the present invention.
[0059] The realization of the purpose, functional features and advantages of the present invention will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0060] It should be understood that the specific embodiments described herein are only used to explain the present invention, and are not used to limit the present invention.
[0061] like Figure 1 As shown, Figure 1 It is a schematic diagram of the device structure of the hardware operating environment involved in the embodiment of the present invention.
[0062] The device in the embodiment of the present invention may be a PC or a server device.
[0063] like Figure 1As shown, the device may include: a processor 1001, such as a CPU, a network interface 1004, a user interface 1003, a memory 1005, and a communication bus 1002. Among them, the communication bus 1002 is used to realize the connection and communication between these components. The user interface 1003 may include a display screen (Display), an input unit such as a keyboard (Keyboard), and the optional user interface 1003 may also include a standard wired interface and a wireless interface. The network interface 1004 may optionally include a standard wired interface and a wireless interface (such as a WI-FI interface). The memory 1005 may be a high-speed RAM memory, or a stable memory (non-volatile memory), such as a disk memory. The memory 1005 may also be a storage device independent of the aforementioned processor 1001.
[0064] Those skilled in the art will understand that Figure 1 The device structure shown in the figure does not constitute a limitation of the device, and may include more or less components than shown in the figure, or combine certain components, or arrange the components differently.
[0065] like Figure 1 As shown, the memory 1005 as a computer storage medium may include an operating system, a network communication module, a user interface module, and a packet loss retransmission program.
[0066] Among them, the operating system is a program for managing and controlling portable storage devices and software resources, supporting the operation of network communication modules, user interface modules, packet loss retransmission programs and other programs or software; the network communication module is used to manage and control the network interface 1002; the user interface module is used to manage and control the user interface 1003.
[0067] exist Figure 1 In the storage device shown, the storage device calls the packet loss retransmission program stored in the memory 1005 through the processor 1001, and executes the operations in each embodiment of the packet loss retransmission method described below.
[0068] Based on the above hardware structure, an embodiment of the packet loss retransmission method of the present invention is proposed.
[0069] Reference Figure 2 , Figure 2 This is a flow chart of a first embodiment of a packet loss retransmission method of the present invention, wherein the method comprises:
[0070] Step S10, upon receiving a packet loss retransmission instruction sent by the first client, determining an uplink bandwidth and a packet loss rate and a normal bit rate of each video packet to be retransmitted corresponding to the first client;
[0071] Step S20, determining the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determining the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate;
[0072] Step S30: sending each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate.
[0073] The packet loss retransmission method of this embodiment is applied to a video conference server of a communication service organization. During the service process of a video conference, the video conference server communicates with multiple clients. Each client sends its own video packet to the video conference server, and the video conference forwards the video packet to other clients. For convenience of description, the server is taken as an example for explanation. When the server receives the packet loss retransmission instruction sent by the first client, it obtains the transmission parameters of the first client, determines the normal bit rate, delay bandwidth, packet loss bandwidth and packet loss rate with the first client according to the transmission parameters, and determines the uplink bandwidth of the server according to the delay bandwidth, packet loss bandwidth and packet loss rate. The server determines the uplink bandwidth of the server according to its own uplink bandwidth, the loss bandwidth of the first client and the packet loss rate. The server adds the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adds the maximum retransmission bit rates of the second clients corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates; compares the sum of the retransmission bit rates with the sum of the maximum retransmission bit rates to obtain a second comparison result, and according to the second comparison result, directly sends each video packet to be retransmitted to the first client, or sends each video packet to be retransmitted to the first client after adjusting the retransmission bit rates of the corresponding video packets to be retransmitted.
[0074] The packet loss retransmission method of this embodiment, when receiving the packet loss retransmission instruction sent by the first client, determines the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client; determines the retransmission bit rate of each video packet to be retransmitted corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determines the maximum retransmission bit rate of the second client corresponding to each video packet to be retransmitted according to the packet loss rate and the retransmission bit rate; sends each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate; the present invention adjusts the retransmission bit rate of the video packet to be retransmitted that needs to be adjusted according to the maximum retransmission bit rate of each client, and then sends each video packet to be retransmitted to the first client according to the adjusted retransmission bit rate and the maximum retransmission bit rate of each client, thereby avoiding excessively high retransmission bit rate and thus reducing the freeze and delay of the video during packet loss retransmission, and improving the practicality of packet loss retransmission.
[0075] The following is a detailed description of each step:
[0076] Step S10, upon receiving a packet loss retransmission instruction sent by the first client, determining an uplink bandwidth and a packet loss rate and a normal bit rate of each video packet to be retransmitted corresponding to the first client;
[0077] In this embodiment, the video conferencing type supported by the server is SFU, and multiple clients access the server for communication connection. The upstream stream of each client sending data to the server supports Simulcast or SVC, where Simulcast is multi-stream, supporting multiple video streams with different resolutions, frame rates or bit rates to be uploaded to the server at the same time, and SVC is a video stream with different frame rates and resolutions in a single bit stream uploaded by the client to the server; regardless of whether packet loss occurs, the server will count the bit rates of each layer of Simulcast or SVC video streams sent by each client, and the bit stream filter in the server selects a suitable video stream according to the upstream bandwidth and sends it to the corresponding client; when packet loss occurs in a client, the client is the first client, and the first client sends a packet loss retransmission instruction to the server. When the server receives the packet loss retransmission instruction sent by the first client, it determines the uplink bandwidth and the packet loss rate and normal bit rate with the first client. It should be noted that the uplink bandwidth is the bandwidth when the server sends a normal video stream or a video packet to be retransmitted to the first client; the packet loss retransmission instruction (NACK request) is a negative feedback, and the receiver notifies the sender only when it has not received the data; the first client may receive video packets from multiple clients, so the video packets corresponding to each client will have a corresponding packet loss rate.
[0078] Specifically, step S10 includes:
[0079] Step a, determining the normal bit rate of each to-be-retransmitted video packet corresponding to the first client according to the packet loss retransmission instruction;
[0080] Step b, obtaining the transmission parameters of the first client, determining the delay bandwidth, packet loss bandwidth and packet loss rate of each video packet to be retransmitted corresponding to the first client according to the transmission parameters, and determining the uplink bandwidth according to the delay bandwidth, the packet loss bandwidth and the packet loss rate.
[0081] In step a to step b, after receiving the packet loss retransmission instruction sent by the first client, the server determines the normal bit rate of each video packet to be retransmitted corresponding to the first client according to the packet loss retransmission instruction, and the server obtains the transmission parameters sent by the first client to the server in real time, and determines the delay bandwidth, packet loss bandwidth and packet loss rate of each video packet to be retransmitted corresponding to the first client according to the transmission parameters, and determines the uplink bandwidth of the server according to the delay bandwidth, packet loss bandwidth and packet loss rate; for example, the server determines to collect statistics on the video stream normally sent by the first client according to the packet loss retransmission instruction, determines the normal bit rate of the first client, and receives RTCP / REMB (receiver maximum bit rate estimation) or RTCP / Transport-cc (Transport-wide Congestion Estimation) in the transmission parameters sent by the first client in real time. The invention relates to a method for controlling the transmission of a video packet to be retransmitted by the first client, and a method for controlling the transmission of a video packet to be retransmitted by the first client. The method comprises: calculating a delay bandwidth of each video packet to be retransmitted corresponding to the first client by receiving RTCP / RR (receive report) in the transmission parameters sent in real time by the first client, and calculating a packet loss bandwidth and a packet loss rate of each video packet to be retransmitted corresponding to the first client, and obtaining the uplink bandwidth of the server according to the delay bandwidth, packet loss bandwidth and packet loss rate of each video packet to be retransmitted.
[0082] Step S20, determining the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determining the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate;
[0083] In this embodiment, the server determines the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determines the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate; it can be understood that, since each second client communicating with the server will simultaneously send the same video stream with different resolutions, frame rates or bit rates to the server when sending a video stream to the server, when the first client loses the video stream, the video stream cached in the server is the first client The server selects the retransmission bit rate corresponding to the video packet to be retransmitted from the same video streams with different resolutions, frame rates or bit rates according to the uplink bandwidth calculated in the previous step, combined with the packet loss rate and normal bit rate of the video packet to be retransmitted, and determines the maximum retransmission bit rate of the second client corresponding to the video packet to be retransmitted according to the packet loss rate and retransmission bit rate of the video packet to be retransmitted. The calculation principle is RMn / Bitraten=Lost, where RMn is the maximum retransmission bit rate, Bitraten is the retransmission bit rate, and Lost is the packet loss rate.
[0084] Furthermore, in general, the first client will correspond to multiple video packets to be retransmitted, and at this time, it is necessary to calculate the retransmission bit rate corresponding to each video packet to be retransmitted, and calculate the maximum retransmission bit rate corresponding to the second client corresponding to each video packet to be retransmitted. The specific steps are the same as the above steps, and will not be repeated here.
[0085] Step S30: sending each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate.
[0086] In this embodiment, the server sends each video packet to be retransmitted to the first client according to the determined retransmission bit rate of each video packet to be retransmitted and the maximum retransmission bit rate corresponding to the second client corresponding to each video packet to be retransmitted.
[0087] Specifically, step S30 includes:
[0088] Step c, adding the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adding the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates;
[0089] In this step, the server adds the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adds the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates; it can be understood that when the first client corresponds to only one video packet to be retransmitted, there is no need to calculate the sum of the retransmission bit rates and the sum of the maximum retransmission bit rates. When the first client corresponds to multiple video packets to be retransmitted, the retransmission bit rates of each video packet to be retransmitted are added to obtain the sum of the retransmission bit rates, and the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted are added to obtain the sum of the maximum retransmission bit rates.
[0090] Step d: Compare the sum of the retransmission bit rates with the sum of the maximum retransmission bit rates to obtain a second comparison result, and send each video packet to be retransmitted to the first client according to the second comparison result.
[0091] In this step, the server compares the sum of the retransmission bit rates with the sum of the maximum retransmission bit rates to obtain a second comparison result. When the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, the server sends each video packet to be retransmitted to the first client; when the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, it is necessary to calculate the queuing time of each video packet to be retransmitted, and determine whether to send each video packet to be retransmitted to the first client based on the queuing time.
[0092] Further, according to the second comparison result, the step of sending each video packet to be retransmitted to the first client includes:
[0093] Step d1: if the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0094] Step d2, if the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, then calculate the queuing time of each video packet to be retransmitted in the video sending buffer, compare the queuing time with the preset queuing time threshold, and obtain a third comparison result; and according to the third comparison result, send each video packet to be retransmitted to the first client.
[0095] In step d1 to step d2, if the server obtains the second comparison result that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in the video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer; if the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, the estimated sending timestamp and the current timestamp of the video sending buffer corresponding to each video packet to be retransmitted are obtained, and then the queuing time of each video packet to be retransmitted in the video sending buffer is calculated respectively, and the queuing time is compared with the preset queuing time threshold to obtain a third comparison result. When the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is sent to the first client through the video sending buffer; when the third comparison result is that there are video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold, it is necessary to adjust the retransmission bit rate of the video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold, and re-execute after the adjustment: determine the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client and subsequent steps, and then determine whether to send each video packet to be retransmitted to the first client.
[0096] Further, according to the third comparison result, the step of sending the set of video packets to be retransmitted to the first client includes:
[0097] Step d21: if the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0098] Step d22, if the third comparison result is that there are video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold, then the video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold are used as target video packets to be retransmitted, and the retransmission bit rate of the target video packets to be retransmitted is reduced, and the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client is re-executed.
[0099] In step d21 to step d22, if the server obtains the third comparison result that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, then each video packet to be retransmitted is cached in the video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer; if the third comparison result is that there are video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold, then the video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold are used as target video packets to be retransmitted, and the retransmission bit rate of the target video packets to be retransmitted is reduced, and the following steps are re-executed: determining the uplink bandwidth and The packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client and the subsequent steps, until the second comparison result is obtained that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, then each video packet to be retransmitted is cached in the video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer, or until the third comparison result is obtained that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, then each video packet to be retransmitted is cached in the video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer. It should be noted that when there are multiple target video packets to be retransmitted whose queuing time is not less than the preset queuing time threshold, the retransmission bit rate of each target video packet to be retransmitted is compared with the maximum retransmission bit rate of the second client corresponding to each target video packet to be retransmitted, and the target video packet to be retransmitted whose retransmission bit rate exceeds the maximum retransmission bit rate is selected, and the retransmission bit rate of the target video packet to be retransmitted is reduced.
[0100] Furthermore, the step of caching each video packet to be retransmitted in a video sending buffer, and sending each video packet to be retransmitted to the first client through the video sending buffer comprises:
[0101] Step e, caching each video packet to be retransmitted in a sending queue in a video sending buffer, and placing each video packet to be retransmitted before a normal video packet to be sent in the sending queue;
[0102] Step f: sending each video packet to be retransmitted to the first client through the video sending buffer according to a first-in-first-out strategy.
[0103] In step e to step f, the server caches each video packet to be retransmitted in a sending queue in the video sending buffer, and places each video packet to be retransmitted before a normal video packet to be sent in the sending queue, and sends each video packet to be retransmitted to the first client through the video sending buffer according to a first-in-first-out strategy. Figure 3 As shown, Figure 3 This is a schematic diagram of the sending queue of the video sending buffer. The normal RTP packet is the video packet that the server needs to forward normally to the first client. The retransmitted RTP packet is the video packet to be retransmitted that the server retransmits to the first client. The normal RTP packet and the retransmitted RTP packet are arranged according to the first-in-first-out strategy, and the retransmitted RTP packet is sent in front of the normal RTP packet to ensure that the first client obtains the retransmitted RTP packet as quickly as possible to restore the video and reduce delays or freezes.
[0104] When the server of this embodiment receives the packet loss retransmission instruction sent by the first client, it obtains the transmission parameters of the first client, determines the normal bit rate, delay bandwidth, packet loss bandwidth and packet loss rate with the first client according to the transmission parameters, and determines the uplink bandwidth of the server according to the delay bandwidth, packet loss bandwidth and packet loss rate; the server determines the retransmission bit rate of each video packet to be retransmitted corresponding to the first client according to its own uplink bandwidth, the packet loss rate of the first client and the normal bit rate, and determines the maximum retransmission bit rate of the second client corresponding to each video packet to be retransmitted according to the packet loss rate and the retransmission bit rate; the server adds the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adds the maximum retransmission bit rate of the second client corresponding to each video packet to be retransmitted The maximum retransmission bit rates are added to obtain the sum of the maximum retransmission bit rates; the sum of the retransmission bit rates is compared with the sum of the maximum retransmission bit rates to obtain a second comparison result, and according to the second comparison result, each video packet to be retransmitted is directly sent to the first client, or the retransmission bit rate of the corresponding video packet to be retransmitted is adjusted and then each video packet to be retransmitted is sent to the first client; the present invention adjusts the retransmission bit rate of the video packet to be retransmitted that needs to be adjusted according to the maximum retransmission bit rate of each client, and then according to the adjusted retransmission bit rate and the maximum retransmission bit rate of each client, each video packet to be retransmitted is sent to the first client, thereby avoiding excessively high retransmission bit rate and thus reducing the freeze and delay of the video during packet loss retransmission, thereby improving the practicability of packet loss retransmission.
[0105] Furthermore, based on the first embodiment of the packet loss retransmission method of the present invention, a second embodiment of the packet loss retransmission method of the present invention is proposed.
[0106] The second embodiment of the packet loss retransmission method is different from the first embodiment of the packet loss retransmission method in that, before the step of determining the uplink bandwidth and the packet loss rate and the normal bit rate of each to-be-retransmitted video packet corresponding to the first client, the method includes:
[0107] Step g, determining the current request timestamp, the last request timestamp and the current retransmission count of each video packet to be retransmitted corresponding to the first client according to the packet loss retransmission instruction;
[0108] Step h, determining the request time interval of each video packet to be retransmitted according to the current request timestamp and the last request timestamp, and comparing the request time interval with a preset request time threshold, and comparing the current number of retransmissions with a preset number of retransmissions threshold, to obtain a first comparison result;
[0109] Step i: If the first comparison result is that the request time interval of each video packet to be retransmitted is greater than the preset request time threshold, and the current retransmission number of each video packet to be retransmitted is less than the preset retransmission number threshold, then execute the step: determine the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client.
[0110] In this embodiment, when the server receives the packet loss retransmission instruction from the first client, the server determines the current request timestamp, the last request timestamp and the current retransmission number of each video packet to be retransmitted corresponding to the first client according to the packet loss retransmission instruction, determines the request time interval of each video packet to be retransmitted according to the current request timestamp and the last request timestamp, compares the request time interval with the preset request time threshold, and compares the current retransmission number with the preset retransmission number threshold to obtain a first comparison result. If the server obtains the first comparison result as the request time of each video packet to be retransmitted, If the server obtains a first comparison result that there is a video packet to be retransmitted whose request time interval is less than the preset request time threshold, or the current retransmission number is greater than the preset retransmission number threshold, the video packet to be retransmitted will not be retransmitted to the first client, so as to reduce unnecessary retransmissions, reduce the retransmission bit rate, and thus reduce the freeze and delay of the video during packet loss and retransmission.
[0111] In specific implementation, Figure 4 As shown, Figure 4The schematic diagram of the video packet flow framework of a video conference is shown in the figure, wherein client A, client B and client C are second clients; the video conference server includes an RTP video receiving buffer, a code stream filter, an RTP video sending buffer (video sending buffer) and a NACK processor (used to receive a packet loss retransmission instruction RTCP / NACK sent by the first client); client D is the first client; client A, client B and client C normally send video packets to the video conference server, and the upstream of each client sending data to the video conference server supports Simulcast or SVC, wherein Simulcast is multi-stream, supporting multiple video packets with different resolutions, frame rates or code rates to be uploaded to the server at the same time, and SVC is a video packet with different frame rates and resolutions in a single code stream uploaded by the client to the server. When client D sends a packet loss request instruction (RTCP / NACK) to the video conference server, the NACK processor of the video conference server receives the packet loss request instruction, determines the video packet to be retransmitted corresponding to client D according to the packet loss request instruction, filters the video packet to be retransmitted through the code stream filter, and sends the filtered video packet to be retransmitted to client D through the RTP video sending buffer.
[0112] Specifically, Figure 5 As shown, Figure 5 This is a schematic diagram of the video conferencing packet loss retransmission framework. When the video conferencing server receives the packet loss request instruction (RTCP / NACK) and transmission parameters (RTCP / REMB, RTCP / Transport-cc, RTCP / RR) from the client, the video conferencing server performs bandwidth estimation, bandwidth allocation, maximum retransmission bit rate allocation, NACK processing, Simulcast / SVC stream screening, and reduces the video layer when necessary (reduces the retransmission bit rate of the video packet to be retransmitted). Finally, the video packet to be retransmitted with the determined retransmission bit rate is placed in the video sending buffer and sent by RTP to send the video packet to be retransmitted to the client.
[0113] The present invention also provides a packet loss retransmission device. The packet loss retransmission device of the present invention comprises:
[0114] A receiving module, configured to determine an uplink bandwidth and a packet loss rate and a normal bit rate of each to-be-retransmitted video packet corresponding to the first client upon receiving a packet loss retransmission instruction sent by the first client;
[0115] A determination module, configured to determine the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determine the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate;
[0116] The retransmission module is used to send each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate.
[0117] Furthermore, the receiving module is also used for:
[0118] According to the packet loss retransmission instruction, determine the current request timestamp, the last request timestamp and the current retransmission number of each video packet to be retransmitted corresponding to the first client;
[0119] Determine a request time interval of each to-be-retransmitted video packet according to the current request timestamp and the last request timestamp, compare the request time interval with a preset request time threshold, and compare the current number of retransmissions with a preset number of retransmissions threshold to obtain a first comparison result;
[0120] If the first comparison result is that the request time interval of each video packet to be retransmitted is greater than the preset request time threshold, and the current retransmission number of each video packet to be retransmitted is less than the preset retransmission number threshold, then execute the step of: determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client.
[0121] Furthermore, the receiving module is also used for:
[0122] Determine, according to the packet loss retransmission instruction, a normal bit rate of each to-be-retransmitted video packet corresponding to the first client;
[0123] Acquire transmission parameters of the first client, determine a delay bandwidth, a packet loss bandwidth, and a packet loss rate of each to-be-retransmitted video packet corresponding to the first client according to the transmission parameters, and determine an uplink bandwidth according to the delay bandwidth, the packet loss bandwidth, and the packet loss rate.
[0124] Furthermore, the retransmission module is also used for:
[0125] Adding the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adding the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates;
[0126] The sum of the retransmission code rates is compared with the sum of the maximum retransmission code rates to obtain a second comparison result, and each video packet to be retransmitted is sent to the first client according to the second comparison result.
[0127] Furthermore, the retransmission module is also used for:
[0128] If the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0129] If the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, the queuing time of each video packet to be retransmitted in the video sending buffer is calculated respectively, and the queuing time is compared with a preset queuing time threshold to obtain a third comparison result, and based on the third comparison result, each video packet to be retransmitted is sent to the first client.
[0130] Furthermore, the retransmission module is also used for:
[0131] If the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer;
[0132] If the third comparison result is that there is a video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold, the video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold is used as the target video packet to be retransmitted, and the retransmission bit rate of the target video packet to be retransmitted is reduced, and the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client is re-executed.
[0133] Furthermore, the retransmission module is also used for:
[0134] Buffering each video packet to be retransmitted in a sending queue in a video sending buffer, and placing each video packet to be retransmitted before a normal video packet to be sent in the sending queue;
[0135] Each video packet to be retransmitted is sent to the first client through the video sending buffer according to a first-in-first-out strategy.
[0136] The invention also provides a packet loss retransmission system.
[0137] The packet loss retransmission system comprises: a memory, a processor and a packet loss retransmission program stored in the memory and executable on the processor. When the packet loss retransmission program is executed by the processor, the steps of the packet loss retransmission method described above are implemented.
[0138] Among them, the method implemented when the packet loss retransmission program running on the processor is executed can refer to the various embodiments of the packet loss retransmission method of the present invention, and will not be repeated here.
[0139] The present invention also provides a computer-readable storage medium.
[0140] The computer-readable storage medium stores a packet loss retransmission program, and when the packet loss retransmission program is executed by the processor, the steps of the packet loss retransmission method described above are implemented.
[0141] Among them, the method implemented when the packet loss retransmission program running on the processor is executed can refer to the various embodiments of the packet loss retransmission method of the present invention, and will not be repeated here.
[0142] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or system including a series of requirements includes not only those requirements, but also other requirements not explicitly listed, or also includes requirements inherent to such process, method, article or system. In the absence of more restrictions, the requirements defined by the sentence "including a ..." do not exclude the existence of other identical requirements in the process, method, article or system including the requirements.
[0143] The serial numbers of the above embodiments of the present invention are only for description and do not represent the advantages or disadvantages of the embodiments.
[0144] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes a number of instructions for a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the methods described in each embodiment of the present invention.
[0145] The above are only preferred embodiments of the present invention, and are not intended to limit the patent scope of the present invention. Any equivalent structure or equivalent process transformation made using the contents of the present invention specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present invention.
Claims
1. A packet loss retransmission method, characterized in that: The packet loss retransmission method comprises the following steps: Upon receiving a packet loss retransmission instruction sent by a first client, determining an uplink bandwidth and a packet loss rate and a normal bit rate of each to-be-retransmitted video packet corresponding to the first client; Determine the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determine the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate; The maximum retransmission bit rate is calculated based on the principle of RMn / Bitraten=Lost, where RMn is the maximum retransmission bit rate, Bitraten is the retransmission bit rate, and Lost is the packet loss rate. According to the retransmission bit rate and the maximum retransmission bit rate, sending each video packet to be retransmitted to the first client; The step of sending each to-be-retransmitted video packet to the first client according to the retransmission bit rate and the maximum retransmission bit rate comprises: Adding the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adding the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates; Comparing the sum of the retransmission bit rates with the sum of the maximum retransmission bit rates to obtain a second comparison result, and sending each to-be-retransmitted video packet to the first client according to the second comparison result; The step of sending each to-be-retransmitted video packet to the first client according to the second comparison result includes: If the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer; If the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, respectively calculating the queuing time of each to-be-retransmitted video packet in the video sending buffer, comparing the queuing time with a preset queuing time threshold to obtain a third comparison result, and sending each to-be-retransmitted video packet to the first client according to the third comparison result; The step of sending the set of video packets to be retransmitted to the first client according to the third comparison result includes: If the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer; If the third comparison result is that there is a video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold, the video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold is used as the target video packet to be retransmitted, and the retransmission bit rate of the target video packet to be retransmitted is reduced, and the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client is re-executed.
2. The packet loss retransmission method according to claim 1, characterized in that: Before the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each to-be-retransmitted video packet corresponding to the first client, the method includes: According to the packet loss retransmission instruction, determine the current request timestamp, the last request timestamp and the current retransmission number of each video packet to be retransmitted corresponding to the first client; Determine a request time interval of each to-be-retransmitted video packet according to the current request timestamp and the last request timestamp, compare the request time interval with a preset request time threshold, and compare the current number of retransmissions with a preset number of retransmissions threshold to obtain a first comparison result; If the first comparison result is that the request time interval of each video packet to be retransmitted is greater than the preset request time threshold, and the current retransmission number of each video packet to be retransmitted is less than the preset retransmission number threshold, then execute the step of: determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client.
3. The packet loss retransmission method according to claim 1, wherein: The step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each to-be-retransmitted video packet corresponding to the first client comprises: Determine, according to the packet loss retransmission instruction, a normal bit rate of each to-be-retransmitted video packet corresponding to the first client; Acquire transmission parameters of the first client, determine a delay bandwidth, a packet loss bandwidth, and a packet loss rate of each to-be-retransmitted video packet corresponding to the first client according to the transmission parameters, and determine an uplink bandwidth according to the delay bandwidth, the packet loss bandwidth, and the packet loss rate.
4. The packet loss retransmission method as claimed in claim 1, characterized in that: The step of caching each video packet to be retransmitted in a video sending buffer, and sending each video packet to be retransmitted to the first client through the video sending buffer comprises: Buffering each video packet to be retransmitted in a sending queue in a video sending buffer, and placing each video packet to be retransmitted before a normal video packet to be sent in the sending queue; Each video packet to be retransmitted is sent to the first client through the video sending buffer according to a first-in-first-out strategy.
5. A packet loss retransmission device, characterized in that: The packet loss retransmission device comprises: A receiving module, configured to determine an uplink bandwidth and a packet loss rate and a normal bit rate of each to-be-retransmitted video packet corresponding to the first client upon receiving a packet loss retransmission instruction sent by the first client; A determination module, configured to determine the retransmission bit rate of each to-be-retransmitted video packet corresponding to the first client according to the uplink bandwidth, the packet loss rate and the normal bit rate, and determine the maximum retransmission bit rate of the second client corresponding to each to-be-retransmitted video packet according to the packet loss rate and the retransmission bit rate; The maximum retransmission bit rate is calculated based on the principle of RMn / Bitraten=Lost, where RMn is the maximum retransmission bit rate, Bitraten is the retransmission bit rate, and Lost is the packet loss rate. A retransmission module, configured to send each video packet to be retransmitted to the first client according to the retransmission bit rate and the maximum retransmission bit rate; Wherein, the retransmission module is also used for: Adding the retransmission bit rates of each video packet to be retransmitted to obtain the sum of the retransmission bit rates, and adding the maximum retransmission bit rates of the second client corresponding to each video packet to be retransmitted to obtain the sum of the maximum retransmission bit rates; Comparing the sum of the retransmission bit rates with the sum of the maximum retransmission bit rates to obtain a second comparison result, and sending each to-be-retransmitted video packet to the first client according to the second comparison result; Wherein, the retransmission module is also used for: If the second comparison result is that the sum of the retransmission bit rates is not greater than the sum of the maximum retransmission bit rates, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer; If the second comparison result is that the sum of the retransmission bit rates is greater than the sum of the maximum retransmission bit rates, respectively calculating the queuing time of each to-be-retransmitted video packet in the video sending buffer, comparing the queuing time with a preset queuing time threshold to obtain a third comparison result, and sending each to-be-retransmitted video packet to the first client according to the third comparison result; Wherein, the retransmission module is also used for: If the third comparison result is that the queuing time of each video packet to be retransmitted is less than the preset queuing time threshold, each video packet to be retransmitted is cached in a video sending buffer, and each video packet to be retransmitted is sent to the first client through the video sending buffer; If the third comparison result is that there is a video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold, the video packet to be retransmitted whose queuing time is not less than the preset queuing time threshold is used as the target video packet to be retransmitted, and the retransmission bit rate of the target video packet to be retransmitted is reduced, and the step of determining the uplink bandwidth and the packet loss rate and normal bit rate of each video packet to be retransmitted corresponding to the first client is re-executed.
6. A packet loss retransmission system, characterized in that: The packet loss retransmission system comprises: a memory, a processor, and a packet loss retransmission program stored in the memory and executable on the processor. When the packet loss retransmission program is executed by the processor, the steps of the packet loss retransmission method according to any one of claims 1 to 4 are implemented.
7. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a packet loss retransmission program, and when the packet loss retransmission program is executed by a processor, the steps of the packet loss retransmission method according to any one of claims 1 to 4 are implemented.
Citation Information
Patent Citations
Video communication method, device, system, server, clients and storage medium
CN112055165A
Audio code rate determination method and device, storage medium and electronic equipment
CN113450808A