Data sending method and device, storage medium and electronic equipment

By determining data transmission quality indicators in the streaming node and dynamically adjusting the data transmission rate and sliding window size, the problem of mismatch between the data transmission rate and network bandwidth at the streaming end is solved, thereby improving the data transmission efficiency and user experience of the live streaming system.

CN115988577BActive Publication Date: 2026-02-03CHINA TELECOM CORP LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111204869.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-15
Publication Date
2026-02-03
Estimated Expiration
2041-10-15

AI Technical Summary

Technical Problem

In live streaming systems, the data transmission rate of the streaming end is not matched with changes in network bandwidth, causing the system to be unable to adapt to network fluctuations and affecting the quality of the live stream.

Method used

The push node dynamically adjusts the data transmission rate and sliding window size by determining data transmission quality indicators to match changes in network bandwidth, thereby achieving real-time dynamic adjustment of the data transmission rate.

Benefits of technology

It improved the data transmission efficiency of the live streaming system, reduced end-to-end latency, and enhanced the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115988577B_ABST
    Figure CN115988577B_ABST
Patent Text Reader

Abstract

The present disclosure provides a data sending method and device, a storage medium and an electronic device, and relates to the technical field of communication. The data sending method comprises: determining a data sending quality index of a push node in a previous data sending period, wherein the data sending quality index represents a matching degree between a data sending rate of the push node and network bandwidth; determining a target data volume of the push node in a next data sending period according to the data sending quality index; and sending data with the target data volume to a streaming server device in the next data sending period. The present disclosure solves the problem that the push node cannot match the data sending rate with the network bandwidth change in the related art, and realizes dynamic matching between the data sending rate of the push node and the network bandwidth change.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of communication technology, and in particular to a data transmission method, apparatus, storage medium and electronic device. Background Technology

[0002] Currently, with the development of the internet and the widespread adoption of broadband applications, streaming video services are becoming a hot topic in network applications. Streaming live broadcast technology is a technology that transmits multimedia data in real time over the network. The user base for online live broadcasts and network videos is growing rapidly, providing users with various interactive services, including digital television. These scenarios place high demands on latency, especially in interactive scenarios such as large-scale sporting events, live-streaming e-commerce, and video conferencing, where latency requirements are even more stringent. Simultaneously, with the widespread adoption of 5G (5th Generation Mobile Communication Technology), MEC (Multi-Access Edge Computing) technology is being widely applied. MEC provides an IT service environment and cloud computing capabilities at the edge of the mobile network, enabling the localization, proximity, and distributed deployment of applications, services, and content. This, to some extent, addresses the business needs of scenarios such as enhanced mobile broadband, low latency and high reliability, and large-scale machine-type communication terminal connections under 5G. It is evident that MEC meets the requirements of high bandwidth and low latency for live streaming services, and deploying live streaming SaaS (Software-as-a-Service) applications on the MEC platform can provide better service quality assurance.

[0003] A live streaming system involves a streaming client, a server, and a playback client. The streaming client is the source of live data production, primarily responsible for audio and video data acquisition, encoding, and transmission. The server is mainly responsible for receiving audio and video data sent by the streaming client and processing the media data as needed. The playback client is mainly responsible for receiving media data from the server and performing audio and video decoding and rendering. It is evident that the service quality of the streaming client directly affects the overall performance of the live streaming system. Currently, the streaming client of a live streaming system uses a uniform data transmission rate, which cannot adapt well to changes in network bandwidth when network fluctuations are frequent, and cannot match the data transmission rate with changes in network bandwidth. Summary of the Invention

[0004] This disclosure provides a data transmission method, apparatus, storage medium, and electronic device, which at least to some extent overcomes the problem that the streaming end in related technologies cannot match the data transmission rate with changes in network bandwidth.

[0005] According to a first aspect of this disclosure, a data transmission method is provided, comprising: determining a data transmission quality index of a streaming node in a previous data transmission cycle, wherein the data transmission quality index represents the degree of matching between the data transmission rate of the streaming node and the network bandwidth; determining a target data volume of the streaming node in the next data transmission cycle based on the data transmission quality index; and transmitting the target data volume to a server device in the next data transmission cycle.

