CN115988577A - Data transmission method, data transmission device, storage medium and electronic equipment - Google Patents
Data transmission method, data transmission device, storage medium and electronic equipment Download PDFInfo
- Publication number
- CN115988577A CN115988577A CN202111204869.4A CN202111204869A CN115988577A CN 115988577 A CN115988577 A CN 115988577A CN 202111204869 A CN202111204869 A CN 202111204869A CN 115988577 A CN115988577 A CN 115988577A
- Authority
- CN
- China
- Prior art keywords
- data
- data transmission
- sending
- period
- sliding window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
The disclosure provides a data sending method, a data sending device, a storage medium and electronic equipment, and relates to the technical field of communication. The data sending method comprises the following steps: determining a data transmission quality index of a flow pushing node in a last data transmission period, wherein the data transmission quality represents the matching degree of the data transmission rate of the flow pushing node and the network bandwidth; determining the target data volume of the next data transmission period of the stream pushing node according to the data transmission quality index; and transmitting the data of the target data volume to the streaming service end equipment in the next data transmission period. The problem that the stream pushing end cannot match the data sending rate with the network bandwidth change in the related technology is solved, and the data sending rate of the stream pushing node is dynamically matched with the network bandwidth change condition.
Description
Technical Field
The present disclosure relates to the field of communications technologies, and in particular, to a data transmission method, an apparatus, a storage medium, and an electronic device.
Background
At present, with the development of the internet and the popularization of broadband applications, streaming media video services using networks are becoming hot spots for network applications. The streaming media live broadcast technology is a streaming transmission technology for transmitting multimedia data in real time on a network, and users of online live broadcast and network video have larger and larger scales, so that various interactive services including digital televisions can be provided for the users. The scenes have high requirements on live broadcast delay, and especially the scenes of interaction such as large-scale events, live broadcast cargo carrying, video conferences and the like have more strict requirements on the live broadcast delay. Meanwhile, as 5G (5 th Generation Mobile Communication Technology, fifth Generation Mobile Communication Technology) is popularized, MEC (Multi-access Edge Computing) Technology is widely used. The MEC provides an IT service environment and cloud computing capability at the edge of a mobile network, and realizes the localized, close-range and distributed deployment of applications, services and contents, thereby solving the service requirements of scenes such as 5G enhanced mobile broadband, low time delay, high reliability, large-scale machine communication terminal connection and the like to a certain extent. Therefore, the MEC meets the requirements of large bandwidth and low time delay of the live broadcast Service, and better Service quality guarantee can be provided by deploying the live broadcast SaaS (Software-as-a-Service) application on the MEC platform.
The live broadcast system relates to a push stream end, a server end and a playing end. The stream pushing end is a production source of live data and is mainly responsible for audio and video data acquisition, coding and transmission; the server is mainly responsible for receiving the audio and video data sent by the stream pushing end and processing the media data according to the requirement; the playing end is mainly responsible for receiving the media data from the server end, and carrying out audio and video decoding and rendering display. Therefore, the service quality of the push streaming end directly influences the working effect of the whole live broadcasting system. At present, a stream pushing end of a live broadcast system adopts a uniform rate data sending mode, and cannot well adapt to network bandwidth change when network fluctuation changes frequently, and the data sending rate cannot be matched with the network bandwidth change.
Disclosure of Invention
The present disclosure provides a data transmission method, apparatus, storage medium, and electronic device, which at least to some extent overcome the problem that the stream pushing end in the related art cannot match the data transmission rate with the network bandwidth change.
According to a first aspect of the present disclosure, there is provided a data transmission method, including: determining a data transmission quality index of a flow pushing node in a last data transmission period, wherein the data transmission quality index represents the matching degree of the data transmission rate of the flow pushing node and the network bandwidth; determining the target data volume of the next data transmission period of the stream pushing node according to the data transmission quality index; and transmitting the data of the target data volume to server side equipment in the next data transmission period.
Optionally, determining a target data volume of a next data transmission period of the push flow node according to the data transmission quality indicator includes: judging whether the data transmission quality index meets a preset condition or not; if the data transmission quality index meets a preset condition, increasing a preset data volume on the basis of the data transmission volume of the previous data transmission period to obtain the target data volume; if the data transmission quality index does not meet the preset condition, reducing the data transmission amount on the basis of the data transmission amount of the previous data transmission period, so that the target data amount is equal to the data amount actually transmitted by the stream pushing node in one data transmission period when the data transmission quality index meets the preset condition.
Optionally, the method for sending the data of the target data volume to the server device in the next data sending period includes: increasing or decreasing the size of the sliding window according to the target data volume to enable the data sending volume of the sliding window to be the target data volume; and when the next data sending period comes, sending the data in the sliding window to the server-side equipment.
Optionally, the step of maintaining a sliding window by the flow pushing node, and determining a target data volume of a next data sending period of the flow pushing node according to the data sending quality index includes: responding to the data sending quality index meeting the preset condition, and increasing the size of the sliding window by a preset step length so as to increase the data sending quantity of the sliding window by a preset data quantity; and in response to that the data transmission quality index does not meet the preset condition, reducing the size of the sliding window to enable the data transmission quantity of the sliding window to be equal to the data quantity actually transmitted by the stream pushing node in one data transmission period when the data transmission quality index meets the preset condition.
Optionally, determining the data transmission quality indicator of the push flow node in the previous data transmission period includes: determining a first number of effective data packets actually sent by the stream pushing node in the last data sending period and a second number of data packets which should be sent by the stream pushing node according to the code rate in the last data sending period; and calculating the ratio of the first quantity to the second quantity to obtain the data transmission quality index.
Optionally, the preset condition is that the data transmission quality index is equal to 1.
Optionally, the stream pushing node maintains a sliding window, and sends the data in the sliding window to the server device periodically with the data sending period, 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 for storing the newly generated data, where the method further includes: and before determining the data transmission quality index of the current push node in the last data transmission period, calculating the initial data transmission quantity of the sliding window according to a preset code rate, a preset data transmission period and the size of a single data block.
According to a second aspect of the present disclosure, there is also provided a data transmission apparatus including: the first determining module is configured to determine a data transmission quality indicator of a flow pushing node in a last data transmission period, where the data transmission quality indicates a matching degree between a data transmission rate of the flow pushing node and a network bandwidth; a second determining module, configured to determine, according to the data transmission quality indicator, a target data amount of a next data transmission period of the push flow node; and the sending module is used for sending the data of the target data volume to the stream server side equipment in the next data sending period.
According to a third aspect of the present disclosure, there is also provided an electronic device, including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute any one of the data transmission methods provided by the embodiments of the present disclosure via execution of the executable instructions.
According to a fourth aspect of the present disclosure, there is also provided a computer-readable storage medium, on which a computer program is stored, where the computer program, when executed by a processor, implements any one of the data transmission methods provided by the embodiments of the present disclosure.
According to the data sending method, the data sending device, the storage medium and the electronic device of the embodiment of the disclosure, when the stream pushing node sends data to the server device, the data sending quality index of the previous period is determined, the index can represent the matching degree of the data sending rate of the stream pushing node and the network bandwidth, the data sending quantity of the stream pushing node in the next period can be determined according to the index, and when the next period arrives, the data of the determined data sending quantity is sent to the server device, so that the data sending rate of the stream pushing node can be dynamically matched with the dynamic change situation of the network bandwidth by dynamically adjusting the data sending rate of the stream pushing node in real time.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and together with the description, serve to explain the principles of the disclosure. It should be apparent that the drawings in the following description are merely examples of the disclosure and that other drawings may be derived by those of ordinary skill in the art without inventive effort.
Fig. 1 is a flow chart of a method of transmitting data according to an embodiment of the present disclosure;
fig. 2 is a flowchart of determining a target data amount of a next data transmission period of a stream pushing node according to a data transmission quality indicator according to an embodiment of the present disclosure;
fig. 3 is a flowchart of transmitting data of a target data amount to a server device in a next data transmission cycle according to one embodiment of the present disclosure;
fig. 4 is a flowchart of determining a target transmission amount of a next data transmission period of a stream pushing node according to a data transmission quality indicator according to an embodiment of the present disclosure;
fig. 5 is a flowchart of determining a data transmission quality indicator of an inferred flow node in a previous data transmission period according to an embodiment of the present disclosure;
fig. 6 is a flow chart of a method of data transmission according to an embodiment of the present disclosure;
FIG. 7 is a schematic view of a sliding window according to one embodiment of the present disclosure;
FIG. 8 is a flow chart of a method of data transmission according to one embodiment of the present disclosure;
fig. 9 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present disclosure; and
fig. 10 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example 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.
Furthermore, the drawings are merely schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus their repetitive description will be omitted. Some of the block diagrams shown in the figures are functional entities and do not necessarily correspond to physically or logically separate entities. These functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor devices and/or microcontroller devices.
In a live broadcast system, if a stream pushing end cannot timely and efficiently send acquired media data to a server, the working effect of the whole live broadcast system can be influenced from the source, and problems such as pause of live broadcast playing, overlong first screen buffer time of a user, end-to-end live broadcast delay and the like can occur. When the live streaming end is a mobile client (such as a mobile phone), under the influence of external conditions such as network signal strength change, an important problem to be solved is how to efficiently transmit media data to a server under a dynamic network environment, and on the basis of fully utilizing the upstream bandwidth of the streaming end to perform data streaming, the data transmission rate is matched with the change of the network bandwidth. The live broadcast system stream pushing end adopts a uniform rate data sending mode, and cannot well adapt to network bandwidth change when network fluctuation changes frequently. If the sending rate is too slow, the uplink bandwidth of the stream pushing end cannot be fully utilized to reduce the sending delay; if the sending rate is too fast, the media data is accumulated at the stream pushing end due to data sending congestion, the real-time performance of live data sending is affected, the end-to-end delay is increased, and the user experience of the whole live system is affected. Based on this, the embodiment of the present disclosure provides a data sending method, in which a stream pushing end may dynamically adjust a data sending rate in real time according to a data sending quality change condition, so as to reduce the sending rate when a network bandwidth is degraded, and avoid sending data congestion; and when the network bandwidth is recovered well, the sending rate is increased, so that the uplink bandwidth of the stream pushing node is fully utilized to reduce the sending delay, and the end-to-end delay is reduced.
Fig. 1 is a flowchart of a data transmission method according to an embodiment of the present disclosure, which may be performed by a stream pushing node, as shown in fig. 1, and includes:
step S102: determining a data transmission quality index of a flow pushing node in a last data transmission period, wherein the data transmission quality represents the matching degree of the data transmission rate of the flow pushing node and the network bandwidth;
in this embodiment of the present disclosure, the stream pushing node may send data periodically according to a data sending period (for convenience of description, hereinafter, also referred to as a period for short), and after each data sending period is ended, the stream pushing node may determine a data sending quality index of a previous data sending period of the stream pushing node according to a relationship between a data amount to be sent of each data sending period and an actual data amount sent of the previous data sending period, so as to adjust a sending rate of a next data sending period in real time according to the data sending quality index.
The data transmission quality index may be determined according to a relationship between a data amount to be transmitted by the stream pushing node and an actual data amount to be transmitted.
Step S104: determining the target sending quantity of the next data sending period of the stream pushing node according to the data sending quality index;
for example, when it is determined that the data sending rate of the stream pushing node in the previous period matches the network bandwidth according to the data sending quality index in the previous period, the data sending rate of the stream pushing node in the next period can be increased to fully utilize the uplink bandwidth of the stream pushing node to reduce the sending delay, thereby reducing the end-to-end delay. When the network bandwidth is determined to be poor according to the data sending quality index, and the data sending rate is not matched with the network bandwidth, the data sending rate of the stream pushing node can be reduced, so that the data sending congestion is avoided.
Step S106: and sending the data of the target data volume to the server-side equipment in the next data sending period.
The previous data transmission period and the next data transmission period are two adjacent data transmission periods.
In one embodiment of the present disclosure, the push streaming node may be a push streaming end device in a live system, and the server end device may be a streaming media server in the live system.
According to the data transmission method, when the stream pushing node transmits data to the server side equipment, the data transmission quality index of the previous period is determined, the index can represent the matching degree of the data transmission rate of the stream pushing node and the network bandwidth, the data transmission quantity of the stream pushing node in the next period can be determined according to the index, and the data with the determined data transmission quantity is transmitted to the server side equipment when the next period arrives, so that the data transmission rate of the stream pushing node can be dynamically adjusted in real time, and the data transmission rate of the stream pushing node can be dynamically matched with the network bandwidth change condition.
In an embodiment of the present disclosure, as shown in fig. 2, determining the target data amount of the next data transmission period of the push flow node according to the data transmission quality indicator may include:
step S1042: judging whether the data transmission quality index meets a preset condition or not; for example, a threshold value of the data transmission quality index may be set in advance, and the preset condition may be set so that the data transmission quality index is not less than the threshold value.
Step S1044: if the data transmission quality index meets a preset condition, increasing a preset data volume on the basis of the data transmission volume of the previous data transmission period to obtain the target data volume;
step S1046: if the data sending quality index does not meet the preset condition, reducing the data sending quantity on the basis of the data sending quantity of the previous data sending period, so that the target data quantity is equal to the data quantity actually sent by the stream pushing node in one data sending period when the data sending quality index meets the preset condition.
The following describes an exemplary process of determining the target data amount of the next data transmission period of the stream pushing node according to the data transmission quality index.
In one example, the stream-pushing node may initialize an initial data block transmission amount of r according to the code rate r, the transmission period τ and the size of a single data block lWherein the code rate r and the transmissionThe period tau can be set at the end of the stream-pushing node.
The stream pushing node sends the data in the period according to the determined sending quantity alpha;
the data volume actually sent by the plug flow node in the Zhou Qi is beta;
the flow pushing node calculates the data transmission quality index of the current period:
if Q (τ) =1 (where 1 is an example of the above threshold), the description will be given at the transmission rateThe data can be transmitted normally, the data transmission quality (measured by the data transmission quality index) is determined to meet the preset condition, and in order to fully utilize the upstream bandwidth of the stream pushing node, the next period will increase the data block transmission quantity to α' = α + epsilon, where epsilon is the increase step size of the data transmission quantity (which is an example of the preset data quantity);
if Q (tau) < 1, the transmission rate is indicatedAnd sending data exceeding the current uplink bandwidth capacity of the stream pushing node, wherein in order to avoid data sending congestion, the sending quantity of the data blocks of the reduced sliding window in the next period is alpha' = alpha- (alpha-beta) = beta, wherein beta is the data quantity actually sent by the stream pushing node in one period when the data sending quality index is equal to 1. Wherein, the calculated α' is the target data amount.
In an embodiment of the present disclosure, the stream pushing node may locally maintain a sliding window, where the stream pushing node periodically sends data in the sliding window to the server device, and the sliding window slides in a direction in which the play timestamp increases according to the uniform rate of the code rate. When the sliding window slides, the data at the head of the sliding window, which is earlier in playing time, is deleted from the sliding window, and meanwhile, a new space is generated at the tail of the sliding window for storing newly generated latest data. In the embodiment of the present disclosure, it may be assumed that data is cut into equal-sized data blocks, and the data transmission amount of the sliding window may be a data block transmission amount. As shown in fig. 3, sending the data of the target data amount to the server device in the next data sending cycle may include:
step S1062: increasing or decreasing the size of the sliding window according to the target data volume to enable the data sending volume of the sliding window to be the target data volume;
for example, when it is determined that the data transmission quality indicator of the previous period satisfies the preset condition, the size of the sliding window may be increased to increase the data transmission amount of the sliding window, and when it is determined that the data transmission quality indicator of the previous period does not satisfy the preset condition, the size of the sliding window may be decreased to decrease the data transmission amount of the sliding window. The size of the sliding window can be increased by a preset amount, and the size of the sliding window can be decreased by a preset amount, or calculated according to the actual data transmission amount of the last period.
Step S1064: and in the next data sending period, sending the data in the sliding window to the server side equipment.
In an embodiment of the present disclosure, as shown in fig. 4, determining a target transmission amount of a next data transmission period of the push flow node according to the data transmission quality indicator includes:
step S1048: responding to the condition that the data sending quality index meets the preset condition, and increasing the size of the sliding window by a preset step length so as to increase the data sending quantity of the sliding window by a preset data quantity;
the numerical value of the preset step length can be set in advance according to actual requirements.
Step S10410: and in response to that the data transmission quality index does not meet the preset condition, reducing the size of the sliding window so as to enable the data transmission amount of the sliding window to be equal to the actually transmitted data amount of the stream pushing node in one data transmission period when the data transmission quality index meets the preset condition. In the above example, assuming that the data transmission amount of the sliding window in the previous period is α, when the data transmission quality index satisfies the preset condition, the data amount actually transmitted by the stream pushing node in one period is β, and calculating the data transmission amount α '= α - (α - β) = β of the sliding window in the current period, where α' is the adjusted data transmission amount of the sliding window in the current period.
In an embodiment of the present disclosure, as shown in fig. 5, determining the data transmission quality indicator of the stream-pushing node in the last data transmission period may include:
step S1022: determining a first number of effective data packets actually sent by the stream pushing node in the previous data sending period and a second number of data packets which should be sent by the stream pushing node according to the code rate in the previous data sending period;
step S1024: and calculating the ratio of the first quantity to the second quantity to obtain the data transmission quality index. In one example, t is defined 1 ~t 2 Node data transmission quality index Q (t) in time period 1 ,t 2 ) Calculated according to the following formula (1). Wherein r represents the code rate of the media stream (also called code rate for short), l represents the length of the data block, ξ (t) represents the number of data packets actually sent by the node at time t,is shown at t 1 ~t 2 The number of effective data packets actually sent by the stream pushing node in the time period; />Is shown at t 1 ~t 2 And pushing the number of data packets which should be sent by the streaming node according to the code rate in the time period. Theoretically, Q (t) 1 ,t 2 ) The value of (b) is 1 or less, and the closer to 1 the value is, the better the data transmission quality is, when Q (t) 1 ,t 2 ) When the time is equal to 1, the stream pushing node can normally send data according to the rate of the code, so that the live broadcast service with low time delay guarantee is provided.
In an embodiment of the present disclosure, the preset condition is that the data transmission quality index is equal to 1. Following the above example, when the data transmission quality indicator is equal to 1, it indicates that the streaming node can normally transmit data at the current transmission rate, and when the data transmission quality indicator is less than 1, it indicates that the data transmission rate at which the streaming node transmits data exceeds the current uplink bandwidth capability of the node.
In an embodiment of the present disclosure, the plug flow node maintains a sliding window, and the plug flow node periodically sends data in the sliding window to the server device with the data sending period, when the sliding window slides, the data located 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 for storing newly generated data, as shown in fig. 6, the method may further include:
step S602: and before determining the data transmission quality index of the current push node in the last data transmission period, calculating the initial data transmission quantity of the sliding window according to a preset code rate, a preset data transmission period and the size of a single data block.
For example, the stream pushing node initializes the initial data transmission amount of the sliding window according to the code rate r, the transmission period tau and the size l of a single data blockAfter determining the initial data transmission amount α, the stream-pushing node may perform data transmission in the present period according to the initial data transmission amount α.
The data transmission method according to the embodiment of the present disclosure is described below as an example.
In this example, the streaming node maintains a local sliding window for sending data to the media server (which is an example of the server device described above), the sliding window being shown in fig. 7, where the shaded portion represents the data blocks to be sent in the sliding window (i.e., the sliding window described above)Amount of data sent for a moving window). The data blocks in the sliding window are numbered from small to large according to the playing time sequence, as shown in fig. 7, the size of the initial sliding window is set to L =5, for example, so the initial data block transmission amount is α =5, and the transmission amount increase step size is set to ∈ =2. The plug flow start time is t 1 The transmission period is τ. After each data sending period is finished, the stream pushing node can count the sending condition of the data block, and the data sending method in the live stream pushing process can comprise the following processing:
after the first sending period is finished, the stream pushing node calculates the number of data blocks actually sent in the scheduling period, and the number of the data blocks actually sent is set to be β =5. Calculating the transmission quality index Q (t) of the first period of data according to the above formula (1) 1 ,t 1 + τ) =1, which indicates that the current network bandwidth supports data transmission with initial data block transmission amount α = 5;
due to Q (t) 1 ,t 1 + τ) =1, in the second transmission period, the stream pushing node increases the sliding window, the transmission amount of the data block is increased to be α' = α + epsilon =5+2=7, and the data transmission in the period is carried out;
after the second sending period is finished, the stream pushing node calculates the number of data blocks actually sent in the second sending period, and the number of the data blocks actually sent is set to be β' =7. Calculating the data transmission quality index Q (t) of the second period according to the above formula (1) 1 +τ,t 1 +2 τ) =1, which indicates that the current network bandwidth supports transmitting data with the transmission amount α';
due to Q (t) 1 +τ,t 1 +2 τ) =1, in the third sending period, the stream pushing node continues to increase the sliding window, the sending amount of the data block is increased to be alpha "= alpha' + epsilon = alpha +2 epsilon =9, and the data sending of the period is carried out; after the third sending cycle is finished, the stream pushing node calculates the number of data blocks actually sent in the third scheduling cycle, and the number of the data blocks actually sent is set to be β "=8. Calculating the data transmission quality index Q (t) of the third period according to the formula (1) 1 +2τ,t 1 +3 τ) =8/9 < 1, which indicates that the current network bandwidth does not support sending data with the sending quantity α ″, and the current maximum network bandwidth energy has been exceededForce;
due to Q (t) 1 +2τ,t 1 +3 τ) < 1, in the fourth sending period, the stream pushing node reduces the size of the sliding window, reduces the sending amount of the data block to be alpha '= beta' =8, and sends the data in the period;
after each subsequent sending period is finished, the stream pushing node calculates a data sending quality index according to the planned data sending quantity alpha and the actual data sending quantity beta in the period, dynamically adjusts the size of a sliding window according to the data sending quality index, and controls the data sending quantity of each period.
Fig. 8 is a flowchart of a data transmission method according to an embodiment of the present disclosure, as shown in fig. 8, the method including:
step S802: calculating the size of an initial sliding window by the plug flow node;
the stream pushing node initializes the initial data block sending amount of the sliding window according to the code rate r, the sending period tau and the size l of the single data blockThe initial sliding window size is determined according to an initial data block transmission amount, for example, α =5. The initial sliding window size is L =5./>
Step S804: judging whether the flow pushing is finished or not, if not, executing the step S806, and if so, ending the flow;
step S806: the flow pushing node sends data according to the size of the sliding window;
step S808: after the data sending period is finished, the stream pushing node calculates the data sending quality Q;
step S810: judging whether the data transmission quality Q is equal to 1, if Q =1, executing step S814; otherwise, go to step S812, and then go back to step S804
Step S812: reducing the sliding window;
step S814: the sliding window is enlarged.
Fig. 9 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present disclosure, as shown in fig. 9, the apparatus 910 includes:
a first determining module 912, configured to determine a data transmission quality indicator of a current node in a previous data transmission period, where the data transmission quality indicates a matching degree of a data transmission rate of the current node and a network bandwidth;
a second determining module 914, configured to determine, according to the data sending quality indicator, a target data amount of a next data sending period of the push flow node;
a sending module 916, configured to send the data of the target data volume to the server device in the next data sending period.
In an embodiment of the disclosure, the second determining module is specifically configured to:
judging whether the data sending quality index meets a preset condition or not;
if the data transmission quality index meets a preset condition, increasing a preset data volume on the basis of the data transmission volume of the previous data transmission period to obtain the target data volume;
if the data transmission quality index does not meet the preset condition, reducing the data transmission amount on the basis of the data transmission amount of the previous data transmission period, so that the target data amount is equal to the data amount actually transmitted by the stream pushing node in one data transmission period when the data transmission quality index meets the preset condition.
In an embodiment of the present disclosure, the plug flow node maintains a sliding window, and the sending module is specifically configured to:
increasing or decreasing the size of the sliding window according to the target data volume to enable the data sending volume of the sliding window to be the target data volume;
and when the next data sending period comes, sending the data in the sliding window to the server-side equipment.
In an embodiment of the present disclosure, the plug flow node maintains a sliding window, and the sending module is specifically configured to:
responding to the condition that the data sending quality index meets the preset condition, and increasing the size of the sliding window by a preset step length so as to increase the data sending quantity of the sliding window by a preset data quantity;
responding to the data sending quality index not meeting the preset condition, reducing the size of the sliding window, and enabling the data sending quantity of the sliding window to be equal to the actual data sending quantity of the stream pushing node in a data sending period when the data sending quality index meets the preset condition;
and when the next data sending period comes, sending the data in the sliding window to the server-side equipment.
In an embodiment of the disclosure, the first determining module is specifically configured to:
determining a first number of effective data packets actually sent by the stream pushing node in the last data sending period and a second number of data packets which should be sent by the stream pushing node according to the code rate in the last data sending period;
and calculating the ratio of the first quantity to the second quantity to obtain the data transmission quality index.
In an embodiment of the present disclosure, the preset condition is that the data transmission quality indicator is equal to 1.
In an embodiment of the present disclosure, the plug flow node maintains a sliding window, and the plug flow node periodically sends the data in the sliding window to the server device with the data sending period, 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 for storing newly generated data, where the apparatus may further include:
and the calculation module is used for calculating the initial data transmission quantity of the sliding window according to a preset code rate, a preset data transmission period and the size of a single data block before determining the data transmission quality index of the push flow node in the last data transmission period.
An embodiment of the present 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 execute any one of the data transmission methods provided by the embodiments of the present disclosure via execution of the executable instructions.
An embodiment of the present disclosure further provides a computer-readable storage medium, on which a computer program is stored, and the computer program, when executed by a processor, implements any one of the data transmission methods of the embodiments of the present disclosure.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or program product. Thus, various aspects of the invention may be embodied in the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, microcode, etc.) or an embodiment combining hardware and software aspects that may all generally be referred to herein as a "circuit," module "or" system.
An electronic device 1000 according to this embodiment of the invention is described below with reference to fig. 10. The electronic device 1000 shown in fig. 10 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present invention.
As shown in fig. 10, the electronic device 1000 is in the form of a general purpose computing device. The components of the electronic device 1000 may include, but are not limited to: the at least one processing unit 1010, the at least one memory unit 1020, and a bus 1030 that couples various system components including the memory unit 1020 and the processing unit 1010.
Wherein the storage unit stores program code that is executable by the processing unit 1010 to cause the processing unit 1010 to perform steps according to various exemplary embodiments of the present invention as described in the "exemplary methods" section above in this specification.
The storage unit 1020 may include readable media in the form of volatile memory units, such as a random access memory unit (RAM) 10201 and/or a cache memory unit 10202, and may further include a read-only memory unit (ROM) 10203.
The memory unit 1020 may also include a program/utility 10204 having a set (at least one) of program modules 10205, such program modules 10205 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
The electronic device 1000 may also communicate with one or more external devices 1100 (e.g., keyboard, pointing device, bluetooth device, etc.), with one or more devices that enable a user to interact with the electronic device 1000, and/or with any devices (e.g., router, modem, etc.) that enable the electronic device 1000 to communicate with one or more other computing devices. Such communication may occur through input/output (I/O) interfaces 1050. Also, the electronic device 1000 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network such as the internet) via the network adapter 1060. As shown, the network adapter 1060 communicates with the other modules of the electronic device 1000 over the bus 1030. It should be appreciated that although not shown, other hardware and/or software modules may be used in conjunction with the 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, among others.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, and may also be implemented by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.
In an exemplary embodiment of the present disclosure, there is also provided a computer-readable storage medium having stored thereon a program product capable of implementing the above-described method of the present specification. In some possible embodiments, aspects of the invention may also be implemented in the form of a program product comprising program code means for causing a terminal device to carry out the steps according to various exemplary embodiments of the invention described in the above section "exemplary methods" of the present description, when said program product is run on the terminal device.
A program product for implementing the above method according to an embodiment of the present invention is described, which may employ a portable compact disc read only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited in this respect, and in this document, a readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The program product may employ any combination of one or more readable media. The 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 electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
A computer readable signal medium may include a propagated data signal with readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A readable signal medium may be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., through the internet using an internet service provider).
It should be noted that although in the above detailed description several modules or units of the device for action execution are mentioned, such a division is not mandatory. Indeed, the features and functionality of two or more modules or units described above may be embodied in one module or unit, according to embodiments of the present disclosure. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
Moreover, although the steps of the methods of the present disclosure are depicted in the drawings in a particular order, this does not require or imply that these steps must be performed in this particular order, or that all of the depicted steps must be performed, to achieve desirable results. Additionally or alternatively, certain steps may be omitted, multiple steps combined into one step execution, and/or one step broken into multiple step executions, etc.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, and may also be implemented by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
Claims (10)
1. A data transmission method, comprising:
determining a data transmission quality index of a push flow node in a last data transmission period, wherein the data transmission quality index represents the matching degree of the data transmission rate of the push flow node and the network bandwidth;
determining the target data volume of the next data sending period of the flow pushing node according to the data sending quality index;
and sending the data of the target data volume to the server-side equipment in the next data sending period.
2. The method of claim 1, wherein determining the target data amount of the next data transmission period of the flow pushing node according to the data transmission quality indicator comprises:
judging whether the data sending quality index meets a preset condition or not;
if the data transmission quality index meets the preset condition, increasing a preset data volume on the basis of the data transmission volume of the previous data transmission period to obtain the target data volume;
if the data transmission quality index does not meet the preset condition, reducing the data transmission amount on the basis of the data transmission amount of the previous data transmission period, so that the target data amount is equal to the data amount actually transmitted by the stream pushing node in one data transmission period when the data transmission quality index meets the preset condition.
3. The method of claim 1, wherein the streaming node maintains a sliding window and sends the target amount of data to the server device in the next data sending period, comprising:
increasing or decreasing the size of the sliding window according to the target data volume to enable the data sending volume of the sliding window to be the target data volume;
and when the next data sending period comes, sending the data in the sliding window to the server-side equipment.
4. The method of claim 1, wherein the step of maintaining a sliding window by the flow pushing node and determining the target data amount of the next data transmission period of the flow pushing node according to the data transmission quality indicator comprises:
responding to the data sending quality index meeting the preset condition, and increasing the size of the sliding window by a preset step length so as to increase the data sending quantity of the sliding window by a preset data quantity;
and in response to that the data transmission quality index does not meet the preset condition, reducing the size of the sliding window to enable the data transmission quantity of the sliding window to be equal to the data quantity actually transmitted by the stream pushing node in one data transmission period when the data transmission quality index meets the preset condition.
5. The method of claim 1, wherein determining the data transmission quality indicator of the current node in the previous data transmission period comprises:
determining a first number of effective data packets actually sent by the stream pushing node in the previous data sending period and a second number of data packets which should be sent by the stream pushing node according to the code rate in the previous data sending period;
and calculating the ratio of the first quantity to the second quantity to obtain the data transmission quality index.
6. The method according to claim 5, wherein the predetermined condition is that the data transmission quality indicator is equal to 1.
7. The method according to claim 1, wherein the flow pushing node maintains a sliding window, the flow pushing node periodically sends data in the sliding window to the server device at the data sending period, 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 for storing the newly generated data, the method further comprising:
and before determining the data transmission quality index of the current push node in the last data transmission period, calculating the initial data transmission quantity of the sliding window according to a preset code rate, a preset data transmission period and the size of a single data block.
8. A data transmission apparatus, comprising:
the system comprises a first determining module, a second determining module and a third determining module, wherein the first determining module is used for determining a data sending quality index of a push flow node in a last data sending period, and the data sending quality index represents the matching degree of the data sending rate of the push flow node and the network bandwidth;
a second determining module, configured to determine, according to the data transmission quality indicator, a target data amount of a next data transmission period of the push flow node;
and the sending module is used for sending the data of the target data volume to the server-side equipment in the next data sending period.
9. An electronic device, comprising:
a processor; and
a memory for storing executable instructions of the processor;
wherein the processor is configured to perform the data transmission method of any one of claims 1-7 via execution of the executable instructions.
10. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, implements the data transmission method according to any one of claims 1 to 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204869.4A CN115988577A (en) | 2021-10-15 | 2021-10-15 | Data transmission method, data transmission device, storage medium and electronic equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204869.4A CN115988577A (en) | 2021-10-15 | 2021-10-15 | Data transmission method, data transmission device, storage medium and electronic equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115988577A true CN115988577A (en) | 2023-04-18 |
Family
ID=85956786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111204869.4A Pending CN115988577A (en) | 2021-10-15 | 2021-10-15 | Data transmission method, data transmission device, storage medium and electronic equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115988577A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116634203A (en) * | 2023-07-18 | 2023-08-22 | 湖南马栏山视频先进技术研究院有限公司 | Multi-collaborative self-adaptive video quality optimization method |
-
2021
- 2021-10-15 CN CN202111204869.4A patent/CN115988577A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116634203A (en) * | 2023-07-18 | 2023-08-22 | 湖南马栏山视频先进技术研究院有限公司 | Multi-collaborative self-adaptive video quality optimization method |
CN116634203B (en) * | 2023-07-18 | 2023-09-19 | 湖南马栏山视频先进技术研究院有限公司 | Multi-collaborative self-adaptive video quality optimization method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109089130B (en) | Method and device for adjusting timestamp of live video | |
US9693080B2 (en) | Distribution control system, distribution control method, and computer-readable storage medium | |
CN111135569A (en) | Cloud game processing method and device, storage medium and electronic equipment | |
CN109819322A (en) | Video transmission method, device, computer readable storage medium and electronic equipment | |
US11863841B2 (en) | Video playing control method and system | |
US20160044079A1 (en) | Distribution control system, distribution control method, and computer-readable storage medium | |
CN112312137A (en) | Video transmission method and device, electronic equipment and storage medium | |
US20210368225A1 (en) | Method and system for setting video cover | |
EP2974317B1 (en) | Computer system, distribution control system, distribution control method, and computer-readable storage medium | |
CN111432248A (en) | Quality monitoring method and device for live video stream | |
US20240121455A1 (en) | Method, apparatus, electronic device and storage medium for video bitrate switching | |
CN113422839A (en) | Cloud mobile phone system based on cloud computing, control method, medium and electronic device | |
CN112866730A (en) | Streaming media data transmission method, device, system, electronic equipment and storage medium | |
CN115988577A (en) | Data transmission method, data transmission device, storage medium and electronic equipment | |
CN113079386B (en) | Video online playing method and device, electronic equipment and storage medium | |
CN111107387B (en) | Video transcoding method and device and computer storage medium | |
CN113115120A (en) | Video slicing method and device, electronic equipment and storage medium | |
CN117041243A (en) | File uploading method and device, electronic equipment and readable medium | |
CN112039961B (en) | Streaming media system, data stream collection method, and storage medium | |
CN114025233B (en) | Data processing method and device, electronic equipment and storage medium | |
US20190036838A1 (en) | Delivery of Multimedia Components According to User Activity | |
CN112737971A (en) | Data processing method, device, storage medium and network equipment | |
CN111031383B (en) | Streaming media transmission method and device and electronic equipment | |
US11765220B2 (en) | Method, system, and computer program product for streaming | |
US11770592B2 (en) | Intrasegment adjustment of video transmission rate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |