CN111107382B - Data flow control method, device and system - Google Patents

Data flow control method, device and system Download PDF

Info

Publication number
CN111107382B
CN111107382B CN201811270591.9A CN201811270591A CN111107382B CN 111107382 B CN111107382 B CN 111107382B CN 201811270591 A CN201811270591 A CN 201811270591A CN 111107382 B CN111107382 B CN 111107382B
Authority
CN
China
Prior art keywords
code rate
streaming media
media file
network
coding
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.)
Active
Application number
CN201811270591.9A
Other languages
Chinese (zh)
Other versions
CN111107382A (en
Inventor
陈春光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811270591.9A priority Critical patent/CN111107382B/en
Publication of CN111107382A publication Critical patent/CN111107382A/en
Application granted granted Critical
Publication of CN111107382B publication Critical patent/CN111107382B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network

Abstract

The invention discloses a method, a device and a system for controlling data flow. Wherein, the method comprises the following steps: acquiring the buffer state of a streaming media buffer area; determining a network state according to the network bandwidth state and the sending code rate of the streaming media file; determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; acquiring a target code rate under the condition that the coding code rate needs to be adjusted; and coding the streaming media file according to the target code rate. The invention solves the technical problem that the detection aiming at the network bandwidth change in the prior art is judged only by sending the cache of the video data buffer area, so that the judgment accuracy is low and the control imbalance is blocked.

Description

Data flow control method, device and system
Technical Field
The invention relates to the technical field of internet, in particular to a method, a device and a system for controlling data flow.
Background
The current streaming media live broadcast technology transmits audio and video data between a user and a main broadcast in real time through the internet and generates good interactive experience, and the technology is widely applied to intelligent equipment terminals such as mobile phones, tablets and PCs, and live broadcast services are also expanded to various fields.
Because the streaming media data needs to be transmitted through the network, the bandwidth of the network is affected by factors such as geographical position, signal strength, network equipment, operators and the like, and conditions such as network bandwidth change, network jitter and the like can occur in the live broadcasting process, so that the transmission speed of the streaming media data and the real-time performance of live broadcasting are affected, and poor experiences such as time delay, pause, data loss, screen splash and the like are generated when a user watches the streaming media data.
Therefore, in order to provide a good live broadcast experience when the network bandwidth changes, it is necessary to detect the network status in real time in a live broadcast system by a technical means, determine whether the network bandwidth changes, and adaptively adjust the data bit rate of the live broadcast streaming media to approach the actual network bandwidth capability.
The live broadcast streaming media data mainly comprises video, audio and some other text information, and as the data volume of the video is large, the video code rate in general live broadcast is basically between hundreds of Kbps and Mbps, the code rate of the audio is usually dozens of Kbps, and other text information and the like are only a few Kbps, the code rate control of the streaming media is mainly the control of the code rate of the video. After the video is collected, the video is coded and compressed by a coder and then is sent to a network, and the control of the video code rate is the control of the coding code rate of the video coder,
in the related technology, the detection of the network bandwidth change in a common live broadcast system is judged only by sending the cache of a video data buffer area, so that the judgment is not timely and accurate enough, the control on the falling and rising of the video code rate is direct in the past, the reasonable regulation range is not limited, and the code rate is easy to exceed the actual network bandwidth when rising, so that the blockage is caused.
In view of the above-mentioned problem that the detection for the network bandwidth change in the prior art is determined only by sending the buffer of the video data buffer, which results in low determination accuracy and thus causes the control imbalance to be stuck, no effective solution has been proposed at present.
Disclosure of Invention
Embodiments of the present invention provide a method, an apparatus, and a system for controlling a data stream, so as to at least solve the technical problem in the prior art that detection on network bandwidth change is determined only by sending a buffer of a video data buffer, so that the determination accuracy is low, and thus control imbalance is jammed.
According to an aspect of an embodiment of the present invention, there is provided a method for controlling a data flow, including: acquiring the buffer state of a streaming media buffer area; determining a network state according to the network bandwidth state and the sending code rate of the streaming media file; determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; acquiring a target code rate under the condition that the coding code rate needs to be adjusted; and coding the streaming media file according to the target code rate.
Optionally, the method further comprises setting an initial code rate, a minimum code rate and a maximum code rate of the output stream media file; and determining the initial code rate as the coding code rate, and coding the streaming media file.
Optionally, the obtaining of the buffer status of the streaming media buffer area includes monitoring the video cache data volume; under the condition that the current network bandwidth is larger than the average code rate of the streaming media, if the frame number of the cached video data in the streaming media buffer area is smaller than or equal to a threshold value, determining that the streaming media buffer area underflows; or, if the cached streaming media frame is greater than the threshold, determining that the network bandwidth is abnormal and the streaming media buffer area overflows; or, determining that the network state is normal under the condition that the streaming media buffer area is not cached.
Optionally, determining the network state according to the network bandwidth state and the transmission code rate of the streaming media file comprises obtaining the network bandwidth state and the transmission code rate of the streaming media file by counting the average transmission time consumption of the data packets of the unit streaming media file; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Further, optionally, the data packet of the unit streaming media file includes a socket data packet.
Optionally, determining the network state according to the network bandwidth state and the transmission code rate of the streaming media file comprises obtaining the network bandwidth state by counting the size of a buffer in a streaming media buffer area; the sending code rate of the streaming media file is obtained by counting the data volume of the streaming media file sent in each second; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Optionally, determining the network state according to the network bandwidth state and the transmission code rate of the streaming media file comprises obtaining the network bandwidth state by counting the average transmission time consumption of a data packet of a unit streaming media file and the size of a buffer in a streaming media buffer; the sending code rate of the streaming media file is obtained by counting the data volume of the streaming media file sent in each second; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Optionally, the obtaining the target code rate includes: when the buffer state overflows and the network condition is abnormal, the sending code rate value of the streaming media file is taken as a percentage to obtain a target code rate; and if the target code rate is between the minimum code rate and the maximum code rate and is smaller than the current coding code rate, adjusting the current coding code rate to reduce to the target code rate.
Optionally, the obtaining the target code rate includes: when the buffer state underflows and the network condition is normal, if the coding code rate is smaller than the initial code rate, determining a preset multiple of the coding code rate as a target code rate; if the target code rate is smaller than the maximum code rate, adjusting the coding code rate to increase to the target code rate; if the target code rate is greater than or equal to the maximum code rate, determining the maximum code rate as the target code rate; and if the coding code rate is greater than the initial code rate and less than the maximum code rate, increasing a unit coefficient for the coding code rate to obtain a target code rate, increasing the coding code rate through a preset period until the target code rate is greater than or equal to the maximum code rate, and stopping adjustment.
According to another aspect of the embodiments of the present invention, there is also provided a device for controlling data flow, including: the first acquisition module is used for acquiring the buffer state of the streaming media buffer area; the second acquisition module is used for determining the network state according to the network bandwidth state and the sending code rate of the streaming media file; the judging module is used for determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; the control module is used for acquiring a target code rate under the condition that the coding code rate needs to be adjusted; and the coding module is used for coding the streaming media file according to the target code rate.
According to another aspect of the embodiments of the present invention, there is also provided a data flow control system, including: the system comprises a video code rate setting unit, a video encoder unit, a video buffer unit and a network sending unit, wherein the video code rate setting unit is used for setting the initial code rate, the minimum code rate and the maximum code rate of each resolution streaming media file; the initial code rate is used for setting the coding code rate for the first time; the minimum code rate is used for adjusting the lower limit of the code rate; the maximum code rate is used for adjusting the code rate upper limit; the video encoder unit is used for encoding the streaming media file and outputting the encoded streaming media file with a specified code rate, wherein the video encoder unit is also used for controlling the encoding code rate of the streaming media file and counting the real-time encoding code rate; the video buffer unit is used for sending the video file to a streaming media buffer area of a network, wherein the streaming media buffer area is used for sequentially storing the coded streaming media file; the network sending unit is used for acquiring the streaming media file from the streaming media buffer area, and packing and sending the streaming media file to a network according to a live broadcast protocol; and the code rate control module is used for determining whether to increase or decrease the video coding rate and calculating the adjusted video coding rate by detecting the cache state of the video buffer unit and the network state of the network sending unit in real time and referring to the coding rate of the video encoder unit, the actual sending rate and the setting parameters of the video rate setting unit.
According to still another aspect of the embodiments of the present invention, there is provided a storage medium, where the storage medium includes a stored program, and when the program runs, a device in which the storage medium is located is controlled to execute the above-mentioned control method for data flow.
In the embodiment of the invention, the buffer state of a streaming media buffer area is obtained by detecting two factors of average packet sending time consumption of a socket and the buffer condition of the video buffer area; determining a network state according to the network bandwidth state and the sending code rate of the streaming media file; determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; acquiring a target code rate under the condition that the coding code rate needs to be adjusted; the stream media file is coded according to the target code rate, the purpose of accurately and timely judging the actual condition of the current network bandwidth is achieved, the technical effect of avoiding control errors caused by judgment errors is achieved, and the technical problem that in the prior art, the judgment accuracy is low and further control imbalance is blocked due to the fact that detection aiming at network bandwidth changes is judged only by sending a cache of a video data buffer area is solved.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the invention without limiting the invention. In the drawings:
fig. 1 is a block diagram of a hardware configuration of a computer terminal of a method for controlling a data flow according to an embodiment of the present invention;
fig. 2 is a flowchart of a method for controlling data flow according to a first embodiment of the present invention;
fig. 3 is a structural diagram of a control apparatus of data flow according to a second embodiment of the present invention;
fig. 4 is a flow chart of a control system of data flow in execution according to the third embodiment of the present invention.
Detailed Description
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that the terms "first," "second," and the like in the description and claims of the present invention and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the invention described herein are capable of operation in other sequences than those illustrated or described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
The technical terms related to the present application are:
streaming media: streaming media refers to a media format, such as audio, video or multimedia files, that is played continuously in real time over a network using streaming technology.
socket (socket): and the network communication establishes connection through a socket and receives and transmits data.
Example 1
There is also provided, in accordance with an embodiment of the present invention, an embodiment of a method for controlling data flow, it should be noted that the steps illustrated in the flowchart of the accompanying drawings may be performed in a computer system such as a set of computer-executable instructions, and that, although a logical order is illustrated in the flowchart, in some cases, the steps illustrated or described may be performed in an order different than here.
The method provided by the first embodiment of the present application may be executed in a mobile terminal, a computer terminal, or a similar computing device. Taking the computer terminal as an example, fig. 1 is a block diagram of a hardware structure of the computer terminal of a method for controlling data flow according to an embodiment of the present invention. As shown in fig. 1, the computer terminal 10 may include one or more (only one shown) processors 102 (the processor 102 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), a memory 104 for storing data, and a transmission module 106 for communication functions. It will be understood by those skilled in the art that the structure shown in fig. 1 is only an illustration and is not intended to limit the structure of the electronic device. For example, the computer terminal 10 may also include more or fewer components than shown in FIG. 1, or have a different configuration than shown in FIG. 1.
The memory 104 may be used to store software programs and modules of application software, such as program instructions/modules corresponding to the data flow control method in the embodiment of the present invention, and the processor 102 executes various functional applications and data processing by running the software programs and modules stored in the memory 104, that is, implementing the above-mentioned data flow control method of the application program. The memory 104 may include high speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include memory located remotely from the processor 102, which may be connected to the computer terminal 10 over a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The transmission device 106 is used for receiving or transmitting data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider of the computer terminal 10. In one example, the transmission device 106 includes a Network adapter (NIC) that can be connected to other Network devices through a base station so as to communicate with the internet. In one example, the transmission device 106 can be a Radio Frequency (RF) module, which is used to communicate with the internet in a wireless manner.
Under the above operating environment, the present application provides a method for controlling data flow as shown in fig. 2. Fig. 2 is a flowchart of a method for controlling data flow according to a first embodiment of the present invention.
Step S200, obtaining the buffer state of the streaming media buffer area;
specifically, in step S200, obtaining the buffer status of the streaming media buffer area may be applied to a live video scene, and in order to ensure smooth playing of the streaming media file, before encoding the streaming media file, the buffer status of the streaming media buffer area needs to be obtained, where, taking the streaming media file as video data as an example, the buffer status may include: the data volume of the cache data in the video buffer area can change according to the network bandwidth condition, and when the network condition is normal, the video data in the buffer area can be immediately sent to the network without caching; under the condition of poor network conditions, the video data in the buffer area can be cached, and the video data can be cached more and more along with the increasingly poor network conditions. When the current network bandwidth is higher than the average code rate of the video data, the number of buffered video data frames in the video buffer area is less than or equal to one, the buffer area underflows at the moment, and when the number of buffered video data frames is more than one second, the network bandwidth is considered to be abnormal, and the buffer area overflows.
Step S202, determining a network state according to the network bandwidth state and the sending code rate of the streaming media file;
specifically, in step S202, the bandwidth condition of the network and the transmission rate for acquiring real-time video data can be reflected by the average transmission time consumption statistics for the unit data packets.
The size of a single-time transmission data packet is usually hundreds of bytes, the consumed time for filling hundreds of bytes into a system buffer area is usually tens of microseconds under normal conditions, and when the blocking occurs, the time can reach the level of milliseconds even seconds, a network transmission module counts the average consumed time T of all transmission data packets within 1 second, and when the value of T within 3 seconds is more than 100 microseconds continuously, the network bandwidth is considered to be reduced, the network condition is abnormal, otherwise, the network condition is considered to be normal.
In addition, the actual sending code rate of the current video (i.e., in the embodiment of the present application) can be obtained by counting the sending video data amount per second.
Step S204, determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state;
step S206, under the condition that the coding rate needs to be adjusted, a target code rate is obtained;
based on the determination in step S204, in step S206, it is determined whether to increase or decrease the video coding rate and calculate the adjusted video coding rate by detecting the buffer status and the network status in real time, and referring to the coding rate, the actual transmission rate and the setting parameter, where the adjusted video coding rate is the target rate in the embodiment of the present application.
Step S208, the streaming media file is encoded according to the target code rate.
In step S208, the streaming media file is encoded based on the target bitrate in step S206, so as to reduce the occupation of the network bandwidth and reduce the network load.
In the embodiment of the invention, the buffer state of a streaming media buffer area is obtained by detecting two factors of average packet sending time consumption of a socket and the buffer condition of the video buffer area; determining a network state according to the network bandwidth state and the sending code rate of the streaming media file; determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; acquiring a target code rate under the condition that the coding code rate needs to be adjusted; the stream media file is coded according to the target code rate, the purpose of accurately and timely judging the actual condition of the current network bandwidth is achieved, the technical effect of avoiding control errors caused by judgment errors is achieved, and the technical problem that in the prior art, the judgment accuracy is low and further control imbalance is blocked due to the fact that detection aiming at network bandwidth changes is judged only by sending a cache of a video data buffer area is solved.
Optionally, the method for controlling a data stream provided in the embodiment of the present application further includes:
step S198, setting the initial code rate, the minimum code rate and the maximum code rate of the output stream media file;
step S199, determine the initial code rate as the encoding code rate, and encode the streaming media file.
Specifically, in combination with step S198 and step S199, since different live scenes in the live streaming media have different requirements on the definition and the fluency of the video, the video coding rate of each resolution is limited to achieve the optimal definition and fluency. By setting the following three parameters: the initial code rate, the minimum code rate and the maximum code rate control the adjustment range of the video code rate. The initial code rate is the code rate set for the video encoder for the first time, and the minimum code rate and the maximum code rate correspond to the lower limit and the upper limit of the code rate which can be adjusted by the encoder.
Optionally, the acquiring the buffer status of the streaming media buffer in step S200 includes:
step S2001, monitoring the video cache data amount;
step S2002, under the condition that the current network bandwidth is larger than the average code rate of the streaming media, if the frame number of the cached video data in the streaming media buffer area is smaller than or equal to a threshold value, determining that the streaming media buffer area underflows; or the like, or, alternatively,
step S2002', if the cached streaming media frame is greater than the threshold, it is determined that the network bandwidth is abnormal and the streaming media buffer area overflows; or the like, or, alternatively,
step S2002 ", in case that the streaming media buffer is not cached, it is determined that the network state is normal.
Specifically, based on the monitoring of the video buffer data amount in step S2001, it is determined whether the buffer state of the current streaming media buffer is in underflow, overflow, or normal. In the embodiment of the present application, the threshold is described by taking 1 second as an example. It should be noted that, in the embodiment of the present application, the setting of the threshold is only taken as an example of 1 second, and is subject to the implementation of the control method for the data stream provided in the embodiment of the present application, which is not limited specifically.
Optionally, in step S202, determining the network status according to the network bandwidth status and the transmission code rate of the streaming media file includes:
step S2021, obtaining a network bandwidth state and a transmission code rate of the streaming media file by counting the average transmission time consumption of the data packet of the unit streaming media file;
step S2022, determining the network status according to the network bandwidth status and the transmission code rate of the streaming media file.
Further, optionally, the data packet of the unit streaming media file includes a socket data packet.
Here, in conjunction with step S2021 and step S2022, in the process of determining the network status, the bandwidth condition of the network and the transmission rate for acquiring real-time video data can be reflected by the average transmission time consumption statistics of the unit data packets (i.e., the data packets of the unit streaming media file in the embodiment of the present application).
The live broadcast protocol is to exchange network data through a programming interface Socket, and the Socket sends a request to a network or responds to the network request to send and receive data. When sending video data to a network, Socket establishes connection, decomposes the video data into a plurality of small network data packets and fills the network data packets into a kernel sending buffer area of an operating system, and a network module at the bottom layer of the system sends the data in the sending buffer area to the network.
The Socket (Socket) sending method has two modes of blocking and non-blocking, when the remaining space in the system sending buffer is not enough to fill the size of the data sent this time, the sending program can be caused to wait in the blocking mode until the data is completely filled in the system sending buffer or the set maximum timeout waiting time is reached, and then the waiting can be released;
the sending program in the non-blocking mode returns immediately without waiting for the system sending buffer area to be filled, and the sending program cannot be blocked.
The method for controlling the data flow provided by the embodiment of the application can be suitable for data sending in a blocking mode, the sending buffer area can overflow when the network is unstable by setting the size of the fixed system sending buffer area and the maximum overtime waiting time, so that the single-time sending data is blocked, and the average consumed time of the single-time sending data packet in unit time can be counted to judge the network bandwidth condition.
Because the size of a single-time transmission data packet is usually hundreds of bytes, the time consumed for filling hundreds of bytes into a system buffer area is usually tens of microseconds under normal conditions, and when the blocking occurs, the time can reach the level of milliseconds even seconds, through counting the average time consumed T of all the transmission data packets within 1 second, when the value of T within 3 continuous seconds is more than 100 microseconds, the network bandwidth is considered to be reduced, the network condition is abnormal, otherwise, the network condition is considered to be normal. In addition, the actual sending code rate of the current video can be obtained by counting the sending video data volume in each second.
It should be noted that, the setting of the statistical time is only a preferred example based on the above example, and is not limited specifically to the implementation of the method for controlling the data stream provided in the embodiment of the present application.
In addition, in the embodiment of the present application, the network status is determined according to the packet sending time consumption of the socket, and the network status may also be determined according to the size of the buffer in the system sending buffer, or the network status is determined by combining the packet sending time consumption of the socket and the size of the buffer in the system sending buffer, which is specifically as follows:
the first method is as follows: judging the network condition by the size of a buffer in a system sending buffer area;
determining the network state according to the network bandwidth state and the sending code rate of the streaming media file, wherein the network bandwidth state is obtained by counting the size of a buffer in a streaming media buffer area; the sending code rate of the streaming media file is obtained by counting the data volume of the streaming media file sent in each second; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
The second method comprises the following steps: judging the network condition by combining the packet sending time of the socket and the size of a buffer in a system sending buffer area;
according to the network bandwidth state and the transmission code rate of the streaming media file, determining the network state comprises the steps of counting the average transmission time consumption of a data packet of a unit streaming media file and the size of a buffer in a streaming media buffer area to obtain the network bandwidth state; the sending code rate of the streaming media file is obtained by counting the data volume of the streaming media file sent in each second; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Here, a description will be given of a preferred example in which the network condition is determined according to the packet transmission time of the socket.
Optionally, the obtaining the target bitrate in step S206 includes:
step S2061, when the buffer state overflows and the network condition is abnormal, the sending code rate value of the streaming media file is taken as a percentage to obtain a target code rate;
step S2062, if the target code rate is between the minimum code rate and the maximum code rate and is smaller than the current code rate, the current code rate is adjusted to be reduced to the target code rate.
Specifically, combining step S2061 and step S2062, when an overflow condition occurs and a network abnormal condition exists, ninety-five percent of a video sending code rate value (that is, a sending code rate value of a streaming media file in the embodiment of the present application) is taken as a target code rate, if the target code rate is between a set minimum code rate and a set maximum code rate and is smaller than a current coding code rate, the target code rate is effective, and the current coding rate is notified to be reduced to the target code rate.
In the embodiment of the present application, an example of "taking ninety-five percent of a video sending code rate value as a target code rate" is described, so as to implement the control method for data stream provided in the embodiment of the present application, which is not specifically limited.
Optionally, the obtaining the target bitrate in step S206 includes:
step S2061', when the buffer state underflows and the network condition is normal, if the coding code rate is less than the initial code rate, the preset multiple of the coding code rate is determined as the target code rate;
step S2062', if the target code rate is less than the maximum code rate, the code rate is adjusted to be increased to the target code rate;
step S2063', if the target code rate is greater than or equal to the maximum code rate, determining the maximum code rate as the target code rate;
step S2064', if the coding code rate is greater than the initial code rate and less than the maximum code rate, increasing the unit coefficient to the coding code rate to obtain the target code rate, and increasing the coding code rate through a preset period until the target code rate is greater than or equal to the maximum code rate, and stopping the adjustment.
Specifically, with reference to steps S2061 'to S2064', when an underflow condition occurs and the network is normal, if the current coding rate is smaller than the initial rate, then 1.1 times of the current coding rate is taken as the target rate; if the target code rate is smaller than the maximum code rate, increasing the current coding code rate to the target code rate, otherwise increasing to the maximum code rate. And if the current coding rate is greater than the initial code rate and less than the maximum code rate, the target code rate is equal to the coding rate +20kbps, the encoder is informed of increasing the coding rate to the target code rate every 10 seconds, and the adjustment is stopped until the target code rate is greater than or equal to the maximum code rate.
Because the actual network bandwidth cannot be determined under the condition that the network is normal, under the condition that the current coding rate is greater than the initial coding rate, because the coding rate meets the requirement of normal live broadcast at the moment, the coding rate can be increased to approach or exceed the actual network bandwidth by a small amplitude periodically to avoid the pause caused by the fact that the coding rate is increased by a large amplitude to be close to the actual network bandwidth, so that the better video coding quality is provided, and the best user watching experience is achieved.
It should be noted that, for simplicity of description, the above-mentioned method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the order of acts, as some steps may occur in other orders or concurrently in accordance with the invention. Further, those skilled in the art should also appreciate that the embodiments described in the specification are preferred embodiments and that the acts and modules referred to are not necessarily required by the invention.
Through the above description of the embodiments, those skilled in the art can clearly understand that the control method of the data stream according to the above embodiments can be implemented by software plus a necessary general hardware platform, and of course, may also be implemented by hardware, but in many cases, the former is a better implementation. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (e.g., ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal device (e.g., a mobile phone, a computer, a server, or a network device) to execute the method according to the embodiments of the present invention.
Example 2
According to an embodiment of the present invention, there is further provided an apparatus for implementing the method for controlling a data stream, where fig. 3 is a structural diagram of an apparatus for controlling a data stream according to a second embodiment of the present invention, and as shown in fig. 3, the apparatus includes: a first acquisition module 30, a second acquisition module 32, a determination module 34, a control module 36, and an encoding module 38.
The first obtaining module 30 is configured to obtain a buffer status of a streaming media buffer; a second obtaining module 32, configured to determine a network status according to the network bandwidth status and the sending code rate of the streaming media file; the judging module 34 is configured to determine whether the coding rate needs to be adjusted according to the buffer status and the network status; the control module 36 is configured to obtain a target code rate when the coding rate needs to be adjusted; and an encoding module 38, configured to encode the streaming media file according to the target bitrate.
In the embodiment of the invention, the buffer state of a streaming media buffer area is obtained by detecting two factors of average packet sending time consumption of a socket and the buffer condition of the video buffer area; determining a network state according to the network bandwidth state and the sending code rate of the streaming media file; determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; acquiring a target code rate under the condition that the coding code rate needs to be adjusted; the stream media file is coded according to the target code rate, the purpose of accurately and timely judging the actual condition of the current network bandwidth is achieved, the technical effect of avoiding control errors caused by judgment errors is achieved, and the technical problem that in the prior art, the judgment accuracy is low and further control imbalance is blocked due to the fact that detection aiming at network bandwidth changes is judged only by sending a cache of a video data buffer area is solved.
Example 3
According to another aspect of the embodiments of the present invention, there is further provided a data flow control system, and fig. 4 is a schematic flow chart of the data flow control system according to the third embodiment of the present invention when executed, as shown in fig. 4, including: the device comprises a video code rate setting unit, a video encoder unit, a video buffer unit, a network sending unit and a code rate control module.
The video code rate setting unit is used for setting the initial code rate, the minimum code rate and the maximum code rate of each resolution streaming media file; the initial code rate is used for setting the coding code rate for the first time; the minimum code rate is used for adjusting the lower limit of the code rate; the maximum code rate is used for adjusting the code rate upper limit; the video encoder unit is used for encoding the streaming media file and outputting the encoded streaming media file with a specified code rate, wherein the video encoder unit is also used for controlling the encoding code rate of the streaming media file and counting the real-time encoding code rate; the video buffer unit is used for sending the video file to a streaming media buffer area of a network, wherein the streaming media buffer area is used for sequentially storing the coded streaming media file; the network sending unit is used for acquiring the streaming media file from the streaming media buffer area, and packing and sending the streaming media file to a network according to a live broadcast protocol; and the rate control module is used for determining whether to increase or decrease the video coding rate and calculating the adjusted video coding rate by detecting the cache state of the video buffer unit 44 and the network state of the network sending unit in real time and referring to the coding rate of the video encoder unit, the actual sending rate and the setting parameters of the video rate setting unit.
Specifically, as shown in fig. 4, a flow of the control system for data stream provided in the embodiment of the present application when executed is specifically as follows:
step 1: and setting the initial code rate, the minimum code rate and the target code rate of the output video through a video code rate setting unit.
Step 2: and setting an initial code rate to the video encoder unit as the encoding code rate of the encoder.
Step 3: and monitoring the video buffer data volume of the video buffer unit to acquire the video buffer status.
Step 4: and monitoring the statistical result of the network sending unit to obtain the current network bandwidth condition and the current video sending code rate.
Step 5: and the code rate control unit acquires whether the video buffer unit underflows or overflows or not through the third step, acquires whether the network bandwidth condition is normal or abnormal through the fourth step, determines whether to adjust the coding code rate, returns to the third step to continue monitoring if the code rate does not need to be adjusted, calculates the descending or ascending target code rate if the code rate needs to be adjusted, and returns to the second step to control the encoder to adjust the coding code rate to the target code rate.
Example 4
According to still another aspect of the embodiments of the present invention, there is provided a storage medium, where the storage medium includes a stored program, and when the program runs, a device in which the storage medium is located is controlled to execute the above-mentioned control method for data flow.
Example 5
The embodiment of the invention also provides a storage medium. Optionally, in this embodiment, the storage medium may be configured to store a program code executed by the data stream control method provided in the first embodiment.
Optionally, in this embodiment, the storage medium may be located in any one of computer terminals in a computer terminal group in a computer network, or in any one of mobile terminals in a mobile terminal group.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: acquiring the buffer state of a streaming media buffer area; determining a network state according to the network bandwidth state and the sending code rate of the streaming media file; determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state; acquiring a target code rate under the condition that the coding code rate needs to be adjusted; and coding the streaming media file according to the target code rate.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: setting an initial code rate, a minimum code rate and a maximum code rate of an output stream media file; and determining the initial code rate as the coding code rate, and coding the streaming media file.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: the method comprises the steps of obtaining the buffer state of a streaming media buffer area, wherein the buffer state comprises monitoring the video cache data volume; under the condition that the current network bandwidth is larger than the average code rate of the streaming media, if the frame number of the cached video data in the streaming media buffer area is smaller than or equal to a threshold value, determining that the streaming media buffer area underflows; or, if the cached streaming media frame is greater than the threshold, determining that the network bandwidth is abnormal and the streaming media buffer area overflows; or, determining that the network state is normal under the condition that the streaming media buffer area is not cached.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: the method comprises the steps of obtaining the network bandwidth state and the sending code rate of the streaming media file by counting the average sending time consumption of a data packet of a unit streaming media file; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Further, optionally, in the present embodiment, the storage medium is configured to store program code for performing the following steps: the packets of the single-bit streaming media file include socket packets.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: determining the network state according to the network bandwidth state and the sending code rate of the streaming media file, wherein the network bandwidth state is obtained by counting the size of a buffer in a streaming media buffer area; the sending code rate of the streaming media file is obtained by counting the data volume of the streaming media file sent in each second; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: the method comprises the steps of obtaining the network bandwidth state by counting the average transmission time consumption of a data packet of a unit streaming media file and the size of a buffer cache in a streaming media buffer area; the sending code rate of the streaming media file is obtained by counting the data volume of the streaming media file sent in each second; and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: the obtaining of the target code rate includes: when the buffer state overflows and the network condition is abnormal, taking the percentage of the sending code rate value of the streaming media file to obtain a target code rate; and if the target code rate is between the minimum code rate and the maximum code rate and is smaller than the current coding code rate, adjusting the current coding code rate to reduce to the target code rate.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: the obtaining of the target code rate includes: when the buffer state underflows and the network condition is normal, if the coding code rate is smaller than the initial code rate, determining a preset multiple of the coding code rate as a target code rate; if the target code rate is smaller than the maximum code rate, adjusting the coding code rate to increase to the target code rate; if the target code rate is greater than or equal to the maximum code rate, determining the maximum code rate as the target code rate; and if the coding code rate is greater than the initial code rate and less than the maximum code rate, increasing a unit coefficient for the coding code rate to obtain a target code rate, increasing the coding code rate through a preset period until the target code rate is greater than or equal to the maximum code rate, and stopping adjustment.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
In the above embodiments of the present invention, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed technology can be implemented in other ways. The above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units is only one type of division of logical functions, and there may be other divisions when actually implemented, for example, a plurality of units or components may be combined or may be integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, units or modules, and may be in an electrical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in the form of hardware, or may also be implemented in the form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention, which is substantially or partly contributed by the prior art, or all or part of the technical solution may be embodied in a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to perform all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic or optical disk, and other various media capable of storing program codes.
The foregoing is only a preferred embodiment of the present invention, and it should be noted that, for those skilled in the art, various modifications and decorations can be made without departing from the principle of the present invention, and these modifications and decorations should also be regarded as the protection scope of the present invention.

Claims (12)

1. A method of controlling data flow, comprising:
acquiring the buffer state of a streaming media buffer area;
determining a network state according to the network bandwidth state and the sending code rate of the streaming media file, wherein the network bandwidth state is determined by at least one of the following modes: counting the average transmission time consumption of a data packet of a unit streaming media file, and counting the size of a buffer in a streaming media buffer area, wherein the transmission code rate is determined by counting the data volume of the streaming media file transmitted in each second;
determining whether the coding rate needs to be adjusted according to the buffer state and the network state;
acquiring a target code rate under the condition that the coding code rate needs to be adjusted;
and coding the streaming media file according to the target code rate.
2. The method of controlling data flow according to claim 1, wherein the method further comprises:
setting an initial code rate, a minimum code rate and a maximum code rate of an output stream media file;
and determining the initial code rate as a coding code rate, and coding the streaming media file.
3. The method for controlling data stream according to claim 1, wherein the obtaining the buffer status of the streaming media buffer comprises:
monitoring the video cache data volume;
under the condition that the current network bandwidth is larger than the average code rate of the streaming media, if the frame number of the cached video data in a streaming media buffer area is smaller than or equal to a threshold value, determining that the streaming media buffer area underflows; or the like, or, alternatively,
if the cached streaming media frame is larger than a threshold value, determining that the network bandwidth is abnormal, and overflowing the streaming media buffer area; or the like, or, alternatively,
and determining that the network state is normal under the condition that the streaming media buffer area is not cached.
4. The method for controlling data stream according to claim 1, wherein the determining the network status according to the network bandwidth status and the transmission code rate of the streaming media file comprises:
the network bandwidth state and the sending code rate of the streaming media file are obtained by counting the average sending time consumption of the data packet of the unit streaming media file;
and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
5. The method for controlling data stream according to claim 4, wherein the data packets of the single bit streaming media file comprise socket data packets.
6. The method for controlling data stream according to claim 1, wherein the determining the network status according to the network bandwidth status and the transmission code rate of the streaming media file comprises:
obtaining the network bandwidth state by counting the size of a buffer cache in a streaming media buffer area;
the method comprises the steps of obtaining the sending code rate of the streaming media file by counting the data volume of the streaming media file sent in each second;
and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
7. The method for controlling data stream according to claim 1, wherein the determining the network status according to the network bandwidth status and the transmission code rate of the streaming media file comprises:
obtaining the network bandwidth state by counting the average transmission time of the data packets of the unit streaming media file and the size of a buffer cache in the streaming media buffer area;
the method comprises the steps of obtaining the sending code rate of the streaming media file by counting the data volume of the streaming media file sent in each second;
and determining the network state according to the network bandwidth state and the sending code rate of the streaming media file.
8. The method for controlling data stream according to any one of claims 1 to 7, wherein the obtaining the target code rate comprises:
when the buffer state overflows and the network state is abnormal, taking the percentage of the sending code rate value of the streaming media file to obtain the target code rate;
and if the target code rate is between the minimum code rate and the maximum code rate and is smaller than the current coding code rate, adjusting the current coding code rate to be reduced to the target code rate.
9. The method for controlling data stream according to any one of claims 1 to 5, wherein the obtaining the target code rate comprises:
when the buffer state underflows and the network state is normal, if the coding code rate is smaller than the initial code rate, determining a preset multiple of the coding code rate as the target code rate;
if the target code rate is smaller than the maximum code rate, adjusting the coding code rate to rise to the target code rate;
if the target code rate is greater than or equal to the maximum code rate, determining the maximum code rate as the target code rate;
if the coding code rate is larger than the initial code rate and smaller than the maximum code rate, increasing a unit coefficient to the coding code rate to obtain the target code rate, increasing the coding code rate through a preset period until the target code rate is larger than or equal to the maximum code rate, and stopping adjustment.
10. A control device for data flow, comprising:
the first acquisition module is used for acquiring the buffer state of the streaming media buffer area;
a second obtaining module, configured to determine a network status according to a network bandwidth status and a sending code rate of the streaming media file, where the network bandwidth status is determined in at least one of the following manners: counting the average transmission time consumption of a data packet of a unit streaming media file, and counting the size of a buffer in a streaming media buffer area, wherein the transmission code rate is determined by counting the data volume of the streaming media file transmitted in each second;
the judging module is used for determining whether the coding rate needs to be adjusted or not according to the buffer state and the network state;
the control module is used for acquiring a target code rate under the condition that the coding code rate needs to be adjusted;
and the coding module is used for coding the streaming media file according to the target code rate.
11. A system for controlling data flow, comprising: a video code rate setting unit, a video encoder unit, a video buffer unit, a network transmission unit and a code rate control module, wherein,
the video code rate setting unit is used for setting the initial code rate, the minimum code rate and the maximum code rate of each resolution streaming media file; the initial code rate is used for setting the coding code rate for the first time; the minimum code rate is used for adjusting the lower limit of the code rate; the maximum code rate is used for adjusting the code rate upper limit;
the video encoder unit is used for encoding the streaming media file and outputting the encoded streaming media file with a specified code rate, wherein the video encoder unit is also used for controlling the encoding code rate of the streaming media file and counting the real-time encoding code rate;
the video buffer unit is used for sending the video file to a streaming media buffer area of a network, wherein the streaming media buffer area is used for sequentially storing the coded streaming media file; the network sending unit is used for acquiring the streaming media file from the streaming media buffer area, and packing and sending the streaming media file to a network according to a live broadcast protocol;
the code rate control module is configured to determine whether to increase or decrease a video coding rate and calculate an adjusted video coding rate by detecting a buffer status of the video buffer unit and a network status of the network sending unit in real time and referring to a coding rate of the video encoder unit, an actual sending rate, and setting parameters of the video rate setting unit, where the network status is determined according to a network bandwidth status and the actual sending rate, and the network bandwidth status is determined by at least one of the following manners: and counting the average transmission time consumption of the data packets of the unit streaming media file, and counting the size of a buffer in the streaming media buffer area, wherein the transmission code rate is determined by counting the data volume of the streaming media file transmitted in each second.
12. A storage medium comprising a stored program, wherein the program, when executed, controls an apparatus on which the storage medium is located to perform: a method of controlling a data flow according to claim 1.
CN201811270591.9A 2018-10-29 2018-10-29 Data flow control method, device and system Active CN111107382B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811270591.9A CN111107382B (en) 2018-10-29 2018-10-29 Data flow control method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811270591.9A CN111107382B (en) 2018-10-29 2018-10-29 Data flow control method, device and system

Publications (2)

Publication Number Publication Date
CN111107382A CN111107382A (en) 2020-05-05
CN111107382B true CN111107382B (en) 2022-05-06

Family

ID=70419705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811270591.9A Active CN111107382B (en) 2018-10-29 2018-10-29 Data flow control method, device and system

Country Status (1)

Country Link
CN (1) CN111107382B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468855B (en) * 2020-11-11 2023-01-24 西安万像电子科技有限公司 Data transmission method and device and nonvolatile storage medium
CN112565762B (en) * 2020-12-04 2022-08-12 上海航天计算机技术研究所 Method and device for equalizing coding of multichannel video images suitable for carrier rocket
CN113162895B (en) * 2020-12-22 2023-04-07 咪咕文化科技有限公司 Dynamic coding method, streaming media quality determination method and electronic equipment
CN112579210A (en) * 2020-12-30 2021-03-30 上海众源网络有限公司 Application program control method and device
CN116074554A (en) * 2021-10-29 2023-05-05 重庆紫光华山智安科技有限公司 Method, system, equipment and medium for controlling streaming media data volume
WO2023115414A1 (en) * 2021-12-22 2023-06-29 深圳Tcl新技术有限公司 Data processing method, video playback system, terminal device and storage medium
CN114629894B (en) * 2022-03-19 2024-03-19 敦和万物信息技术(苏州)有限公司 Internet of things data transmission method and device for electronic data evidence collection
CN115103235B (en) * 2022-06-21 2023-10-20 咪咕互动娱乐有限公司 Data transmission method, device, equipment and medium
CN115278319A (en) * 2022-07-13 2022-11-01 海信视像科技股份有限公司 Screen projection data transmission method and device, electronic equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702237A (en) * 2012-09-28 2014-04-02 北京大学 Rate self-adapting method and device for HTTP (Hyper Text Transport Protocol) streaming media
CN105744342A (en) * 2016-01-28 2016-07-06 腾讯科技(深圳)有限公司 Data transmission method and device for mobile terminal
CN205545722U (en) * 2016-04-27 2016-08-31 上海象融蓝海文化传媒有限公司 System is play on line to video
CN107295395A (en) * 2017-06-27 2017-10-24 武汉斗鱼网络科技有限公司 Code check adaptive regulation method, device and electronic equipment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359004B2 (en) * 2003-05-23 2008-04-15 Microsoft Corporation Bi-level and full-color video combination for video communication
CN101068236B (en) * 2007-04-13 2011-10-26 华为技术有限公司 Streaming media bit rate control method, system and equipment
CN101296158A (en) * 2007-04-26 2008-10-29 深圳市同洲电子股份有限公司 Stream media data transmission method and data transmission device thereof
US9276967B2 (en) * 2012-07-27 2016-03-01 Centurylink Intellectual Property Llc System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system
US9756112B2 (en) * 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US10530683B2 (en) * 2016-08-31 2020-01-07 Citrix Systems, Inc. High-quality adaptive bitrate video through multiple links

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702237A (en) * 2012-09-28 2014-04-02 北京大学 Rate self-adapting method and device for HTTP (Hyper Text Transport Protocol) streaming media
CN105744342A (en) * 2016-01-28 2016-07-06 腾讯科技(深圳)有限公司 Data transmission method and device for mobile terminal
CN205545722U (en) * 2016-04-27 2016-08-31 上海象融蓝海文化传媒有限公司 System is play on line to video
CN107295395A (en) * 2017-06-27 2017-10-24 武汉斗鱼网络科技有限公司 Code check adaptive regulation method, device and electronic equipment

Also Published As

Publication number Publication date
CN111107382A (en) 2020-05-05

Similar Documents

Publication Publication Date Title
CN111107382B (en) Data flow control method, device and system
US11503307B2 (en) System and method for automatic encoder adjustment based on transport data
KR101942208B1 (en) Server-side Adaptive Bitrate Control for DLNA HTTP Streaming Clients
US9398488B2 (en) Video service buffer management in a mobile rate control enabled network
EP2859703B1 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US9532062B2 (en) Controlling player buffer and video encoder for adaptive video streaming
US9042444B2 (en) System and method for transmission of data signals over a wireless network
CN102710374B (en) Speed control method in wireless streaming media transmission
CN106576081B (en) Switching up by receiver driving in visual telephone
US20140181266A1 (en) System, streaming media optimizer and methods for use therewith
EP2589223B1 (en) Video streaming
KR20150048775A (en) Device and method for adaptive rate multimedia communications on a wireless network
CN107295395A (en) Code check adaptive regulation method, device and electronic equipment
KR20110120836A (en) Controlling an adaptive streaming of digital content
CN104270649A (en) Image encoding device and image encoding method
JP2015530822A (en) Apparatus and method for adaptive rate multimedia communication over a wireless network
AU2021200428B2 (en) System and method for automatic encoder adjustment based on transport data
WO2014209493A1 (en) State management for video streaming quality of experience degradation control and recovery using a video quality metric
WO2015044104A1 (en) Video traffic management
Dong et al. A joint rate and buffer control scheme for video transmission over LTE wireless networks
CN117082245A (en) Video encoding method, video encoding device, storage medium and electronic device
WO2018002687A1 (en) Estimating a buffer level in a playout device
EP2408204A1 (en) Video streaming

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
GR01 Patent grant
GR01 Patent grant