[0006] Optionally, determining the target data volume for the next data transmission cycle of the streaming node based on the data transmission quality index includes: determining whether the data transmission quality index meets a preset condition; if the data transmission quality index meets the preset condition, increasing the preset data volume based on the data transmission volume of the previous data transmission cycle to obtain the target data volume; if the data transmission quality index does not meet the preset condition, reducing the data transmission volume based on the data transmission volume of the previous data transmission cycle, so that the target data volume is equal to the amount of data actually transmitted by the streaming node in a data transmission cycle when the data transmission quality index meets the preset condition.

[0007] Optionally, the streaming node maintains a sliding window and sends the target data volume to the server device in the next data sending cycle, including: increasing or decreasing the size of the sliding window according to the target data volume so that the data sending volume of the sliding window is the target data volume; and sending the data in the sliding window to the server device when the next data sending cycle arrives.

[0008] Optionally, the streaming node maintains a sliding window and determines the target data volume for the next data transmission cycle based on the data transmission quality index, including: in response to the data transmission quality index meeting the preset condition, increasing the size of the sliding window by a preset step size to increase the data transmission volume of the sliding window by a preset data volume; in response to the data transmission quality index not meeting the preset condition, decreasing the size of the sliding window to make the data transmission volume of the sliding window equal to the actual data volume transmitted by the streaming node in a data transmission cycle when the data transmission quality index meets the preset condition.

[0009] Optionally, determining the data transmission quality index of the streaming node in the previous data transmission period includes: determining the first number of valid data packets actually sent by the streaming node in the previous data transmission period and the second number of data packets that the streaming node should send according to the bit rate in the previous data transmission period; calculating the ratio of the first number to the second number to obtain the data transmission quality index.

[0010] Optionally, the preset condition is that the data transmission quality index is equal to 1.

[0011] Optionally, the streaming node maintains a sliding window, and the streaming node periodically sends the data within the sliding window to the server device according to the data sending cycle. When the sliding window slides, the data at the head of the sliding window is deleted from the sliding window, and a new space is generated at the tail of the sliding window to store the newly generated data. The method further includes: before determining the data sending quality index of the streaming node in the previous data sending cycle, calculating the initial data sending volume of the sliding window according to the preset bitrate, the preset data sending cycle, and the size of a single data block.

[0012] According to a second aspect of this disclosure, a data transmission apparatus is also provided, comprising: a first determining module, configured to determine a data transmission quality index of a streaming node in the previous data transmission cycle, wherein the data transmission quality represents the degree of matching between the data transmission rate of the streaming node and the network bandwidth; a second determining module, configured to determine a target data volume of the streaming node in the next data transmission cycle based on the data transmission quality index; and a transmission module, configured to transmit the target data volume to a streaming server device in the next data transmission cycle.

[0013] According to a third aspect of this disclosure, an electronic device is also provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to perform any of the data transmission methods provided in the embodiments of this disclosure by executing the executable instructions.

[0014] According to a fourth aspect of this disclosure, a computer-readable storage medium is also provided, on which a computer program is stored, which, when executed by a processor, implements any of the data transmission methods provided in the embodiments of this disclosure.

[0015] The data transmission method, apparatus, storage medium, and electronic device of this disclosure embodiment determine the data transmission quality index of the previous cycle when the streaming node sends data to the server device. This index can represent the degree of matching between the data transmission rate of the streaming node and the network bandwidth. Based on this index, the data transmission volume of the streaming node in the next cycle can be determined. When the next cycle arrives, the determined data transmission volume is sent to the server device. Thus, by dynamically adjusting the data transmission rate of the streaming node in real time, the data transmission rate of the streaming node can be dynamically matched with the changes in network bandwidth.

[0016] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description

[0017] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure. It is obvious that the drawings described below are merely some embodiments of this disclosure, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort.

[0018] Figure 1 This is a flowchart of a data transmission method according to an embodiment of the present disclosure;

[0019] Figure 2 This is a flowchart illustrating the determination of the target data volume of the next data transmission cycle of the push stream node based on data transmission quality indicators, according to an embodiment of the present disclosure.

[0020] Figure 3 This is a flowchart illustrating the process of sending a target amount of data to a server device in the next data transmission cycle according to an embodiment of the present disclosure;

