WO2023217188A1 - 一种直播数据传输方法、装置、系统、设备和介质 - Google Patents
一种直播数据传输方法、装置、系统、设备和介质 Download PDFInfo
- Publication number
- WO2023217188A1 WO2023217188A1 PCT/CN2023/093270 CN2023093270W WO2023217188A1 WO 2023217188 A1 WO2023217188 A1 WO 2023217188A1 CN 2023093270 W CN2023093270 W CN 2023093270W WO 2023217188 A1 WO2023217188 A1 WO 2023217188A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- live
- live broadcast
- transmission channel
- stream
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/631—Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6375—Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
Definitions
- the embodiments of the present disclosure relate to Internet technology, for example, to a live data transmission method, device, system, equipment and medium.
- the server needs to transmit the live broadcast data to the live broadcast client.
- the transmission of live data depends on the transmission protocol of the transport layer. Using different transmission protocols is equivalent to using different data transmission methods to transmit live data.
- the transmission protocols that can be used for live broadcast data transmission at the transport layer include TCP (Transmission Control Protocol) protocol or QUIC (Quick UDP Internet Connection) protocol.
- TCP-based transmission is reliable transmission
- QUIC protocol is also reliable transmission in nature.
- Embodiments of the present disclosure provide a live broadcast data transmission method, device, system, equipment and medium to realize unreliable transmission of live broadcast data, ensure the playback effect of live broadcast data, and improve user experience.
- embodiments of the present disclosure provide a live broadcast data transmission method, applied to a live broadcast server, including:
- the live data frames in the live data stream are sent to the live broadcast client.
- embodiments of the present disclosure also provide a live broadcast data transmission method, which is applied to the live broadcast client, including:
- the second streaming transmission channel is a non-reliable type streaming transmission channel created by the live broadcast server
- the live broadcast data to be played that matches the live broadcast play request is determined.
- embodiments of the present disclosure also provide a live broadcast data transmission device, integrated in a live broadcast server, including:
- a request receiving module configured to receive a live broadcast request sent by a live broadcast client and determine a live data stream that matches the live broadcast request, wherein the live broadcast request passes the first stream of a reliable type established by the live broadcast client. transmission channel transmission;
- a channel creation module configured to create a second stream transmission channel of a non-reliable type and establish an association with the first stream transmission channel
- An information sending module configured to send the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel;
- a data frame sending module is configured to send live data frames in the live data stream to the live broadcast client through the second stream transmission channel.
- embodiments of the present disclosure also provide a live broadcast data transmission device, integrated into the live broadcast client, including:
- the request sending module is configured to send a live broadcast playback request to the live broadcast server through the established first stream transmission channel of a reliable type
- a data packet receiving module configured to receive data packets sent by the live broadcast server through the first stream transmission channel and the second stream transmission channel in response to the live broadcast playback request, wherein the second stream transmission channel is an unreliable one created by the live broadcast server.
- Type of streaming channel
- the live data determination module is configured to determine the live data to be played that matches the live broadcast request by analyzing the data packets received from the first stream transmission channel and the second stream transmission channel.
- embodiments of the present disclosure also provide a live broadcast data transmission system, the system includes: a live broadcast server and a live broadcast client;
- the live broadcast server is configured to implement the live broadcast data transmission method as provided in the first aspect
- the live broadcast client is configured to implement the live broadcast data transmission method provided in the second aspect.
- embodiments of the present disclosure also provide an electronic device, the electronic device including:
- a memory configured to store at least one program
- the at least one processor When the at least one program is executed by the at least one processor, the at least one processor is caused to implement the live data transmission method provided by any embodiment of the present disclosure.
- embodiments of the disclosure further provide a computer-readable storage medium on which a computer program is stored.
- the program is executed by a processor, the live data transmission method as provided in any embodiment of the disclosure is implemented.
- Figure 1 is a flow chart of a live data transmission method provided by Embodiment 1 of the present disclosure
- Figure 2 is a flow chart of a live data transmission method provided by Embodiment 2 of the present disclosure
- Figure 3 is an example diagram of a live data transmission process involved in Embodiment 2 of the present disclosure
- Figure 4 is a flow chart of a live data transmission method provided by Embodiment 3 of the present disclosure.
- Figure 5 is a flow chart of a live data transmission method provided by Embodiment 4 of the present disclosure.
- Figure 6 is an example diagram of cache offset pointer movement involved in Embodiment 4 of the present disclosure.
- Figure 7 is a schematic structural diagram of a live data transmission device provided in Embodiment 5 of the present disclosure.
- Figure 8 is a schematic structural diagram of a live data transmission device provided in Embodiment 6 of the present disclosure.
- Figure 9 is a schematic structural diagram of a live data transmission system provided by Embodiment 7 of the present disclosure.
- FIG. 10 is a schematic structural diagram of an electronic device provided in Embodiment 8 of the present disclosure.
- the term “include” and its variations are open-ended, ie, “including but not limited to.”
- the term “based on” means “based at least in part on.”
- the term “one embodiment” means “at least one embodiment”; the term “another embodiment” means “at least one additional embodiment”; and the term “some embodiments” means “at least some embodiments”. Relevant definitions of other terms will be given in the description below.
- FIG. 1 is a flow chart of a live data transmission method provided in Embodiment 1 of the present disclosure. This embodiment can be applied to situations where live data is transmitted using an unreliable streaming transmission channel to ensure the live data playback effect.
- the method can be executed by a live broadcast data transmission device, which can be implemented by software and/or hardware and integrated into the live broadcast server. As shown in Figure 1, the method includes the following steps:
- the live broadcast playback request is transmitted through the first stream transmission channel of a reliable type established by the live broadcast client.
- Live broadcast is an information network publishing method that simultaneously produces and publishes information about the development process of the event as the event occurs on site, and has a two-way circulation process. For a better user experience, it is necessary to ensure that there is no delay in the live broadcast.
- the live broadcast client refers to the client used by the audience user, and the audience user refers to the user who watches the live broadcast content of the anchor user
- the anchor client refers to the client used by the anchor user, and the anchor user refers to the user who performs live broadcast content
- the live broadcast server refers to the server that provides information interaction services between the live broadcast client and the anchor client.
- Clients may include but are not limited to: terminal devices such as smartphones, tablets, laptops, and desktop computers, or APPs (applications) running on terminal devices with live broadcast functions.
- the anchor client can upload the anchor user's live broadcast content to the live broadcast server in real time, and the live broadcast server sends the live broadcast content to the live broadcast client for display, so that the audience can watch the anchor user's live broadcast content in real time.
- This embodiment mainly describes the interaction between the live broadcast client and the live broadcast server.
- the live broadcast client when the user needs to watch the live broadcast, the live broadcast client provides Display information operation, that is, generate a live broadcast request.
- the live broadcast playback request may include content such as the identification of the data stream to be broadcast live.
- it may be a packet containing the identifier of the data stream to be broadcast live.
- the connection between the live broadcast client and the live broadcast server should be established normally.
- the live broadcast client needs to first establish a streaming transmission channel with the live broadcast server based on the preset transmission protocol to realize the communication between the live broadcast client and the live broadcast server. Communication between live broadcast servers.
- the streaming channel includes a reliable type streaming channel and an unreliable type streaming channel.
- the reliable type of streaming channel can be understood as that after the receiving end receives a certain data packet sent by the sending end, it can send a confirmation message corresponding to the received packet to the sending end or send a confirmation frame, so that the sending end receives the confirmation
- the next data packet is sent after the message or the acknowledgment frame, thereby ensuring that after the receiving end receives the data packet, the sending end continues to send the next data packet.
- the live broadcast client can be regarded as the sending end
- the live broadcast server can be regarded as the receiving end.
- the streaming transmission channel established by the live broadcast client is a reliable type of streaming data transmission channel, which is recorded as the first streaming transmission channel.
- the live playback request is relatively critical information, you need to know whether the live playback request is sent successfully, which can also be understood as needing to get a response from the live broadcast server. Therefore, the live broadcast playback request sent by the live broadcast client passes the reliable type established by the live broadcast client. First stream transmission channel transmission.
- the anchor client can upload the anchor user's live broadcast content to the live broadcast server in real time, that is, the live broadcast server needs to obtain the data stream from the anchor client.
- Live data stream refers to the continuous data stream required for continuous live broadcast. Live data stream mainly includes audio and video data streams.
- the live broadcast server receives the live broadcast playback request.
- the live broadcast server parses the live broadcast playback request and obtains the identification of the data stream to be broadcast contained in the live broadcast playback request. It is understandable that the live broadcast server continuously obtains live data streams from the anchor client, and each live data stream corresponds to a unique identifier.
- the live broadcast data stream matching the live broadcast playback request can be determined.
- the determined live data stream will be used as an object to be transmitted for subsequent transmission.
- the non-reliable type streaming channel is relative to the reliable type streaming channel.
- the non-reliable type stream transmission channel can be understood as that after data transmission through this transmission channel, the receiving end does not need to send back a corresponding confirmation to the sending end for the successfully received data, and is allowed to give up retransmitting the lost packet data and send it. New data has been generated.
- the live broadcast client can be regarded as the sending end, and the live broadcast server can be regarded as the receiving end.
- Non-reliable streaming channels can realize non-reliable transmission of data, thus ensuring the real-time nature of data.
- the live broadcast server creates a non-reliable type streaming channel as the second streaming channel according to the preset transmission protocol.
- the second stream transmission channel needs to be associated with the first stream transmission channel.
- the association may be established by binding the identifier of the first stream transmission channel to the identifier of the second stream transmission channel so that they have a one-to-one correspondence. In this way, when the identifier of one of the streaming channels is known, the other streaming channel associated with it can be determined.
- the identifier of the streaming channel can be understood as the unique identifier of the streaming channel, and the streaming channel and the identifier have a one-to-one correspondence.
- this step is performed after the above-mentioned step S110.
- the live broadcast server creates a non-reliable second streaming channel according to the preset transmission protocol and establishes an association with the first streaming channel.
- two streaming transmission channels are established between the live broadcast client and the live broadcast server, including a first stream transmission channel and a second stream transmission channel for interaction between the live broadcast client and the live broadcast server. communication. Steps S130 and S140 will introduce what information is transmitted through the first stream transmission channel and the second stream transmission channel respectively.
- the response information of the live broadcast request indicates that the live broadcast server has received the response information generated by the live broadcast request sent by the live broadcast client.
- the information to be sent by the live broadcast server to the live broadcast client is transmitted through the two stream transmission channels created in the above steps.
- the response information of the live broadcast playback request is sent to the live broadcast client through the first stream transmission channel to inform the live broadcast client. guest On the client side, the live broadcast server has successfully received the live broadcast playback request.
- the live broadcast data stream refers to the continuous data stream required for continuous live broadcast.
- the live broadcast data stream consists of multiple live broadcast data frames, and each live broadcast data frame can be divided into at least one data packet.
- the information of the live data frame in the live data stream is divided into two parts, one part is the key information of the live data frame, and the other part is the audio and video data in the live data frame.
- the key information refers to the information that cannot cause packet loss and must be sent successfully, such as header files and key data for audio and video decoding.
- the key information of the live data frame in the live data stream is sent to the live broadcast client through the first stream transmission channel.
- the first stream transmission channel is a reliable type of streaming transmission channel. Key information is transmitted through this channel to ensure that only after the live broadcast client receives the data packet, the live broadcast server can continue to send the next data packet, thereby ensuring that no packets are lost.
- the response information of the live playback request needs to be a reliable type of message according to the preset transmission protocol.
- the format is encapsulated to form a message
- the key information of the live data frame in the live data stream is also encapsulated according to the reliable type message format of the preset transmission protocol to form a data packet.
- the preset transmission protocol in this embodiment is the QUIC protocol.
- the QUIC protocol includes reliable flow types and unreliable flow types.
- the formed messages and data packets are transmitted through the first stream transmission channel.
- S140 Send the live data frames in the live data stream to the live broadcast client through the second stream transmission channel.
- communication between the live broadcast client and the live broadcast server is based on a reliable type of stream transmission channel.
- the live data frame in the live data stream is a reliable type message format according to the preset transmission protocol, and is transmitted through a reliable type of stream. channel for transmission, this will happen.
- the live broadcast client is receiving a data packet in a live broadcast data frame, if a certain data packet is lost and the reception is incomplete or the network speed is slow, the live broadcast client will wait to receive the to-be-received data packet.
- the live data frames in the live data stream are sent to the live broadcast client through the second stream transmission channel.
- the second stream transmission channel is a non-reliable stream transmission channel. Data packets are transmitted through this channel, and packet loss is allowed. There is no need to ensure that the live broadcast client receives the data packet before the live broadcast server can continue to send the next data packet. . It can also be understood that the live broadcast server can continuously send data packets without confirming whether the previous data packet was successfully received by the live broadcast client.
- the live broadcast client does not receive all the data packets of a certain live broadcast data frame within a set time, the frame will be considered to be discarded. There will be no picture delay or freeze due to waiting for a certain data packet and being unable to receive the data packet of the next live data frame. Even if there is a delay in network transmission, it will not affect the live broadcast screen playback, ensuring the smooth playback of live broadcast data.
- steps S130 and S140 is not limited. It may be that the information sent through the first stream transmission channel reaches the live broadcast client first, or it may be that the information sent through the second stream transmission channel reaches the live broadcast client first. , or the information sent through the first stream transmission channel and the information sent through the second stream transmission channel arrive at the live broadcast client at the same time.
- the live data stream can be understood as a data set including several live data frames, and the live data frames are output in a flowing manner.
- the live data frame contains at least one data packet.
- the data packet may refer to the data sent by the live broadcast server to the live broadcast client each time, such as QUIC packet.
- the live broadcast server can divide and package data for each live data frame in the determined live data stream based on the preset data packet size and the size of each live data frame in the live data stream, and obtain the corresponding live data stream. of data packets. If the size of a live data frame is larger than the preset data packet size, the live data frame can be packaged into at least two data packets for sending.
- the live broadcast server sends the data packets corresponding to the live data stream to the live broadcast client through the second stream transmission channel in sequence according to the order in which the data packets are packed.
- the live broadcast server receives the live broadcast playback request sent by the live broadcast client. request to determine the live data stream that matches the live broadcast request.
- the live broadcast request is transmitted through the first stream transmission channel of a reliable type established by the live broadcast client.
- the live broadcast server creates a second streaming transmission channel of a non-reliable type and establishes association with the first streaming transmission channel.
- the live broadcast server sends the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel; it sends the live data frame in the live data stream to the live broadcast client through the second stream transmission channel. client.
- the above technical solution based on the non-reliable second stream transmission channel created by the live broadcast server, can realize the unreliable transmission of live broadcast data frames, avoid affecting the live broadcast screen playback due to network transmission delay, ensure the playback effect of live broadcast data, and improve User experience of live streaming client.
- the method further includes: through the first stream transmission channel, characterizing the second stream transmission channel and the first stream transmission channel
- the association frame associated with the channel is sent to the live broadcast client, so that the live broadcast client determines through the association frame that the first streaming transmission channel and the second streaming transmission channel are associated.
- the second stream transmission channel needs to be associated with the first stream transmission channel.
- the association relationship established between the second stream transmission channel and the first stream transmission channel needs to be sent to the live broadcast client so that the live broadcast client It is determined through the association frame that the first streaming channel and the second streaming channel are associated.
- the association between the first stream transmission channel and the second stream transmission channel can be represented in the form of an association frame.
- the association frame includes: association mapping information of the stream transmission channel, and the association mapping information includes channel identifiers of the first stream transmission channel and the second stream transmission channel respectively.
- the channel identifier can be used as the identity identifier of the streaming channel, and each streaming channel corresponds to a unique channel identifier.
- An association frame representing an association between the second streaming channel and the first streaming channel is sent to the live broadcast client through the first streaming channel. In this way, the live broadcast client can ensure that the received data is synthesized for the same data frame based on the associated frame.
- FIG. 2 is a flow chart of a live data transmission method provided in Embodiment 2 of the present disclosure.
- this embodiment "creates a second stream transmission channel of a non-reliable type and connects it with the third stream transmission channel”.
- “Establish association with a first-class transmission channel” "Send the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel” and "Through the first stream transmission channel,
- the second-stream transmission channel is used to send the live data frames in the live data stream to the live client" was refined.
- the explanations of terms that are the same as or corresponding to the above embodiments will not be repeated here.
- the live data transmission method provided by this embodiment includes the following steps:
- S210 Receive the live broadcast playback request sent by the live broadcast client, and determine the live broadcast data stream that matches the live broadcast playback request.
- the live broadcast playback request is transmitted through the first stream transmission channel of a reliable type established by the live broadcast client.
- the preset transmission protocol refers to the standard for transmitting information between the live broadcast client and the live broadcast server.
- the QUIC protocol is selected as the default transmission protocol.
- the QUIC protocol includes reliable flow types and unreliable flow types.
- the reliable flow type means that the packet loss data is not allowed to be retransmitted. The new data can only be sent after the receiving end receives the complete data.
- the unreliable flow type refers to a new flow type in the QUIC protocol.
- the non-reliable flow type can refer to allowing to give up retransmitting packet loss data and send new data that has been generated, thereby realizing non-reliable transmission and ensuring the real-time nature of the data.
- the first stream transmission channel and the second stream transmission channel are constructed between the live broadcast client and the live broadcast server.
- the first stream transmission channel is used to transmit reliable type data Stream
- the second stream transmission channel is used to transmit unreliable type data streams.
- the first stream transmission channel and the second stream transmission channel need to be bound to indicate that the data sent through the two channels are related.
- the channel identifier can be used as the identity identifier of the streaming channel, and each streaming channel corresponds to a unique channel identifier. For example, the channel identifier of the first stream transmission channel is obtained, recorded as the first channel identifier; the channel identifier of the second stream transmission channel is obtained, recorded as the second channel identifier.
- association mapping information representing the association between the second stream transmission channel and the first stream transmission channel.
- the first channel identifier and the second channel identifier can be bound, and there is a one-to-one correspondence between the first channel identifier and the second channel identifier for a group. relation.
- a plurality of association mapping information representing the association between the second stream transmission channel and the first stream transmission channel will be formed.
- the first channel identifier is known
- the second channel identifier corresponding to the first channel identifier can be obtained by querying the associated mapping information.
- the first channel identifier corresponding to the second channel identifier can be obtained by querying the associated mapping information.
- S250 Encapsulate the response information of the live broadcast playback request according to the reliable type message format of the preset transmission protocol to form a response message, and send it to the live broadcast client through the first stream transmission channel.
- the live broadcast playback request is sent by the live broadcast client to the live broadcast server through the first stream transmission channel.
- the first stream transmission channel is a reliable type of streaming transmission channel.
- the live broadcast server After successfully receiving the live broadcast playback request, the live broadcast server needs to generate Response information for live broadcast request.
- the response information of the live broadcast request indicates that the live broadcast server has successfully received the live broadcast request sent by the live broadcast client.
- the live broadcast server needs to encapsulate the response information of the live broadcast playback request and send it to the live broadcast client to inform the live broadcast client that "the live broadcast server has successfully received the live broadcast playback request.”
- the live broadcast client needs to be informed , packets cannot be lost, so the response information of the live broadcast request is encapsulated according to the reliable type message format of the preset transmission protocol to form a response message.
- the preset transmission protocol in this embodiment is the QUIC protocol.
- the QUIC protocol includes reliable flow types and unreliable flow types.
- the response information of the live broadcast request is encapsulated based on the reliable stream type. It is known that the first stream transmission channel is a reliable type channel, and the encapsulated response message is sent to the live broadcast client through the first stream transmission channel.
- the live broadcast server After completing the construction of the first stream transmission channel and the second stream transmission channel, and the live broadcast server sends the response message of the live broadcast service request to the live broadcast client, the live broadcast server can transmit the relevant information of the live broadcast data stream through the two stream transmission channels that have been built. The information is sent to the live broadcast client.
- the live data frames in the live data stream are encapsulated according to the reliable type message format to form data packets, which are sent to the live broadcast client through the reliable type stream transmission channel, and the live broadcast client then receives the live broadcast data.
- the data packet corresponding to the frame is delivered to the application layer.
- the live broadcast client delivers the live broadcast data frame to the application layer only after receiving a complete live broadcast data frame.
- network transmission is delayed, it may cause data packet loss or transmission delay.
- Data packets are transmitted only through reliable streaming channels. If data packets are lost or transmission is delayed, the live broadcast client will wait to receive the frame. Due to the remaining data packets, the live broadcast client cannot deliver the data frame to the application layer, resulting in the final live broadcast screen staying at the live screen corresponding to the previous live broadcast data frame, resulting in delays or freezes in the live broadcast interface.
- this embodiment separates the information of the live data frames in the live data stream and transmits them respectively through a reliable type of streaming transmission channel and an unreliable type of streaming transmission channel.
- the first stream transmission channel is a reliable type stream transmission channel
- the second stream transmission channel is an unreliable type stream transmission channel.
- the file header of the live broadcast data frame and the key information required for decoding are encapsulated, and reliable Type of streaming channel for transmission, that is, transmission through the first streaming channel.
- the audio and video data in the live broadcast data frame even if one or several packets of data are lost, it will not affect the display of the final live broadcast interface. Therefore, the audio and video data of the live data frame is encapsulated and transmitted through a non-reliable type of stream transmission channel, that is, through the second stream transmission channel.
- steps S260 to S270 are an introduction to encapsulating and transmitting the file header and key data required for decoding in the live data frame.
- steps S280 to S290 are an introduction to encapsulating and transmitting the audio and video data in the live data frame.
- the live data stream contains several live data frames. For each live data frame in the live data stream, it is necessary to first determine the file header of the data frame and the key data required for decoding.
- S270 Encapsulate the file header and key data according to the reliable type message format to form a key information data packet relative to the live broadcast data frame, and send it to the live broadcast client through the first stream transmission channel.
- the file header and key data are encapsulated according to the reliable type message format to form a key information data packet relative to the live data frame.
- the live broadcast server can divide and package data for each live data frame in the live data stream based on the preset data packet size and the size of each live data frame in the live data stream, and obtain key information data packets corresponding to the live data stream. If the size of a live data frame is larger than the preset data packet size, the live data frame can be packaged into at least two key information data packets for sending.
- the live broadcast server sends the key information data packets corresponding to the live data stream to the live broadcast client in sequence according to the order in which the key information data packets are packaged.
- S280 For each live data frame in the live data stream, encapsulate the audio and video data in the live data frame according to the non-reliable type message format of the preset transmission protocol to form at least one live data packet.
- the live broadcast server can divide and package data for each live data frame in the live data stream based on the preset data packet size and the size of each live data frame in the live data stream, and obtain the live data corresponding to the live data stream. Bag. If the size of a live data frame is larger than the preset data packet size, the live data frame can be packaged into at least two live data packets for transmission.
- the live broadcast server sends the live data packets corresponding to the live data stream to the live broadcast client in sequence according to the order in which the live broadcast data packets are packaged.
- the technical solution of this embodiment is that the live broadcast server receives the live broadcast playback request sent by the live broadcast client, and after determining the live broadcast data stream that matches the live broadcast playback request, builds a streaming transmission channel required for non-reliable type data stream transmission based on the preset transmission protocol. , recorded as the second stream transmission channel; associate the second stream transmission channel with the first stream transmission channel to form a mapping relationship; the live broadcast server divides the content of the live data frame in the live data stream into the file header of the live data frame and the required decoding The key data, audio and video data of the live data frame. The two parts of data are respectively encapsulated, and the encapsulated results are transmitted to the live broadcast client through the first stream transmission channel and the second stream transmission channel respectively.
- the above technical solution adds a non-reliable second stream transmission channel, which can realize non-reliable transmission of audio and video data in the live broadcast data frame, avoid audio and video data packet loss due to network transmission delay and affect the live broadcast screen playback, and ensure the live broadcast
- the playback effect of data improves the user experience of the live broadcast client.
- the method in the process of sending the live data frames in the live data stream to the live broadcast client through the second stream transmission channel, the method also includes: targeting each live broadcast in the live data stream. data frame, determine the expiration length of the live data frame, and when there is a retransmission operation of data packets related to the live data frame, execute the discard processing logic of the live data frame based on the expiration time.
- the expiration time of the live data frame can be used as the benchmark for discarding the data packet if the data packet cannot be received.
- the expiration time can be set according to requirements. For example, assuming that the time when the data packet is sent from the live broadcast server to the live broadcast client is T, the expiration time of the live broadcast data frame can be set to 5T.
- the expiration time of the live data frame is determined. If data packet loss occurs during transmission, the live broadcast server will retransmit the relevant data packets. When the lost data packet is not received until the execution time of the retransmission operation exceeds the expiration time, the incomplete live broadcast data frame can be discarded.
- the discard processing logic of the live data frame is executed according to the expiration time, including:
- the way to determine that the relevant live data packets of the live data frame are lost during the transmission process can be: determine that the live broadcast client does not receive the data packet within the time when the data packet is normally sent from the live broadcast server to the live broadcast client. Packet loss occurred during transmission.
- the relevant live data packet of the live data frame will continue to be re-sent through the second stream transmission channel, and the live data packet can be understood as a lost data packet.
- the retransmission timing is started to determine the retransmission duration.
- an expiration information packet relative to the live data frame is formed and sent to the live broadcast client, so that the live broadcast client discards the relevant data of the live broadcast data frame from the data cache list.
- the live broadcast client may be notified to discard the relevant data of the live data frame with packet loss to transmit the next live data frame.
- the method of notifying the live broadcast client to discard relevant data of the live broadcast data frame may be that the live broadcast server forms an expiration information packet relative to the live broadcast data frame and sends it to the live broadcast client.
- Figure 3 is an example diagram of a live broadcast data transmission process involved in Embodiment 2 of the present disclosure.
- the live broadcast client and the live broadcast server establish a connection normally, and the live broadcast client creates a reliable type.
- the first stream transmission channel is named "rs"; 2.
- the live broadcast client sends a live broadcast playback request to the live broadcast server through the first stream transmission channel rs; 3.
- the live broadcast server receives the request, it determines the live broadcast data stream that matches the live broadcast playback request. And create a non-reliable second stream transmission channel associated with the first stream transmission channel, named "us"; 4.
- the live broadcast server transmits rs through the first stream transmission channel to the live broadcast client to represent the second stream transmission channel and the third stream transmission channel.
- the associated frame associated with the first-class transmission channel notifies the live broadcast client to associate us with rs; 5.
- the live broadcast server transmits rs through the first stream transmission channel and returns the response information of the live playback request to the live broadcast client, as well as the file header of the live broadcast data frame and required for decoding The key data; 6.
- the live broadcast server sends audio and video data to the live broadcast client through the second stream transmission channel us.
- This optional embodiment in the process of sending the live data frame in the live data stream to the live broadcast client through the second stream transmission channel, also includes: for each live data frame in the live data stream, determine the number of the live data frame. Expiration time, and when there is a retransmission operation of data packets related to the live data frame, the discard processing logic of the live data frame is executed based on the expiration time.
- the queue head of the data stream list of cached streaming data will be blocked when the network quality is poor, and the queue head blocking will cause a large delay in the live broadcast picture.
- the picture/voice in the latest live broadcast data may have been cached in It is in the data stream list of the live broadcast client, but it cannot be played normally, which affects the playback effect of the live broadcast data and reduces the user experience of the live broadcast client.
- the technical solution of this optional embodiment ensures normal playback of live broadcasts by discarding live broadcast data frames corresponding to packet loss.
- FIG. 4 is a flow chart of a live data transmission method provided in Embodiment 3 of the present disclosure. This embodiment is applicable to situations where live data is transmitted using an unreliable streaming transmission channel to ensure the live data playback effect.
- the method can be executed by a live broadcast data transmission device, which can be implemented by software and/or hardware and integrated into the live broadcast client. As shown in Figure 4, the method includes the following steps:
- the live broadcast request is generated by operating on the live broadcast viewing prompt information on the live broadcast client.
- the live broadcast playback request may include content such as the identification of the data stream to be broadcast live.
- it may be a packet containing the identifier of the data stream to be broadcast live.
- the live broadcast client needs to first establish a streaming transmission channel with the live broadcast server based on the preset transmission protocol to realize the communication between the live broadcast client and the live broadcast server. Communication between live broadcast servers.
- the live broadcast client establishes a reliable first stream transmission channel so that the live broadcast client and the live broadcast server can normally establish a connection.
- the live broadcast client sends a live broadcast playback request to the live broadcast server through the first stream transmission channel.
- S320 Receive the data packet sent by the live broadcast server through the first stream transmission channel and the second stream transmission channel relative to the live broadcast playback request.
- the second streaming channel is an unreliable streaming channel created by the live broadcast server. What is clear is that after receiving the live broadcast request, the live broadcast server created a non-reliable second stream transmission channel.
- the data packets received through the first stream transmission channel are: the response message of the relative live broadcast play request, the key information packet of the live data frame in the live data stream matched by the relative live broadcast play request, and the first stream transmission channel and the second stream transmission channel.
- the associated frame of the upper channel association relationship is streamed;
- the data packet received through the second stream transmission channel is: relative to the live data packet of the live data frame in the live data stream matched by the live play request, the live data packet contains the audio and video of the live data frame data.
- the determination and sending process of the data packet may refer to the relevant description in the above-mentioned Embodiment 1, and will not be described again here.
- S330 Determine the live broadcast data to be played that matches the live broadcast playback request by analyzing the data packets received from the first stream transmission channel and the second stream transmission channel.
- a response message of the relative live broadcast playback request, a key information packet of the live data frame in the live data stream matched by the relative live broadcast playback request, and a representation of the first stream transmission channel and the second stream transmission are received from the first stream transmission channel.
- the association relationship between the first stream transmission channel and the second stream transmission channel can be obtained, and the corresponding second stream can be determined based on the recorded identifier of the second stream transmission channel corresponding to the identifier of the first stream transmission channel.
- the data packets received by the transmission channel are associated data.
- the live data packet of the frame contains the audio and video data of the live data frame.
- the live broadcast client receives the key information data packet of the live broadcast data frame associated with the live broadcast request from the first stream transmission channel, from the first stream transmission channel.
- the order in which the associated frames representing the association between the second stream transmission channel and the first stream transmission channel are received in the first-class transmission channel, and the live data packets of the live data frames in the live data stream matched by the corresponding live broadcast play request are received from the second stream transmission channel. Determine next steps.
- the live data frame can be determined to be delivered to the application layer based on the data transmitted by the unreliable streaming channel. If the processing conditions are not met, the data transmitted by the unreliable streaming channel can be cached for backup.
- the live broadcast client sends a live broadcast playback request to the live broadcast server through the established first stream transmission channel of a reliable type.
- the live broadcast server receives the live broadcast playback request sent by the live broadcast client and determines the live broadcast playback request that matches the live broadcast playback request. Live data stream. Then the live broadcast server creates a second streaming transmission channel of a non-reliable type and establishes association with the first streaming transmission channel.
- the live broadcast server sends the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel; the live broadcast server sends the live data frame in the live data stream through the second stream transmission channel.
- the live broadcast client determines the live broadcast data to be played that matches the live broadcast playback request by analyzing the data packets received from the first stream transmission channel and the second stream transmission channel.
- the above technical solution creates a non-reliable second stream transmission channel based on the live broadcast server, which can realize unreliable transmission of live broadcast data frames, avoid affecting the live broadcast picture playback due to network transmission delay, ensure the playback effect of the live broadcast data, and improve the live broadcast Client user experience.
- FIG. 5 is a flow chart of a live data transmission method provided in Embodiment 4 of the present disclosure. Based on the above-mentioned Embodiment 3, this embodiment performs the steps of "passing the first stream transmission channel and the second stream transmission channel. Analysis of the received data packets to determine the live broadcast data to be played that matches the live broadcast play request" was refined. The explanations of terms that are the same as or corresponding to the above embodiments will not be repeated here.
- the data transmission method provided in this embodiment includes the following steps:
- S420 Receive the data packet sent by the live broadcast server through the first streaming channel and the second streaming channel in response to the live broadcast play request.
- the second streaming channel is an unreliable streaming channel created by the live broadcast server.
- S430 Receive data packets from the first stream transmission channel and the second stream transmission channel, and analyze the data content of the received data packets.
- a response message of the relative live broadcast playback request, a key information packet of the live data frame in the live data stream matched by the relative live broadcast playback request, and a representation of the first stream transmission channel and the second stream transmission are received from the first stream transmission channel.
- the association relationship between the first stream transmission channel and the second stream transmission channel can be obtained, and the corresponding second stream can be determined based on the recorded identifier of the second stream transmission channel corresponding to the identifier of the first stream transmission channel.
- the data packets received by the transmission channel are associated data.
- the live data packet corresponding to the live data frame in the live data stream matched by the live broadcast request is received from the second stream transmission channel, and the live data packet contains the audio and video data of the live data frame.
- the audio and video data can be obtained.
- the key information packets of the live broadcast data frame and the associated frames representing the relationship between the first stream transmission channel and the second stream transmission channel arrive at the live broadcast client, but only if both of them reach the live broadcast client Only then can the data transmitted from the unreliable streaming channel be processed (i.e. audio and video data).
- the associated frame arrives, the relationship between the reliable type stream data channel (i.e., the first stream transmission channel) and the unreliable type stream transmission channel (i.e., the second stream transmission channel) will be mapped; when the first frame of the reliable type stream After the data is received, the data packets transmitted from the mapped second stream transmission channel are marked to confirm that the stream transmission is in working status.
- the first frame data of the reliable type stream includes FileHeader and A/V Metadata. , in the HTTP transmission scenario, it also includes HTTP Response Header.
- the first frame data of the reliable type stream generally refers to various initialized data. When neither the key information packet of the live broadcast data frame nor the associated frame representing the relationship between the first stream transmission channel and the second stream transmission channel arrives at the live broadcast client, but the data packet transmitted from the second stream transmission channel arrives first, then it is determined This state is blocked.
- step S440 Analyze and determine whether the received data packet satisfies the status trigger condition. If it is determined that the received data packet does not meet the status trigger condition, execute step S450. If it is determined that the received data packet satisfies the status trigger condition, execute step S460. .
- the status triggering condition is: after the data packet received from the first stream transmission channel is a response message to the live broadcast request, the key information data packet of the live data frame associated with the live broadcast request is received from the first stream transmission channel; And an association frame indicating that the second streaming channel is associated with the first streaming channel is also received from the first streaming channel.
- step S450 the order in which the data transmitted through the two streaming channels reaches the live broadcast client is analyzed to determine whether the status triggering condition is met. If the status triggering condition is not met, step S450 is executed. If the status triggering condition is met, step S460 is executed.
- step S450 When the analysis determines that the received data packet does not meet the status triggering condition, it is determined that the streaming transmission is in the blocking state, cache the data information related to the live data frame in the received data packet to the data cache list, and continue to perform step S430.
- the analysis determines that the received data packet does not meet the status trigger condition, it can also be understood that after the data packet received from the first stream transmission channel is a response message for the live broadcast request, the data packet is not received from the first stream transmission channel.
- the key information packet of the live data frame associated with the live broadcast request is received; or the key information packet indicating that the second stream transmission channel is associated with the first stream transmission channel is not received from the first stream transmission channel. associated frame, it is determined that the stream transmission is in a blocked state, cache the data information related to the live data frame in the received data packet to the data cache list, continue to receive data packets from the first stream transmission channel and the second stream transmission channel, and execute all Receive packet analysis operations.
- the live data frame is a data frame in the live data stream that matches the live play request.
- the analysis determines that the received data packet satisfies the status triggering condition, it can also be understood that after the data packet received from the first stream transmission channel is a response message for the live broadcast request, the data packet received from the first stream transmission channel is to the key information data packet of the live data frame associated with the live broadcast request; and also receives from the first stream transmission channel an associated frame representing the association between the second stream transmission channel and the first stream transmission channel, then it is determined that the streaming transmission is in a normal state, and from the data The live broadcast data to be played that matches the live broadcast playback request is determined in the cache list.
- the technical solution of this embodiment refines the live broadcast client's analysis of the data packets received from the first stream transmission channel and the second stream transmission channel, and analyzes and determines whether the received data packets meet the status trigger conditions.
- the analysis determines that the received data packets When the data packet does not meet the status triggering conditions, it is determined that the streaming transmission is in the blocking state, the data information related to the live data frame in the received data packet is cached to the data cache list, and the analysis operation of the received data packet is continued; when the analysis determines that the When the received data packet meets the status triggering condition, it is determined that it is currently in the working state, and the live broadcast data to be played that matches the live broadcast play request is determined from the data cache list.
- the above technical solution refines the status trigger condition restrictions and can determine the timing of transmitting data to the user application layer.
- cache the data information related to the live data frame in the received data packet to the data cache list including: if the received data packet is a live data packet received by the second stream transmission channel, determine the received data
- the data information related to the live data frame in the package is stored in the data cache list.
- the live broadcast data packet received from the second stream transmission channel is audio and video data, that is, the live broadcast screen display Display the required basic data.
- the analysis determines that the received data packet does not meet the status triggering condition, and it is determined that the streaming transmission is in a blocked state, the data information related to the live data frame in the received data packet is determined, and the data information is stored in the data cache list.
- the data cache list is used to subsequently provide live broadcast data to be played.
- the live broadcast data to be played that matches the live broadcast play request is determined from the data cache list, including:
- the cache offset pointer represents the location of the received data in the application layer data cache, and the cache offset frame may refer to a frame type used for proactive expiration information data packets.
- the cache offset frame can carry an offset value to notify the live broadcast client and live broadcast server not to retransmit all data before the offset value.
- the live data frame is determined to be the live data to be played.
- whether the data content of the target live broadcast data frame is complete can be determined by whether the end identifier of the target live broadcast data frame is received. If the data content of the target live data frame corresponding to the live data frame header is complete, the live data frame is determined to be the live data to be played.
- the end identifier of the target live broadcast data frame is not received, that is, the data content of the target live broadcast data frame corresponding to the live broadcast data frame header is incomplete, then the content completeness judgment of the target live broadcast data frame is re-executed at a set interval.
- the expiration information packet sent by the live broadcast server relative to the target live broadcast data frame is received.
- the cache offset pointer is moved to the live data frame header of the next frame of the target live data frame as the new target live data frame, and return to re-determine the completeness of the content.
- FIG. 6 is an example diagram of cache offset pointer movement involved in Embodiment 4 of the present disclosure.
- the data boundary frame corresponding to A characterized by the boundary frame of A in Figure 6
- part of the data packet of A characterized by part1 and part2 of A in Figure 6
- the live broadcast client has completely received the C and D frame data, but has not received the complete A and B frames.
- Time 2 receives the expired information packet.
- the live broadcast client will move the cache offset pointer to point to the live broadcast data frame header position of the C frame, and return the C and D frame data to the application layer. To avoid the head-of-line blocking problem.
- the process of caching the data information related to the live data frame in the received data packet to the data cache list, and the process of determining the live data to be played that matches the live broadcast request from the data cache list are performed. Refinement. It can be realized that expired data is automatically discarded after the expiration time is exceeded, avoiding the head-of-line blocking problem, ensuring the playback effect of live broadcast data, and improving the user experience of the live broadcast client.
- the following is an example of a live data transmission device provided by an embodiment of the present disclosure.
- This device belongs to the same inventive concept as the live data transmission method of the above-mentioned Embodiment 1 or Embodiment 2, and is not described in detail in the embodiment of the live data transmission device.
- FIG 7 is a schematic structural diagram of a live data transmission device provided in Embodiment 5 of the present disclosure. This embodiment can be applied to the situation of transmitting live data through a non-reliable type of streaming transmission channel to ensure the live data playback effect.
- the device is integrated with the live broadcast server and includes: a request receiving module 510, a channel creating module 520, an information sending module 530 and a data frame sending module 540.
- the request receiving module 510 is configured to receive the live broadcast request sent by the live broadcast client and determine the live data stream that matches the live broadcast request, wherein the live broadcast request is transmitted through the first stream transmission channel of a reliable type established by the live broadcast client. ; Channel creation module 520, configured to create unreliable type of second stream transmission channel, and is associated with the first stream transmission channel; the information sending module 530 is configured to send the response information of the live playback request and the key information of the live data frame in the live data stream to Live broadcast client; the data frame sending module 540 is configured to send the live data frames in the live data stream to the live broadcast client through the second stream transmission channel.
- the live broadcast server receives the live broadcast playback request sent by the live broadcast client and determines the live broadcast data stream that matches the live broadcast playback request.
- the live broadcast playback request is a reliable type of first stream transmission channel established by the live broadcast client. Transmission.
- the live broadcast server creates a second streaming transmission channel of a non-reliable type and establishes association with the first streaming transmission channel.
- the live broadcast server sends the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel; it sends the live data frame in the live data stream to the live broadcast client through the second stream transmission channel. client.
- the above technical solution creates a non-reliable second stream transmission channel based on the live broadcast server, which can realize unreliable transmission of live broadcast data frames, avoid affecting the live broadcast picture playback due to network transmission delay, ensure the playback effect of the live broadcast data, and improve the live broadcast Client user experience.
- the device also includes:
- the association frame sending module is configured to send an association frame representing the association between the second stream transmission channel and the first stream transmission channel to the live broadcast client through the first stream transmission channel, so that the live broadcast client determines the relationship between the first stream transmission channel and the first stream transmission channel through the association frame. There is a correlation between the second stream transmission channels.
- the association frame includes: association mapping information of the streaming channel, and the association mapping information includes channel identifiers of the first streaming channel and the second streaming channel respectively.
- the channel creation module 510 is set as:
- the stream transmission channel required for non-reliable type data stream transmission is constructed based on the preset transmission protocol, which is recorded as the second stream transmission channel;
- association mapping information representing the association relationship between the second stream transmission channel and the first stream transmission channel is formed.
- the information sending module 520 is set as:
- the file header and key data are encapsulated according to the reliable type message format to form a key information data packet relative to the live broadcast data frame, and are sent to the live broadcast client through the first stream transmission channel.
- the data frame sending module 540 is set as:
- each live data frame in the live data stream encapsulate the audio and video data in the live data frame according to the non-reliable type message format of the preset transmission protocol to form at least one live data packet;
- the at least one live broadcast data packet is sent to the live broadcast client through the second streaming channel.
- the device also includes a logic execution module, which includes:
- the expiration duration determination unit is configured to determine the expiration duration of the live data frame for each live data frame in the live data stream
- the discard processing logic execution unit is configured to execute the discard processing logic of the live data frame according to the expiration time when there is a retransmission operation of the data packets related to the live data frame.
- the discard processing logic execution unit is set to:
- the relevant live data packets of the live data frame will be retransmitted through the second stream transmission channel, and when the relevant live data packets of the live data frame are retransmitted for the first time, a retransmission will be started. pass timing;
- an expiration information packet relative to the live data frame is formed and sent to the live broadcast client, so that the live broadcast client discards the relevant data of the live broadcast data frame from the data cache list.
- the live broadcast data transmission device provided by the embodiment of the present disclosure can execute the live broadcast data transmission method provided by the first or second embodiment of the present disclosure, and has corresponding functional modules for executing the live broadcast data transmission method.
- the following is an example of a live data transmission device provided by an embodiment of the present disclosure.
- This device belongs to the same inventive concept as the live data transmission method of the above-mentioned Embodiment 3 or Embodiment 4, and is not described in detail in the embodiment of the live data transmission device.
- FIG 8 is a schematic structural diagram of a live data transmission device provided in Embodiment 6 of the present disclosure. This embodiment is applicable to situations where live data is transmitted through a non-reliable streaming transmission channel to ensure the live data playback effect.
- the device is integrated into the live broadcast client and includes: a request sending module 610, a data packet receiving module 620 and a live broadcast data determination module 630.
- the request sending module 610 is configured to send a live broadcast request to the live broadcast server through the first stream transmission channel of the established reliable type;
- the data packet receiving module 620 is configured to receive the live broadcast request from the live broadcast server through the first stream transmission channel and the third stream transmission channel.
- the live broadcast data determination module 630 is configured to pass the first stream transmission channel and the second stream transmission channel Analysis of the received data packets determines the live broadcast data to be played that matches the live broadcast play request.
- the live broadcast client sends a live broadcast playback request to the live broadcast server through the established first stream transmission channel of a reliable type.
- the live broadcast server receives the live broadcast playback request sent by the live broadcast client and determines the live broadcast playback request that matches the live broadcast playback request. Live data stream. Then the live broadcast server creates a second streaming transmission channel of a non-reliable type and establishes association with the first streaming transmission channel.
- the live broadcast server sends the response information of the live broadcast request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel; through the second stream transmission channel, it sends each live broadcast data in the live data stream
- the data frame is sent to the live broadcast client, and the live broadcast client determines the live broadcast data to be played that matches the live broadcast playback request by analyzing the data packets received from the first stream transmission channel and the second stream transmission channel.
- the data packets received through the first stream transmission channel are: the response message of the relative live playback request, the key information packet of the live data frame in the live data stream matched by the relative live playback request, and the key information packet representing the third The association frame of the association relationship between the first-class transmission channel and the second-class transmission channel;
- the data packets received through the second stream transmission channel are: relative to the live data packets of the live data frames in the live data stream matched by the live play request, the live data packets contain the audio and video data of the live data frames.
- the live broadcast data determination module 630 includes:
- An analysis unit configured to receive data packets from the first stream transmission channel and the second stream transmission channel, and analyze the data content of the received data packets
- the status determination unit is configured to determine that when the analysis determines that the received data packet does not meet the status triggering conditions, it determines that the streaming transmission is in a blocked state, caches the data information related to the live data frame in the received data packet to the data cache list, and continues to execute all Analysis operation of receiving data packets;
- the live data determination unit is configured to determine, when the analysis determines that the received data packet meets the status triggering condition, that the streaming transmission is currently in the working state, and to determine the live data to be played that matches the live broadcast request from the data cache list;
- the live data frame is a data frame in the live data stream that matches the live play request.
- the state triggering condition is: after the data packet received from the first stream transmission channel is a response message to the live playback request, the key information data of the live broadcast data frame associated with the live broadcast playback request is received from the first stream transmission channel. packet; and an association frame representing an association of the second streaming channel with the first streaming channel is also received from the first streaming channel.
- the status determination unit is configured to perform direct processing of the received data packets.
- the steps to cache the data information related to the broadcast data frame into the data cache list include:
- the received data packet is a live data packet received by the second stream transmission channel
- the data information related to the live data frame in the received data packet is determined, and the data information is stored in the data cache list.
- the live data determination unit is set as:
- the live data frame is determined to be the live data to be played
- the live broadcast data transmission device provided by the embodiment of the present disclosure can execute the live broadcast data transmission method provided by the third embodiment or the fourth embodiment of the present disclosure, and has corresponding functional modules for executing the data transmission method.
- FIG 9 is a schematic structural diagram of a live data transmission system provided in Embodiment 7 of the present disclosure. This embodiment can be applied to situations where live data is transmitted through a non-reliable streaming transmission channel to ensure the live data playback effect.
- the system includes: a live broadcast server 710 and a live broadcast client 720.
- the live broadcast server 710 is configured to implement the live broadcast data transmission method as provided in Embodiment 1 or Embodiment 2; the live broadcast client 720 is configured to implement the live broadcast data transmission method as provided in Embodiment 3 or Embodiment 4. Data transfer method.
- the technical solution of the embodiment of the present disclosure is that the live broadcast client sends a live broadcast playback request to the live broadcast server through the established first stream transmission channel of a reliable type, and the live broadcast server receives the live broadcast broadcast sent by the live broadcast client. Play request, determine the live data stream that matches the live play request. Then the live broadcast server creates a second streaming transmission channel of a non-reliable type and establishes association with the first streaming transmission channel. The live broadcast server sends the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel; it sends the live data frame in the live data stream to the live broadcast client through the second stream transmission channel.
- the client determines the live broadcast data to be played that matches the live broadcast playback request by analyzing the data packets received from the first stream transmission channel and the second stream transmission channel.
- the above technical solution creates a non-reliable second stream transmission channel based on the live broadcast server, which can realize unreliable transmission of live broadcast data frames, avoid affecting the live broadcast picture playback due to network transmission delay, ensure the playback effect of the live broadcast data, and improve the live broadcast Client user experience.
- FIG. 10 a schematic structural diagram of an electronic device 800 suitable for implementing embodiments of the present disclosure is shown.
- the electronic device shown in FIG. 10 is only an example and should not impose any limitations on the functions and scope of use of the embodiments of the present disclosure.
- the electronic device 800 may include a processing device (such as a central processing unit, a graphics processor, etc.) 801, which may process data according to a program stored in a read-only memory (Read-Only Memory, ROM) 802 or from a storage device. 808 loads the program in the random access memory (Random Access Memory, RAM) 803 to perform various appropriate actions and processing. In the RAM 803, various programs and data required for the operation of the electronic device 800 are also stored.
- the processing device 801, ROM 802 and RAM 803 are connected to each other via a bus 804.
- An input/output (I/O) interface 805 is also connected to bus 804.
- the following devices may be connected to the I/O interface 805: including, for example, a touch screen, a touch pad, a keyboard, Input devices 806 such as a mouse, camera, microphone, accelerometer, gyroscope, etc.; Output devices 807 including, for example, a liquid crystal display (LCD), speakers, vibrators, etc.; Storage devices 808, including, for example, magnetic tape, hard disk, etc.; and communication device 809.
- the communication device 809 may allow the electronic device 800 to communicate wirelessly or wiredly with other devices to exchange data.
- FIG. 10 illustrates an electronic device 800 having various means, it should be understood that implementation or availability of all illustrated means is not required. More or fewer means may alternatively be implemented or provided.
- embodiments of the present disclosure include a computer program product including a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the method illustrated in the flowchart.
- the computer program may be downloaded and installed from the network via communication device 809, or from storage device 808, or from ROM 802.
- the processing device 801 the above-mentioned functions defined in the method of the embodiment of the present disclosure are performed.
- the electronic device provided by the embodiments of the present disclosure and the live data transmission method provided by the above-mentioned embodiments belong to the same inventive concept.
- Technical details that are not described in detail in the embodiments of the present disclosure can be referred to the above-mentioned embodiments.
- Embodiments of the present disclosure provide a computer storage medium on which a computer program is stored.
- the program is executed by a processor, the live data transmission method provided by the above embodiments is implemented.
- the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the above two.
- the computer-readable storage medium may be, for example, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus or device, or any combination thereof.
- Computer readable storage media may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard drive, random access memory (RAM), read only memory (ROM), removable Programmable Read-Only Memory ((Erasable Programmable Read-Only Memory, EPROM) or flash memory), optical fiber, portable compact disk Read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- a computer-readable storage medium may be any tangible medium that contains or stores a program for use by or in connection with an instruction execution system, apparatus, or device.
- a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code therein. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above.
- a computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device .
- Program code contained on a computer-readable medium can be transmitted using any appropriate medium, including but not limited to: wires, optical cables, radio frequency (Radio Frequency, RF), etc., or any suitable combination of the above.
- the receiving end and the sending end can communicate using any currently known or future developed network protocol such as HTTP (HyperText Transfer Protocol), and can communicate with digital data in any form or medium.
- Data communications e.g., communications network
- Examples of communication networks include Local Area Networks (LANs), Wide Area Networks (WANs), the Internet (e.g., the Internet), and end-to-end networks (e.g., ad hoc end-to-end networks), as well as any current network for knowledge or future research and development.
- LANs Local Area Networks
- WANs Wide Area Networks
- the Internet e.g., the Internet
- end-to-end networks e.g., ad hoc end-to-end networks
- the above-mentioned computer-readable medium may be included in the above-mentioned live broadcast server; it may also exist independently without being assembled into the live broadcast server.
- the computer-readable medium carries at least one program.
- the live broadcast server receives the live broadcast playback request sent by the live broadcast client and determines the live broadcast data that matches the live broadcast playback request. stream, wherein the live broadcast playback request is transmitted through the first stream transmission channel of reliable type established by the live broadcast client; a second stream transmission channel of unreliable type is created and associated with the first stream transmission channel; through the first stream transmission channel The first stream transmission channel sends the response information of the live broadcast request and the key information of the live data frame in the live data stream to the live broadcast client; through the second stream transmission channel, the live data stream in the Live data frame Sent to the live streaming client.
- the above-mentioned computer-readable medium may be included in the above-mentioned live broadcast client; it may also exist independently without being assembled into the live broadcast client.
- the computer-readable medium carries at least one program.
- the live broadcast client When the at least one program is executed by the live broadcast client, the live broadcast client: sends a live broadcast playback request to the live broadcast server through the established first stream transmission channel of a reliable type; receives The data packet sent by the live broadcast server through the first streaming transmission channel and the second streaming transmission channel in response to the live broadcast playback request, wherein the second streaming transmission channel is a non-reliable type streaming transmission channel created by the live broadcast server; by From the analysis of the data packets received by the first stream transmission channel and the second stream transmission channel, the live broadcast data to be played that matches the live broadcast play request is determined.
- Computer program code for performing the operations of the present disclosure may be written in one or more programming languages, including but not limited to object-oriented programming languages—such as Java, Smalltalk, C++, and Includes conventional procedural programming languages—such as "C” or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or sender.
- the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as an Internet service provider through Internet connection).
- LAN local area network
- WAN wide area network
- Internet service provider such as an Internet service provider through Internet connection
- each block in the flowchart or block diagram may represent a module, segment, or portion of code that contains one or more logic functions that implement the specified executable instructions.
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown one after another may actually execute substantially in parallel, or they may sometimes execute in the reverse order, depending on the functionality involved.
- each block of the block diagram and/or flowchart illustration, and combinations of blocks in the block diagram and/or flowchart illustration can be implemented by special purpose hardware-based systems that perform the specified functions or operations, or can be implemented by Achieved by a combination of specialized hardware and computer instructions.
- the units involved in the embodiments of the present disclosure can be implemented in software or hardware.
- the name of a unit does not constitute a limitation on the unit itself under certain circumstances.
- an editable content display unit may also be described as an "editing unit”.
- exemplary types of hardware logic components include: field programmable gate array (Field Programmable Gate Array, FPGA), application specific integrated circuit (Application Specific Integrated Circuit, ASIC), application specific standard product (Application Specific Standard Parts (ASSP), System on Chip (SOC), Complex Programmable Logic Device (CPLD), etc.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- the machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- Machine-readable media may include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or devices, or any suitable combination of the foregoing.
- machine-readable storage media would include one or more wire-based electrical connections, laptop disks, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- RAM random access memory
- ROM read only memory
- EPROM or flash memory erasable programmable read only memory
- CD-ROM portable compact disk read-only memory
- magnetic storage device or any suitable combination of the above.
- Example 1 provides a live broadcast data transmission method, applied to a live broadcast server, including:
- the live data frames in the live data stream are sent to the live broadcast client.
- Example 2 provides a live broadcast data transmission method, applied to a live broadcast server, and further includes:
- the method after creating a second streaming channel of unreliable type associated with the first streaming channel, the method also includes:
- an association frame representing the association between the second streaming channel and the first streaming channel is sent to the live broadcast client, so that the live broadcast client determines the association frame through the association frame.
- the first streaming channel is associated with the second streaming channel.
- Example 3 provides a live broadcast data transmission method, applied to a live broadcast server, and further includes:
- the association frame includes: association mapping information of a stream transmission channel, and the association mapping information includes channel identifiers of the first stream transmission channel and the second stream transmission channel respectively.
- Example 4 provides a live broadcast data transmission method, applied to a live broadcast server, and further includes:
- creating a second streaming channel of a non-reliable type and establishing association with the first streaming channel includes:
- the stream transmission channel required for non-reliable type data stream transmission is constructed based on the preset transmission protocol, which is recorded as the second stream transmission channel;
- Example 5 provides a live broadcast data transmission method, applied to the live broadcast server, and further includes:
- sending the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel includes:
- the file header and key data are encapsulated according to the reliable type message format to form a key information data packet relative to the live broadcast data frame, and are sent to the live broadcast client through the first stream transmission channel.
- Example 6 provides a live broadcast data transmission method, applied to a live broadcast server, and further includes:
- sending the live data frames in the live data stream to the live client through the second stream transmission channel includes:
- each live data frame in the live data stream encapsulate the audio and video data in the live data frame according to a non-reliable type message format of a preset transmission protocol to form at least one live data packet;
- the at least one live broadcast data packet is sent to the live broadcast client through the second streaming channel.
- Example 7 provides a live broadcast data transmission method, applied to the live broadcast server, and further includes:
- the process of sending the live data frames in the live data stream to the live client through the second stream transmission channel also includes:
- Example 8 provides a live broadcast data transmission method, applied to the live broadcast server, and further includes:
- executing the discard processing logic of the live data frame according to the expiration time includes:
- the relevant live broadcast data packet of the live broadcast data frame is lost during the transmission process, the relevant live broadcast data packet is re-sent through the second stream transmission channel, and the relevant live broadcast data packet of the live broadcast data frame appears for the first time.
- the retransmission timing is started;
- an expiration information packet relative to the live broadcast data frame is formed and sent to the live broadcast client, so that the live broadcast client discards all data from the data cache list. Describes the relevant data of the live data frame.
- Example 9 provides a live broadcast data transmission method, applied to live broadcast clients, including:
- the second streaming transmission channel is a non-reliable type streaming transmission channel created by the live broadcast server
- the live broadcast data to be played that matches the live broadcast play request is determined.
- Example 10 provides a live broadcast data transmission method, applied to live broadcast clients, and further includes:
- the data packets received through the first stream transmission channel are: a response message relative to the live broadcast play request, a key information data packet relative to the live data frame in the live data stream matched by the live broadcast play request, and An association frame that represents the association between the first stream transmission channel and the second stream upper channel;
- the data packet received through the second stream transmission channel is: relative to the live data packet of the live data frame in the live data stream matched by the live broadcast request, the live data packet contains the audio and video of the live data frame. Frequency data. .
- Example 11 provides a live broadcast data transmission method, applied to a live broadcast client, and further includes:
- determining the live broadcast data to be played that matches the live broadcast play request by analyzing the data packets received from the first streaming transmission channel and the second streaming transmission channel includes:
- the analysis determines that the received data packet does not meet the status triggering conditions, it is determined that the streaming transmission is in the blocking state, caches the data information related to the live data frame in the received data packet to the data cache list, and continues to perform the analysis operation of the received data packet. ;
- the analysis determines that the received data packet meets the status triggering condition, it is determined that the streaming transmission is currently in the working state, and the live broadcast data to be played that matches the live broadcast play request is determined from the data cache list;
- the live data frame is a data frame in the live data stream that matches the live play request.
- Example 12 provides a live broadcast data transmission method, applied to a live broadcast client, and further includes:
- the state triggering conditions are:
- a key information data packet of the live broadcast data frame associated with the live broadcast playback request is received from the first stream transmission channel ; and an association frame representing the association of the second streaming channel with the first streaming channel is also received from the first streaming channel.
- Example 13 provides a live broadcast data transmission method, applied to a live broadcast client, and further includes:
- Caching the data information related to the live data frame in the received data packet to the data cache list includes:
- the received data packet is a live data packet received by the second stream transmission channel, determine the data information related to the live data frame in the received data packet, and store the data information in the data cache column surface.
- Example 14 provides a live broadcast data transmission method, applied to a live broadcast client, and further includes:
- determining the live broadcast data to be played that matches the live broadcast play request from the data cache list includes:
- the live data frame is determined to be the live data to be played
- the content integrity determination of the target live broadcast data frame is re-executed at a set interval until the live broadcast server receives the target live broadcast data. Expiration information packet sent by frame;
- Example 15 provides a live broadcast data transmission device integrated with a live broadcast server, including:
- a request receiving module configured to receive a live broadcast request sent by a live broadcast client and determine a live data stream that matches the live broadcast request, wherein the live broadcast request passes the first stream of a reliable type established by the live broadcast client. transmission channel transmission;
- a channel creation module configured to create a second stream transmission channel of a non-reliable type and establish an association with the first stream transmission channel
- An information sending module configured to send the response information of the live playback request and the key information of the live data frame in the live data stream to the live broadcast client through the first stream transmission channel;
- a data frame sending module is configured to send live data frames in the live data stream to the live broadcast client through the second stream transmission channel.
- Example 16 provides a live broadcast data transmission device integrated into a live broadcast client, including:
- the request sending module is configured to send a live broadcast playback request to the live broadcast server through the established first stream transmission channel of a reliable type
- a data packet receiving module configured to receive data packets sent by the live broadcast server through the first stream transmission channel and the second stream transmission channel in response to the live broadcast playback request, wherein the second stream transmission channel is an unreliable one created by the live broadcast server.
- Type of streaming channel
- the live data determination module is configured to determine the live data to be played that matches the live broadcast request by analyzing the data packets received from the first stream transmission channel and the second stream transmission channel.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (19)
- 一种直播数据传输方法,应用于直播服务器,包括:接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;通过所述第二流传输通道,将所述直播数据流中直播数据帧发送至所述直播客户端。
- 根据权利要求1所述的方法,在所述创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联之后,还包括:通过所述第一流传输通道,将表征所述第二流传输通道与所述第一流传输通道关联的关联帧发送至所述直播客户端,以使所述直播客户端通过所述关联帧确定所述第一流传输通道与所述第二流传输通道存在关联。
- 根据权利要求2所述的方法,其中,所述关联帧包括:流传输通道的关联映射信息,所述关联映射信息包括所述第一流传输通道及第二流传输通道分别具备的通道标识。
- 根据权利要求1所述的方法,其中,所述创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联,包括:基于预设传输协议构建非可靠类型数据流传输所需的流传输通道,记为第二流传输通道;获取所述第一流传输通道的第一通道标识,以及所述第二流传输通道的第二通道标识;基于所述第一通道标识和第二通道标识,形成表征所述第二流传输通道与第一流传输通道关联关系的关联映射信息。
- 根据权利要求1所述的方法,其中,所述通过所述第一流传输通道,将 所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端,包括:将所述直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装,形成响应报文,并通过所述第一流传输通道发送至所述直播客户端;针对直播数据流中每个直播数据帧,确定所述直播数据帧的文件头以及解码所需的关键数据;将所述文件头及关键数据按照所述可靠类型报文格式进行封装,形成相对所述直播数据帧的关键信息数据包,并通过所述第一流传输通道发送至所述直播客户端。
- 根据权利要求1所述的方法,其中,所述通过所述第二流传输通道,将所述直播数据流中直播数据帧发送至所述直播客户端,包括:针对所述直播数据流中每个直播数据帧,将所述直播数据帧中音视频数据按照预设传输协议的非可靠类型报文格式进行封装,形成至少一个直播数据包;通过所述第二流传输通道将所述至少一个直播数据包发送至所述直播客户端。
- 根据权利要求1-6任一项所述的方法,在通过所述第二流传输通道,将所述直播数据流中直播数据帧发送至所述直播客户端的过程中,还包括:针对所述直播数据流中的每个直播数据帧,确定所述直播数据帧的过期时长,并响应于存在所述直播数据帧相关数据包的重传操作,根据所述过期时长,执行所述直播数据帧的丢弃处理逻辑。
- 根据权利要求7所述的方法,其中,所述响应于存在所述直播数据帧相关数据包的重传操作,根据所述过期时长,执行所述直播数据帧的丢弃处理逻辑,包括:响应于确定所述直播数据帧的相关直播数据包在传输过程中发生丢包,通过所述第二流传输通道重新发送所述相关直播数据包,并在首次出现所述直播数据帧的相关直播数据包重传时,启动重传计时;响应于重传计时的累计时长超过所述过期时长,形成相对所述直播数据帧的过期信息数据包,并发送至所述直播客户端,以使所述直播客户端从数据缓存列表中丢弃所述直播数据帧的相关数据。
- 一种直播数据传输方法,应用于直播客户端,包括:通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
- 根据权利要求9所述的方法,其中,通过所述第一流传输通道接收的数据包为:相对所述直播播放请求的响应报文、相对所述直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传输通道关联关系的关联帧;通过所述第二流传输通道接收的数据包为:相对所述直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。
- 根据权利要求9所述的方法,其中,所述通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据,包括:从所述第一流传输通道及第二流传输通道中接收数据包,并对所接收数据包的数据内容进行分析;响应于分析确定所接收数据包不满足状态触发条件,确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,并继续执行所接收数据包的分析操作;响应于分析确定所接收数据包满足状态触发条件,确定流传输当前处于工 作状态,从数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据;其中,直播数据帧为直播播放请求相匹配直播数据流中的数据帧。
- 根据权利要求11所述的方法,其中,所述状态触发条件为:在从所述第一流传输通道中所接收数据包为所述直播播放请求的响应报文之后,从所述第一流传输通道中接收到所述直播播放请求所关联直播数据帧的关键信息数据包;且还从所述第一流传输通道中接收到表征所述第二流传输通道与所述第一流传输通道关联的关联帧。
- 根据权利要求12所述的方法,其中,所述将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,包括:响应于所接收数据包为所述第二流传输通道接收的直播数据包,确定所接收数据包中直播数据帧相关的数据信息,并将所述数据信息存至所述数据缓存列表。
- 根据权利要求11所述的方法,其中,所述从数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据,包括:确定缓存偏移指针在所述数据缓存列表中指向的直播数据帧头;响应于所述直播数据帧头所对应目标直播数据帧的数据内容完整,将所述直播数据帧确定为待播放直播数据;响应于所述直播数据帧头所对应目标直播数据帧的数据内容不完整,以设定间隔重新执行所述目标直播数据帧的内容完整判定,直至接收到所述直播服务器相对所述目标直播数据帧发送的过期信息数据包;将所述缓存偏移指针移动到所述目标直播数据帧下一帧的直播数据帧头,作为新的目标直播数据帧,并返回重新进行内容完整判定。
- 一种直播数据传输装置,集成于直播服务器,包括:请求接收模块,设置为接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;通道创建模块,设置为创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;信息发送模块,设置为通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;数据帧发送模块,设置为通过所述第二流传输通道,将所述直播数据流中直播数据帧发送至所述直播客户端。
- 一种直播数据传输装置,集成于直播客户端,包括:请求发送模块,设置为通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;数据包接收模块,设置为接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;直播数据确定模块,设置为通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
- 一种直播数据传输系统,包括:直播服务器和直播客户端,其中,所述直播服务器设置为实现如权利要求1-8中任一所述的直播数据传输方法;所述直播客户端设置为实现权利要求9-14中任一所述的直播数据传输方法。
- 一种电子设备,包括:至少一个处理器;存储器,设置为存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-14中任一所述的直播数据传输方法。
- 一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-14中任一所述的直播数据传输方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/863,574 US20250310576A1 (en) | 2022-05-11 | 2023-05-10 | Livestream data transmission method, apparatus and system, device and medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210515125.2A CN114979793B (zh) | 2022-05-11 | 2022-05-11 | 一种直播数据传输方法、装置、系统、设备和介质 |
| CN202210515125.2 | 2022-05-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023217188A1 true WO2023217188A1 (zh) | 2023-11-16 |
Family
ID=82980982
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/093270 Ceased WO2023217188A1 (zh) | 2022-05-11 | 2023-05-10 | 一种直播数据传输方法、装置、系统、设备和介质 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250310576A1 (zh) |
| CN (1) | CN114979793B (zh) |
| WO (1) | WO2023217188A1 (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114979793B (zh) * | 2022-05-11 | 2024-09-03 | 北京字节跳动网络技术有限公司 | 一种直播数据传输方法、装置、系统、设备和介质 |
| CN116527787A (zh) * | 2023-05-18 | 2023-08-01 | 上海哔哩哔哩科技有限公司 | 音视频数据的传输方法和系统 |
| CN119172322A (zh) * | 2023-06-20 | 2024-12-20 | 中兴通讯股份有限公司 | 数据的传输方法、设备及存储介质 |
| CN117082266A (zh) * | 2023-07-17 | 2023-11-17 | 中国电信股份有限公司技术创新中心 | 直播中继方法、直播数据接收方法、装置、设备和介质 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105392020A (zh) * | 2015-11-19 | 2016-03-09 | 广州华多网络科技有限公司 | 一种互联网视频直播方法,及系统 |
| CN107040549A (zh) * | 2017-06-08 | 2017-08-11 | 山大鲁能信息科技有限公司 | 一种tcp粘包处理方法、服务器及系统 |
| WO2018103733A1 (zh) * | 2016-12-09 | 2018-06-14 | 中兴通讯股份有限公司 | 一种控制方法及设备 |
| CN108769726A (zh) * | 2018-06-14 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 多媒体数据推送方法、装置、存储介质及设备 |
| CN109150876A (zh) * | 2018-08-20 | 2019-01-04 | 深圳市昊源科技有限公司 | 一种视频无线传输的qos方法、装置及系统 |
| CN109862038A (zh) * | 2019-03-22 | 2019-06-07 | 江苏睿鸿网络技术有限公司 | 一种流媒体协议中数据延时及丢包的处理方法 |
| CN112350979A (zh) * | 2019-08-09 | 2021-02-09 | 华为技术有限公司 | 数据传输方法、装置以及系统 |
| CN114979793A (zh) * | 2022-05-11 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 一种直播数据传输方法、装置、系统、设备和介质 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101091910B1 (ko) * | 2005-12-29 | 2011-12-08 | 삼성테크윈 주식회사 | 실시간 전송 프로토콜을 사용하는 비디오 서버의 제어 방법및 그 기록 매체 |
| US20120173748A1 (en) * | 2011-01-03 | 2012-07-05 | Nokia Corporation | Hybrid transport-layer protocol media streaming |
| US20150373075A1 (en) * | 2014-06-23 | 2015-12-24 | Radia Perlman | Multiple network transport sessions to provide context adaptive video streaming |
| CN104618337B (zh) * | 2014-12-31 | 2018-01-02 | 浙江理工大学 | 一种基于tcp/udp混合协议的流媒体无线自适应传输方法 |
| CN108696772B (zh) * | 2017-04-11 | 2021-07-16 | 苏州谦问万答吧教育科技有限公司 | 一种实时视频的传输方法及装置 |
| CN108260010A (zh) * | 2018-02-05 | 2018-07-06 | 南通大学 | 一种基于网络编解码和协作分发的视频点播方法以及系统 |
| CN110557655B (zh) * | 2019-09-06 | 2021-10-26 | 卓米私人有限公司 | 一种视频画面显示方法、装置、电子设备及存储介质 |
-
2022
- 2022-05-11 CN CN202210515125.2A patent/CN114979793B/zh active Active
-
2023
- 2023-05-10 WO PCT/CN2023/093270 patent/WO2023217188A1/zh not_active Ceased
- 2023-05-10 US US18/863,574 patent/US20250310576A1/en active Pending
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105392020A (zh) * | 2015-11-19 | 2016-03-09 | 广州华多网络科技有限公司 | 一种互联网视频直播方法,及系统 |
| WO2018103733A1 (zh) * | 2016-12-09 | 2018-06-14 | 中兴通讯股份有限公司 | 一种控制方法及设备 |
| CN107040549A (zh) * | 2017-06-08 | 2017-08-11 | 山大鲁能信息科技有限公司 | 一种tcp粘包处理方法、服务器及系统 |
| CN108769726A (zh) * | 2018-06-14 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 多媒体数据推送方法、装置、存储介质及设备 |
| CN109150876A (zh) * | 2018-08-20 | 2019-01-04 | 深圳市昊源科技有限公司 | 一种视频无线传输的qos方法、装置及系统 |
| CN109862038A (zh) * | 2019-03-22 | 2019-06-07 | 江苏睿鸿网络技术有限公司 | 一种流媒体协议中数据延时及丢包的处理方法 |
| CN112350979A (zh) * | 2019-08-09 | 2021-02-09 | 华为技术有限公司 | 数据传输方法、装置以及系统 |
| CN114979793A (zh) * | 2022-05-11 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 一种直播数据传输方法、装置、系统、设备和介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250310576A1 (en) | 2025-10-02 |
| CN114979793B (zh) | 2024-09-03 |
| CN114979793A (zh) | 2022-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2023217188A1 (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
| US11792130B2 (en) | Audio/video communication method, terminal, server, computer device, and storage medium | |
| CN115244944B (zh) | Url投屏方法和装置 | |
| TWI388170B (zh) | 網路中串流資料內容之方法及裝置 | |
| EP2383941B1 (en) | Client terminal, method and system for downloading streaming media | |
| CN112804711B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
| US12363584B2 (en) | Conserving network resources during transmission of packets of interactive services | |
| CN107819809B (zh) | 对内容进行同步操作的方法及装置 | |
| WO2019144836A1 (zh) | 数据传输方法、装置和系统 | |
| CN112953850B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
| JP2019528604A (ja) | 仮想マルチパスデータトランスポートのためのシステム及び方法 | |
| US12563246B2 (en) | Method, apparatus, electronic device and storage medium for audio and video synchronization monitoring | |
| CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
| CN117978787A (zh) | 数据传输方法、装置、系统、电子设备及存储介质 | |
| CN114765690A (zh) | 数据包传输方法及相关设备 | |
| CN114710568A (zh) | 音视频数据通信方法、设备及存储介质 | |
| CN103647727A (zh) | 音视频传输控制方法和装置 | |
| CN120017880A (zh) | 视频数据的处理方法和装置、存储介质及电子设备 | |
| CN115604537A (zh) | 一种数据传输的方法,相关装置以及设备 | |
| WO2024260179A1 (zh) | 数据的传输方法、设备及存储介质 | |
| Zhang et al. | How edge computing and initial congestion window affect latency of web-based services: Early experiences with baidu? | |
| CN116743660A (zh) | 一种面向广域网的拥塞控制方法及装置 | |
| CN119563299A (zh) | 数据传输方法、装置和系统 | |
| CN116319719A (zh) | 一种数据传输方法、设备、系统及计算机存储介质 | |
| CN115942000A (zh) | 基于h.264格式的视频流转码方法及装置、设备及介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23802957 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18863574 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 28.02.2025) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23802957 Country of ref document: EP Kind code of ref document: A1 |
|
| WWP | Wipo information: published in national office |
Ref document number: 18863574 Country of ref document: US |