[0021] Figure 4 This is a flowchart illustrating the determination of the target transmission volume of the push stream node in the next data transmission cycle based on data transmission quality indicators, according to an embodiment of the present disclosure.

[0022] Figure 5 This is a flowchart illustrating the process of determining the data transmission quality indicators of a streaming node in the previous data transmission cycle, according to an embodiment of this disclosure.

[0023] Figure 6 This is a flowchart of a data transmission method according to an embodiment of the present disclosure;

[0024] Figure 7 This is a schematic diagram of a sliding window according to an embodiment of the present disclosure;

[0025] Figure 8 This is a flowchart of a data transmission method according to an embodiment of the present disclosure;

[0026] Figure 9 This is a schematic diagram of the structure of a data transmission apparatus according to an embodiment of the present disclosure; and

[0027] Figure 10 This is a schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure. Detailed Implementation

[0028] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, they are provided so that this disclosure will be more comprehensive and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0029] Furthermore, the accompanying drawings are merely illustrative of this disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted. Some block diagrams shown in the drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities may be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0030] In live streaming systems, if the streaming client cannot send the collected media data to the server in a timely and efficient manner, it will affect the overall performance of the system, leading to problems such as stuttering, excessively long buffering times for the user's first screen, and high end-to-end latency. When the streaming client is a mobile client (such as a mobile phone), it is affected by external conditions such as changes in network signal strength. A key issue to address is how to efficiently send media data to the server in a dynamic network environment, ensuring that the data transmission rate matches network bandwidth changes while fully utilizing the streaming client's uplink bandwidth. Live streaming systems often use a uniform data transmission rate, which is not well-suited to network bandwidth fluctuations. If the transmission rate is too slow, the streaming client's uplink bandwidth cannot be fully utilized to reduce transmission latency; if the transmission rate is too fast, data congestion will cause media data to accumulate at the streaming client, affecting the real-time performance of the live data transmission, increasing end-to-end latency, and negatively impacting the user experience of the entire live streaming system. Based on this, the present disclosure proposes a data transmission method in which the streaming end can dynamically adjust the data transmission rate in real time according to changes in data transmission quality. This allows for reducing the transmission rate when network bandwidth deteriorates to avoid data congestion, and increasing the transmission rate when network bandwidth recovers to a good level. This enables full utilization of the uplink bandwidth of the streaming node to reduce transmission latency, thereby reducing end-to-end latency.

[0031] Figure 1 This is a flowchart of a data transmission method according to an embodiment of the present disclosure, which can be executed by a streaming node, such as... Figure 1 As shown, the method includes:

[0032] Step S102: Determine the data transmission quality index of the push streaming node in the previous data transmission cycle, wherein the data transmission quality represents the degree of matching between the data transmission rate of the push streaming node and the network bandwidth;

[0033] In this embodiment of the disclosure, the push streaming node can periodically send data according to the data sending cycle (hereinafter referred to as the cycle for ease of description). After the end of each data sending cycle, the push streaming node can determine the data sending quality index of the previous data sending cycle based on the relationship between the amount of data to be sent in each data sending cycle and the amount of data actually sent in the previous data sending cycle, so as to adjust the sending rate of the next data sending cycle in real time according to the data sending quality index.

[0034] The data transmission quality index can be determined based on the relationship between the amount of data that the streaming node should send and the amount of data that is actually sent.

[0035] Step S104: Determine the target transmission volume of the next data transmission cycle of the push node based on the data transmission quality index;

[0036] For example, if the data transmission rate of the streaming node in the previous cycle matches the network bandwidth based on the data transmission quality indicators of the previous cycle, the data transmission rate of the streaming node in the next cycle can be increased to fully utilize the uplink bandwidth of the streaming node and reduce transmission latency, thereby reducing end-to-end latency. Conversely, if the data transmission quality indicators indicate that the network bandwidth has deteriorated, causing a mismatch between the data transmission rate and the network bandwidth, the data transmission rate of the streaming node can be reduced to avoid data congestion.

[0037] Step S106: In the next data transmission cycle, the target data volume is sent to the server device.

[0038] The previous data transmission cycle and the next data transmission cycle are two adjacent data transmission cycles.

[0039] In one embodiment of this disclosure, the streaming node can be a streaming end device in a live streaming system, and the server device can be a streaming media server in the live streaming system.

[0040] In the data transmission method of this disclosure embodiment, when the streaming node sends data to the server device, it determines the data transmission quality index of the previous cycle. This index can represent the degree of matching between the data transmission rate of the streaming node and the network bandwidth. Based on this index, the data transmission volume of the streaming node in the next cycle can be determined. When the next cycle arrives, the determined data transmission volume is sent to the server device. Thus, by dynamically adjusting the data transmission rate of the streaming node in real time, the data transmission rate of the streaming node can be dynamically matched with the changes in network bandwidth.

[0041] In one embodiment of this disclosure, such as Figure 2 As shown, determining the target data volume for the next data transmission cycle of the push node based on the data transmission quality indicators may include:

[0042] Step S1042: Determine whether the data transmission quality index meets the preset conditions; for example, a threshold for the data transmission quality index can be preset, and the preset conditions can be set to the data transmission quality index being no less than the threshold.

[0043] Step S1044: If the data transmission quality index meets the preset conditions, add a preset amount of data to the data transmission amount of the previous data transmission cycle to obtain the target amount of data;

[0044] Step S1046: If the data transmission quality index does not meet the preset condition, reduce the data transmission volume based on the data transmission volume of the previous data transmission cycle, so that the target data volume is equal to the amount of data actually transmitted by the push node in a data transmission cycle when the data transmission quality index meets the preset condition.

[0045] The following is an exemplary description of determining the target data volume for the next data transmission cycle of the push node based on data transmission quality indicators.

[0046] In one example, the streaming node can initialize the initial data block sending amount based on the bitrate r, sending period τ, and single data block size l. The bit rate r and the sending period τ can be set at the push node.

[0047] The push node sends data for the current cycle according to the determined sending volume α;

[0048] The actual amount of data sent by the streaming node within this period τ is β;

[0049] The push node calculates the data transmission quality metrics for the current period:

[0050]

[0051] If Q(τ) = 1 (where 1 is an example of the threshold mentioned above), it means that at the sending rate... Data can be sent normally, and the data transmission quality (measured by the above data transmission quality indicators) meets the preset conditions. In order to make full use of the uplink bandwidth of the push node, the data block transmission amount will be increased by α' = α + ε in the next cycle, where ε is the step size of the data transmission amount (an example of the above preset data amount).

[0052] If Q(τ) < 1, it means that the transmission rate is... The data transmission exceeded the current uplink bandwidth capacity of the streaming node. To avoid data transmission congestion, the sliding window data block transmission size will be reduced to α' = α - (α - β) = β in the next cycle, where β is the actual amount of data transmitted by the streaming node in one cycle when the data transmission quality index is equal to 1. The calculated α' is the target data size mentioned above.

[0053] In one embodiment of this disclosure, the streaming node can maintain a sliding window locally. The streaming node periodically sends data within the sliding window to the server device. The sliding window slides at a uniform rate in the direction of increasing playback timestamps. As the sliding window slides, data with earlier playback times at the beginning of the sliding window is deleted, while new space is generated at the end of the sliding window to store the newly generated latest data. In this embodiment, it can be assumed that the data is divided into equally sized data blocks, and the data transmission volume of the sliding window can be the data block transmission volume. Figure 3 As shown, sending the target data volume to the server device in the next data transmission cycle may include:

[0054] Step S1062: Increase or decrease the size of the sliding window according to the target data volume, so that the data transmission volume of the sliding window is the target data volume;

[0055] For example, when the data transmission quality index of the previous period meets the preset conditions, the sliding window size can be increased to increase the data transmission volume of the sliding window; conversely, when the data transmission quality index of the previous period does not meet the preset conditions, the sliding window size can be decreased to reduce the data transmission volume of the sliding window. The amount by which the sliding window size is increased or decreased can be preset or calculated based on the actual data transmission volume of the previous period.

[0056] Step S1064: In the next data transmission cycle, the data in the sliding window is sent to the server device.

[0057] In one embodiment of this disclosure, such as Figure 4 As shown, determining the target transmission volume of the push node in the next data transmission cycle based on the data transmission quality indicators includes:

[0058] Step S1048: In response to the data transmission quality index meeting the preset condition, the size of the sliding window is increased by a preset step size, so that the data transmission volume of the sliding window increases by a preset data volume;

[0059] The preset step size can be set in advance according to actual needs.

[0060] Step S10410: In response to the data transmission quality index not meeting the preset condition, reduce the size of the sliding window so that the data transmission volume of the sliding window is equal to the actual data volume transmitted by the streaming node in a data transmission cycle when the data transmission quality index meets the preset condition. Continuing with the above example, assuming the data transmission volume of the sliding window in the previous cycle is α, and the actual data volume transmitted by the streaming node in a cycle when the data transmission quality index meets the preset condition is β, calculate the data transmission volume of the sliding window in this cycle as α' = α - (α - β) = β, where α' is the adjusted data transmission volume of the sliding window in this cycle.

[0061] In one embodiment of this disclosure, such as Figure 5 As shown, determining the data transmission quality metrics of the push node in the previous data transmission cycle may include:

[0062] Step S1022: Determine the first number of valid data packets actually sent by the streaming node in the previous data transmission period and the second number of data packets that the streaming node should send according to the bit rate in the previous data transmission period;

[0063] Step S1024: Calculate the ratio of the first quantity to the second quantity to obtain the data transmission quality index. In one example, the node data transmission quality index Q(t1,t2) during the time period t1 to t2 is calculated according to the following formula (1). Where r represents the media stream bitrate (also known as bitrate), l represents the data block length, and ξ(t) represents the number of data packets actually sent by the node at time t. This indicates the number of valid data packets actually sent by the streaming node during the time period t1 to t2; This represents the number of data packets that the streaming node should send according to the bitrate during the time period t1 to t2. Theoretically, the value of Q(t1,t2) is less than or equal to 1, and the closer its value is to 1, the better the data transmission quality. When Q(t1,t2) equals 1, it means that the streaming node can send data normally at the bitrate, thereby providing a live streaming service with low latency guarantee.

[0064]

[0065] In one embodiment of this disclosure, the preset condition is that the data transmission quality index is equal to 1. Continuing with the above example, when the data transmission quality index is equal to 1, it means that the streaming node can transmit data normally at the current transmission rate; when the data transmission quality index is less than 1, it means that the streaming node's transmission rate exceeds the node's current uplink bandwidth capacity.

[0066] In one embodiment of this disclosure, the streaming node maintains a sliding window. The streaming node periodically sends data within the sliding window to the server device according to the data sending cycle. As the sliding window slides, data at the beginning of the sliding window is deleted from the sliding window, and new space is generated at the end of the sliding window to store newly generated data. Figure 6 The method may further include:

[0067] Step S602: Before determining the data transmission quality index of the push node in the previous data transmission cycle, calculate the initial data transmission amount of the sliding window based on the preset bitrate, the preset data transmission cycle, and the size of a single data block.

[0068] For example, the streaming node initializes the initial data transmission amount of the sliding window based on the bit rate r, the transmission period τ, and the size of a single data block l. After determining the initial data transmission volume α, the push node can transmit data for the current cycle based on the initial data transmission volume α.

[0069] The following example illustrates the data transmission method of this disclosure.

[0070] In this example, the streaming node maintains a local sliding window for sending data to the media server (an example of the server-side device described above), and the sliding window is as follows: Figure 7 As shown, the shaded area represents the data blocks to be sent in the sliding window (i.e., the amount of data sent by the sliding window as mentioned above). The data blocks in the sliding window are numbered in ascending order according to the playback time, such as... Figure 7 As shown, the initial sliding window size is set to, for example, L = 5, so the initial data block sending amount is α = 5, and the sending amount increment step is set to ε = 2. The streaming start time is t1, and the sending period is τ. After each data sending period, the streaming node can count the sending status of data blocks. The data sending method during live streaming can include the following processing:

[0071] After the first transmission cycle ends, the push node calculates the number of data blocks actually transmitted within the scheduling cycle, assuming the actual number of data blocks transmitted is β = 5. According to the above formula (1), the transmission quality index Q(t1,t1+τ) = 1 for the first data cycle is calculated, indicating that the current network bandwidth supports transmitting data with an initial data block transmission amount of α = 5;

[0072] Since Q(t1,t1+τ)=1, in the second transmission cycle, the push node increases the sliding window, increases the data block transmission amount by α'=α+ε=5+2=7, and performs data transmission for this cycle;

[0073] After the second sending cycle ends, the push node calculates the number of data blocks actually sent during the second sending cycle, and assumes that the number of data blocks actually sent is β' = 7. According to the above formula (1), the data transmission quality index Q(t1+τ,t1+2τ) = 1 for the second cycle is calculated, indicating that the current network bandwidth supports sending data with a sending amount α';

[0074] Since Q(t1+τ,t1+2τ)=1, in the third sending cycle, the push node continues to increase the sliding window, increasing the data block sending amount to α”=α'+ε=α+2ε=9, and performs data sending for this cycle; after the third sending cycle ends, the push node calculates the number of data blocks actually sent in the third scheduling cycle, and assumes that the number of data blocks actually sent is β”=8. According to the above formula (1), the data sending quality index Q(t1+2τ,t1+3τ)=8 / 9<1 for the third cycle is calculated, indicating that the current network bandwidth does not support sending data with a sending amount of α”, which has exceeded the current maximum network bandwidth capacity;

[0075] Since Q(t1+2τ,t1+3τ)<1, in the fourth transmission cycle, the push node reduces the sliding window size, reduces the data block transmission amount to α”'=β”=8, and performs data transmission for this cycle.

[0076] At the end of each subsequent sending cycle, the push node will calculate the data sending quality index based on the planned data sending volume α and the actual data sending volume β within the cycle, and dynamically adjust the sliding window size according to the data sending quality index to control the data sending volume in each cycle.

[0077] Figure 8 This is a flowchart of a data transmission method according to an embodiment of the present disclosure, such as... Figure 8 As shown, the method includes:

[0078] Step S802: The push node calculates the initial sliding window size;

[0079] The streaming node initializes the initial block size of the sliding window based on the bitrate r, the transmission period τ, and the single block size l. The initial sliding window size is determined based on the initial data block transmission amount. For example, if the initial data block transmission amount is α = 5, then the initial sliding window size is L = 5.

[0080] Step S804: Determine whether the streaming has ended. If the streaming has not ended, proceed to step S806. If the streaming has ended, the process ends.

[0081] Step S806: The push node sends data according to the sliding window size;

[0082] Step S808: After the data transmission cycle ends, the push node calculates the data transmission quality Q;

[0083] Step S810: Determine if the data transmission quality Q is equal to 1. If Q = 1, proceed to step S814; otherwise, proceed to step S812, and then return to step S804.

[0084] Step S812: Reduce the sliding window;

[0085] Step S814: Increase the size of the sliding window.

[0086] Figure 9 This is a schematic diagram of the structure of a data transmission apparatus according to an embodiment of the present disclosure, as shown below. Figure 9 As shown, the device 910 includes:

[0087] The first determining module 912 is used to determine the data transmission quality index of the push streaming node in the previous data transmission cycle, wherein the data transmission quality represents the degree of matching between the data transmission rate of the push streaming node and the network bandwidth;

[0088] The second determining module 914 is used to determine the target data volume of the next data transmission cycle of the push node based on the data transmission quality index.

[0089] The sending module 916 is used to send the target data volume to the server device in the next data sending cycle.

[0090] In one embodiment of this disclosure, the second determining module described above may specifically be used for:

[0091] Determine whether the data transmission quality indicators meet the preset conditions;

[0092] If the data transmission quality index meets the preset conditions, the preset data amount is added to the data transmission amount of the previous data transmission cycle to obtain the target data amount;

[0093] If the data transmission quality index does not meet the preset conditions, the data transmission volume is reduced based on the data transmission volume of the previous data transmission cycle, so that the target data volume is equal to the amount of data actually transmitted by the push node in a data transmission cycle when the data transmission quality index meets the preset conditions.

[0094] In one embodiment of this disclosure, the push node maintains a sliding window, and the aforementioned sending module can specifically be used for:

[0095] The size of the sliding window is increased or decreased according to the target data volume, so that the data transmission volume of the sliding window is the target data volume;

[0096] When the next data transmission cycle arrives, the data in the sliding window will be sent to the server device.

[0097] In one embodiment of this disclosure, the push node maintains a sliding window, and the sending module is specifically used for:

[0098] In response to the data transmission quality index meeting the preset condition, the size of the sliding window is increased by a preset step size, so that the data transmission volume of the sliding window increases by a preset data volume.

[0099] In response to the data transmission quality index not meeting the preset condition, the size of the sliding window is reduced so that the data transmission volume of the sliding window is equal to the actual data transmission volume of the push node in a data transmission cycle when the data transmission quality index meets the preset condition.

[0100] When the next data transmission cycle arrives, the data in the sliding window will be sent to the server device.

[0101] In one embodiment of this disclosure, the first determining module may specifically be used for:

[0102] Determine the first number of valid data packets actually sent by the streaming node in the previous data transmission period and the second number of data packets that the streaming node should send according to the bit rate in the previous data transmission period;

[0103] The ratio of the first quantity to the second quantity is used to obtain the data transmission quality index.

[0104] In one embodiment of this disclosure, the preset condition is that the data transmission quality index is equal to 1.

[0105] In one embodiment of this disclosure, the streaming node maintains a sliding window, and the streaming node periodically sends data within the sliding window to the server device according to the data sending cycle. When the sliding window slides, data at the head of the sliding window is deleted from the sliding window, and new space is generated at the tail of the sliding window to store newly generated data. The device may further include:

[0106] The calculation module is used to calculate the initial data transmission volume of the sliding window based on the preset bitrate, preset data transmission period, and single data block size before determining the data transmission quality index of the push node in the previous data transmission period.

[0107] One embodiment of this disclosure also provides an electronic device, including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to perform any of the data transmission methods provided in the embodiments of this disclosure by executing the executable instructions.

[0108] One embodiment of this disclosure also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements any of the data transmission methods of the embodiments of this disclosure.

[0109] Those skilled in the art will understand that various aspects of the present invention can be implemented as systems, methods, or program products. Therefore, various aspects of the present invention can be specifically implemented in the following forms: entirely hardware implementations, entirely software implementations (including firmware, microcode, etc.), or implementations combining hardware and software aspects, collectively referred to herein as “circuits,” “modules,” or “systems.”

[0110] The following reference Figure 10 To describe an electronic device 1000 according to this embodiment of the present invention. Figure 10 The electronic device 1000 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present invention.

[0111] like Figure 10 As shown, the electronic device 1000 is manifested in the form of a general-purpose computing device. The components of the electronic device 1000 may include, but are not limited to: at least one processing unit 1010, at least one storage unit 1020, and a bus 1030 connecting different system components (including storage unit 1020 and processing unit 1010).

[0112] The storage unit stores program code that can be executed by the processing unit 1010, causing the processing unit 1010 to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of the present invention.

[0113] Storage unit 1020 may include readable media in the form of volatile storage units, such as random access memory (RAM) 10201 and / or cache memory 10202, and may further include read-only memory (ROM) 10203.

[0114] Storage unit 1020 may also include a program / utility 10204 having a set (at least one) program module 10205, such program module 10205 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.

[0115] Bus 1030 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the multiple bus structures.

[0116] Electronic device 1000 can also communicate with one or more external devices 1100 (e.g., keyboard, pointing device, Bluetooth device, etc.), one or more devices that enable a user to interact with electronic device 1000, and / or any device that enables electronic device 1000 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 1050. Furthermore, electronic device 1000 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 1060. As shown, network adapter 1060 communicates with other modules of electronic device 1000 via bus 1030. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 1000, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.

[0117] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the methods according to the embodiments of this disclosure.

[0118] In exemplary embodiments of this disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible embodiments, various aspects of the invention may also be implemented as a program product comprising program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of the invention described in the "Exemplary Methods" section of this specification.

[0119] A program product for implementing the above-described method according to embodiments of the present invention is described. This product may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, the readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.

[0120] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0121] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0122] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0123] Program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0124] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to embodiments of this disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0125] Furthermore, although the steps of the method in this disclosure are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or a step may be broken down into multiple steps.

[0126] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, mobile terminal, or network device, etc.) to execute the method according to the embodiments of this disclosure.

[0127] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the appended claims.

Claims

1. A data transmission method, characterized in that, include: The data transmission quality index of the streaming node in the previous data transmission cycle is determined, wherein the data transmission quality index represents the degree of matching between the data transmission rate of the streaming node and the network bandwidth; and the data transmission quality index is calculated by the ratio of the first number of effective data packets actually sent by the streaming node in the previous data transmission cycle to the second number of data packets that the streaming node should send according to the live bitrate in the previous data transmission cycle. The target data volume for the next data transmission cycle of the push node is determined based on the data transmission quality indicators. In the next data transmission cycle, the target data volume will be sent to the server device.

2. The method according to claim 1, characterized in that, The target data volume for the next data transmission cycle of the push node is determined based on the data transmission quality indicators, including: Determine whether the data transmission quality indicators meet the preset conditions; If the data transmission quality index meets the preset conditions, the preset data amount is added to the data transmission amount of the previous data transmission cycle to obtain the target data amount; If the data transmission quality index does not meet the preset conditions, the data transmission volume is reduced based on the data transmission volume of the previous data transmission cycle, so that the target data volume is equal to the amount of data actually transmitted by the push node in a data transmission cycle when the data transmission quality index meets the preset conditions.

3. The method according to claim 1, characterized in that, The push node maintains a sliding window and sends the target data volume to the server device in the next data sending cycle, including: The size of the sliding window is increased or decreased according to the target data volume, so that the data transmission volume of the sliding window is the target data volume; When the next data transmission cycle arrives, the data in the sliding window will be sent to the server device.

4. The method according to claim 1, characterized in that, The streaming node maintains a sliding window to determine the target data volume for the next data transmission cycle based on the data transmission quality indicators, including: In response to the data transmission quality index meeting the preset conditions, the size of the sliding window is increased by a preset step size, so that the data transmission volume of the sliding window increases by a preset data volume. In response to the data transmission quality index not meeting the preset condition, the size of the sliding window is reduced so that the data transmission volume of the sliding window is equal to the actual data volume transmitted by the push node in a data transmission cycle when the data transmission quality index meets the preset condition.

5. The method according to claim 4, characterized in that, Determine the data transmission quality metrics of the push streaming node in the previous data transmission cycle, including: Determine the first number of valid data packets actually sent by the streaming node in the previous data transmission period and the second number of data packets that the streaming node should send according to the bit rate in the previous data transmission period; The ratio of the first quantity to the second quantity is used to obtain the data transmission quality index.

6. The method according to claim 5, characterized in that, The preset condition is that the data transmission quality index is equal to 1.

7. The method according to claim 1, characterized in that, The streaming node maintains a sliding window, and periodically sends data within the sliding window to the server device according to the data sending cycle. When the sliding window slides, data at the beginning of the sliding window is deleted from the sliding window, and new space is generated at the end of the sliding window to store newly generated data. The method further includes: Before determining the data transmission quality index of the push node in the previous data transmission cycle, the initial data transmission volume of the sliding window is calculated based on the preset bitrate, the preset data transmission cycle, and the size of a single data block.

8. A data transmission device, characterized in that, include: The first determining module is used to determine the data transmission quality index of the streaming node in the previous data transmission cycle, wherein the data transmission quality index represents the degree of matching between the data transmission rate of the streaming node and the network bandwidth; and the data transmission quality index is calculated by the ratio of the first number of effective data packets actually sent by the streaming node in the previous data transmission cycle to the second number of data packets that the streaming node should send according to the live bitrate in the previous data transmission cycle. The second determining module is used to determine the target data volume of the next data transmission cycle of the push node based on the data transmission quality index. The sending module is used to send the target data volume to the server device in the next data sending cycle.

9. An electronic device, characterized in that, include: processor; as well as Memory for storing the executable instructions of the processor; The processor is configured to execute the data transmission method according to any one of claims 1 to 7 by executing the executable instructions.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the data transmission method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Data sending method and apparatus

    CN104518841A