Data transmission method, server and terminal equipment

By using multiple transmission channels and different transmission protocols in data transmission, selecting appropriate transmission methods based on the importance of data and network conditions, the problem that low-latency protocols in the prior art is difficult to ensure data transmission reliability, and realizes the Low latency and high reliability video data transmission.

CN119182760APending Publication Date: 2024-12-24BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310745370.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-21
Publication Date
2024-12-24

AI Technical Summary

Technical Problem

When existing data transmission protocols pursue low latency, it is difficult to ensure the reliability of data transmission, resulting in video playback failure or delay.

Method used

Multiple transmission channels are used, high reliability channels (such as TCP) are used to transmit the first type of data that is crucial to video playback, and low latency but less reliable channels (such as UDP) are used to transmit other types of data. Combining non-redundant transmission and redundant transmission methods, the transmission method is flexibly selected according to the importance of data and network conditions.

Benefits of technology

While ensuring low latency, it improves the reliability of data transmission, ensures the success rate and fluency of video playback, and is suitable for large data volume and volatility network environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119182760A_ABST
    Figure CN119182760A_ABST
Patent Text Reader

Abstract

The invention provides a data transmission method, a server and terminal equipment, and the method comprises the steps: determining a first type of data and a second type of data in to-be-transmitted data, and enabling the reliability requirement of the first type of data to be higher than the reliability requirement of the second type of data; and issuing the first type of data to a terminal device through a first transmission channel, and issuing the second type of data to the terminal device through a second transmission channel, so that the terminal device plays a video based on the received first type of data and second type of data. According to the technical scheme provided by one or more embodiments of the invention, the low time delay is ensured, and the reliability is relatively high.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of data processing, and in particular to a data transmission method, a server and a terminal device. Background Art

[0002] At present, in the field of data transmission, in order to reduce the delay caused by data transmission, a more real-time protocol is usually used to transmit data. For example, in actual applications, the UDP protocol (User Datagram Protocol) can be used to transmit data streams between a server and a user's terminal device.

[0003] However, in order to ensure low latency, the above protocols may sacrifice the reliability of data transmission. When the amount of data transmitted is large, it is likely that due to lack of reliability, the user's terminal device will not be able to obtain the complete data stream, which will cause the video to not play normally.

[0004] In view of this, there is a need for a video data transmission method that has high reliability while ensuring low latency. Summary of the invention

[0005] One or more embodiments of the present disclosure provide a data transmission method, a server, and a terminal device, which have high reliability while ensuring low latency.

[0006] On the one hand, the present disclosure provides a data transmission method, which is applied to a server, and a first transmission channel and a second transmission channel for data transmission are provided between the server and a terminal device of a user, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the method comprises: determining first type data and second type data in the data to be transmitted, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data; sending the first type data to the terminal device through the first transmission channel, and sending the second type data to the terminal device through the second transmission channel, so that the terminal device plays a video based on the received first type data and second type data.

[0007] On the other hand, the present disclosure further provides a server, wherein a first transmission channel and a second transmission channel for data transmission are provided between the server and a terminal device of a user, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the server comprises: a data type determination unit, configured to determine first type data and second type data in data to be transmitted, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data; and a data transmission unit, configured to send the first type data to the terminal device via the first transmission channel, and send the second type data to the terminal device via the second transmission channel, so that the terminal device plays a video based on the received first type data and second type data.

[0008] On the other hand, the present disclosure further provides a data transmission method, which is applied to a user's terminal device, wherein a first transmission channel and a second transmission channel for data transmission are provided between the terminal device and a server, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the method comprises: receiving first type data sent by the server through the first transmission channel, and receiving second type data sent by the server through the second transmission channel, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data, and the first type data and the second type data are determined from data to be transmitted; generating a video stream based on the first type data and the second type data, and playing a video represented by the video stream.

[0009] On the other hand, the present disclosure further provides a terminal device, wherein a first transmission channel and a second transmission channel for data transmission are provided between the terminal device and a server, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the terminal device comprises: a data receiving unit, configured to receive first type data sent from the server through the first transmission channel, and to receive second type data sent from the server through the second transmission channel, wherein the reliability requirement of the first type data is higher than that of the second type data, and the first type data and the second type data are determined from data to be transmitted; and a video playing unit, configured to generate a video stream based on the first type data and the second type data, and to play the video represented by the video stream.

[0010] On the other hand, the present disclosure further provides a server, the server comprising a memory and a processor, the memory is used to store a computer program, and when the computer program is executed by the processor, the above-mentioned data transmission method is implemented.

[0011] On the other hand, the present disclosure further provides a terminal device, which includes a memory and a processor, wherein the memory is used to store a computer program, and when the computer program is executed by the processor, the above-mentioned data transmission method is implemented.

[0012] On the other hand, the present disclosure further provides a computer-readable storage medium, wherein the computer-readable storage medium is used to store a computer program, and when the computer program is executed by a processor, the above-mentioned data transmission method is implemented.

[0013] The technical solution provided by one or more embodiments of the present disclosure can adopt different transmission channels for transmission of data to be transmitted according to the reliability requirements of the data, wherein the first transmission channel with higher reliability can ensure the stability of data transmission; and the second transmission channel can ensure the real-time performance of data transmission.

[0014] Specifically, for the first type of data with higher reliability requirements among the data to be transmitted, it can be sent to the terminal device through the first transmission channel to ensure the reliable transmission of the first type of data. For the second type of data with slightly weaker reliability requirements, it can be sent to the terminal device through the second transmission channel to ensure the real-time transmission of this part of data. Subsequently, the terminal device can generate a video stream based on the received first type of data and second type of data, and play the video represented by the video stream, which not only ensures the reliability of data transmission, but also ensures that the final generated video has a low delay. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The features and advantages of the embodiments of the present disclosure may be more clearly understood by referring to the accompanying drawings, which are schematic and should not be construed as limiting the present disclosure in any way. In the accompanying drawings:

[0016] Figure 1 A schematic diagram of a data transmission method performed by a server in one embodiment of the present disclosure is shown;

[0017] Figure 2 A schematic diagram showing a non-redundant transmission method in one embodiment of the present disclosure is shown;

[0018] Figure 3 A schematic diagram showing a redundant transmission method in one embodiment of the present disclosure is shown;

[0019] Figure 4 A schematic diagram of a data transmission method performed by a terminal device in one embodiment of the present disclosure is shown;

[0020] Figure 5 A schematic diagram showing data block sorting by a terminal device in one embodiment of the present disclosure is shown;

[0021] Figure 6 A schematic diagram of functional modules of a server in one embodiment of the present disclosure is shown;

[0022] Figure 7 A schematic diagram of functional modules of a terminal device in one embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0023] In order to make the purpose, technical solutions and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present disclosure.

[0024] At present, in order to ensure the low latency characteristics of video, unreliable protocols such as UDP can be used to transmit data. However, in actual applications, due to the large amount of data to be transmitted or fluctuations in the network environment, some data may be lost during the transmission process, which in turn causes the user's terminal device to be unable to play the video normally.

[0025] In order to ensure that the user's terminal device can play the video normally, redundant data is usually required to be transmitted when an unreliable protocol is used for data transmission. These redundant data can be used to instruct the server to retransmit part of the data to ensure that the terminal device can receive complete data. Specifically, redundant data has a variety of forms in practical applications. For example, redundant data such as forward error correction (FEC) data, negative feedback (NACK) data, and picture loss indication (PLI) data can be added to the transmitted data.

[0026] However, this part of redundant data is still at risk of being lost during transmission based on an unreliable protocol, which will lead to repeated transmission of redundant data in the transmission channel, thereby causing a network storm and causing the terminal device to be unable to play the video normally.

[0027] In order to solve the above problems, the data to be transmitted can be transmitted through a reliable protocol in the related technology. For example, data can be transmitted between the server and the terminal device through the TCP protocol. However, reliable protocols usually take a long time to establish a connection. For example, when the TCP protocol is used, the server and the terminal device need to complete the handshake process before the connection can be established. This will cause a certain delay in the data received by the terminal device. Although the reliability of data transmission is guaranteed, the low-latency characteristic cannot be met.

[0028] In view of this, an embodiment of the present disclosure provides a data transmission method that can ensure the reliability of data transmission while ensuring low latency characteristics. The method can be applied to a server, which can be a data streaming server. Generally speaking, a user's terminal device can access the server, load data from the server, and decode and render the data to play the corresponding video.

[0029] In this embodiment, there may be multiple transmission channels between the server and the user's terminal device, wherein different transmission channels may correspond to different reliabilities. The above-mentioned transmission channels may characterize channels for data transmission. Taking the first transmission channel and the second transmission channel as examples, the reliability of the first transmission channel may be higher than that of the second transmission channel. In practical applications, the first transmission channel may, for example, be a channel for data transmission through the TCP protocol, and the second transmission channel may, for example, be a channel for data transmission through the UDP protocol. Of course, depending on the data transmission scenario, the expression forms of the first transmission channel and the second transmission channel may also be diversified. For example, the first transmission channel may be a Wi-Fi transmission channel, and the second transmission channel may be a mobile network transmission channel.

[0030] It should be noted that the above-mentioned first transmission channel and the second transmission channel only represent different ways of data transmission, and do not indicate that there must be a corresponding connection between the server and the terminal device. The reason is that for some protocols, when transmitting data, it is not required to establish a connection between the server and the terminal device in advance. For example, the UDP protocol is a connectionless transmission protocol. This protocol can transmit data in the form of encapsulated IP data packets without establishing a connection. For the TCP protocol, before data transmission, it is usually necessary to pre-establish a connection through a handshake process. Therefore, the above-mentioned first transmission channel and the second transmission channel do not necessarily correspond to the connection between the server and the terminal device.

[0031] In one embodiment, for a transmission channel that requires a pre-established connection, the terminal device may first establish a connection with the server before preparing to pull data from the server. For example, the terminal device may first establish a TCP communication connection with the server through a handshake negotiation.

[0032] See also Figure 1 The data transmission method provided in this embodiment may include the following steps.

[0033] S11: determining first type data and second type data in data to be transmitted, wherein a reliability requirement of the first type data is higher than a reliability requirement of the second type data.

[0034] S13: Sending the first type of data to the terminal device through the first transmission channel, and sending the second type of data to the terminal device through the second transmission channel, so that the terminal device plays the video based on the received first type of data and second type of data.

[0035] In this embodiment, when the server sends data to the terminal device, it can selectively transmit different types of data through different transmission channels. Specifically, for the data to be transmitted, the server can determine the first type of data with higher reliability requirements and the second type of data with relatively lower reliability requirements in the data according to the reliability requirements of the data. Among them, the first type of data can be data that has a greater impact on the success rate of video playback. By ensuring the transmission reliability of this part of data, the success rate of video playback at the terminal device can be improved.

[0036] In actual applications, at the stage when the server just starts to push data to the terminal device, the amount of data transmitted between the server and the terminal device is usually large. The reliability of data transmission at this stage will affect the duration of the first screen rendering of the terminal device and the success rate of video playback. In view of this, the data of the first video frame and / or the data of the first group of pictures (Group of Picture, GoP) in the data to be transmitted can be used as the above-mentioned first type of data. Among the data to be transmitted, other data except the data of the first video frame, or other data except the data of the first group of pictures, can be used as the second type of data with lower reliability requirements. In this case, there is usually no duplicate data between the first type of data and the second type of data. In the present disclosure, this data transmission mode can be referred to as a non-redundant transmission mode.

[0037] In addition, in one embodiment, the first type of data and the second type of data will be subsequently transmitted through different transmission channels respectively. In order to take into account the low latency characteristics of data transmission, the data in the first video frame or the first image group can still be redundantly transmitted as the second type of data. In this way, when the data in the first video frame or the first image group in the data to be transmitted is used as the first type of data, the entire data to be transmitted can be used as the second type of data. In this data transmission mode in this embodiment, there is some redundant data in the first type of data and the second type of data. In this disclosure, this data transmission mode can be called a redundant transmission mode.

[0038] These two different transmission methods can be seen in Figure 2 and Figure 3 .in, Figure 2 It represents a non-redundant transmission mode. Figure 3 Represents the redundant transmission mode. Figure 2 and Figure 3 The shaded area is the first video frame or the first image group. The advantage of non-redundant transmission is that the amount of data transmitted is less than that of redundant transmission, thus saving the traffic required at the terminal device. However, due to the higher reliability of the first transmission channel, it usually takes a certain amount of time to establish a connection between the server and the terminal device, which will cause the data of the first video frame or the first image group received at the terminal device to lag slightly, so the first screen rendering time will increase slightly.

[0039] Although the redundant transmission method consumes more traffic, since the second transmission channel does not need to spend extra time to establish a connection, under normal network conditions, the terminal device will receive the data of the first video frame or the first image group through the second transmission channel earlier, so that the first screen rendering is more timely, and the video has low latency characteristics from the beginning.

[0040] It can be seen that the redundant transmission mode and the non-redundant transmission mode have their own characteristics in practical applications and can be flexibly selected according to the needs of actual application scenarios.

[0041] In one embodiment, whether to use the data of the first video frame or the data of the first image group as the first type of data can be flexibly determined according to actual conditions. If the data of the first video frame accounts for a high proportion of the data in the first image group, the video playback success rate can be guaranteed while ensuring the transmission reliability of the first video frame. If the data of the first video frame accounts for a low proportion of the data in the first image group, it is necessary to ensure the overall transmission reliability of the first image group. In view of this, in this embodiment, for the data of the first image group in the data to be transmitted, if the data proportion of the first video frame in the data of the first image group is greater than or equal to a preset ratio threshold, the data of the first video frame can be used as the first type of data. If the data proportion of the first video frame is less than the preset ratio threshold, the data of the first image group is used as the first type of data. The above-mentioned preset ratio threshold can be flexibly determined according to the actual transmission scenario.

[0042] In one embodiment, considering that the second transmission channel may use redundant data such as FEC, NACK, PLI, etc. to ensure the completeness of data transmission during data transmission, then in the actual data transmission process, by ensuring the transmission reliability of the above-mentioned redundant data such as FEC, NACK, PLI, etc., it is possible to use data retransmission and data recovery and other means to enable the terminal device to obtain complete data from the server, thereby further ensuring the reliability of data transmission while utilizing the low latency characteristics of the second transmission channel.

[0043] Specifically, when the server sends data to the terminal device, it can add forward error correction (FEC) data to the data. If the terminal device loses part of the data, it can use the FEC data to restore the lost data. In this case, the forward error correction data in the first image group in the data to be transmitted can be used as the first type of data, and the entire data to be transmitted can still be used as the second type of data. In this way, by transmitting the forward error correction data in the first image group through the first transmission channel, it can be ensured that the terminal device can receive the forward error correction data. If the data in the first image group transmitted through the second transmission channel is partially missing, the terminal device can also use the forward error correction data in the first image group to restore the data of the first image group, thereby improving the success rate of video playback while utilizing the low latency characteristics of the second transmission channel.

[0044] In addition, in one embodiment, the forward error correction data in each image group in the data to be transmitted can be used as the first type of data, and the entire data to be transmitted can be used as the second type of data. In this way, any forward error correction data in the data can be ensured to be received by the terminal device, so although the data transmission volume is increased, it can be ensured that the data of each image group can be restored by the terminal device, thereby improving the overall stability and fluency of the video.

[0045] In one implementation, NACK data and PLI data are usually fed back to the server by the terminal device when the terminal device does not receive complete data. Therefore, both NACK data and PLI data can be used as data loss messages initiated by the terminal device. In the data loss message, the data identifier of the lost data can be marked. In this way, when the server receives the data loss message, it can extract the data identifier from it and resend the corresponding data to the terminal device.

[0046] In this embodiment, in order to ensure that the server can receive the data loss message, the terminal device can send the data loss message through the first transmission channel. After receiving the data loss message sent by the terminal device through the first transmission channel, the server can also feed back the data represented by the data loss message to the terminal device through the first transmission channel to ensure the reliability of data transmission. In this way, both the transmission of the data loss message and the transmission of the data represented by the data loss message can be completed through the first transmission channel with higher reliability, thereby ensuring that the terminal device can receive complete data. At the same time, the second transmission channel will transmit the data in full, while taking advantage of the low latency characteristics of the second transmission channel, it can also ensure the reliability of data transmission through the first transmission channel.

[0047] In this embodiment, the first transmission channel and the second transmission channel can be bound to their respective transmission protocols. For example, the first transmission protocol corresponding to the first transmission channel can be a reliable transmission protocol such as TCP, and the second transmission protocol corresponding to the second transmission channel can be an unreliable transmission protocol such as UDP. In this way, after determining the first type of data and the second type of data, the server can process the first type of data through the first transmission protocol to generate a first data packet that conforms to the first transmission protocol. For example, the first data packet can be a TCP data packet. Similarly, the second type of data can be processed through the second transmission protocol to generate a second data packet that conforms to the second transmission protocol. For example, the second data packet can be a UDP data packet. In this way, both the first data packet and the second data packet can be sent to the terminal device. After the terminal device receives the first data packet and the second data packet, it can extract the first type of data and the second type of data in the first data packet and the second data packet respectively based on their respective transmission protocols, thereby playing the video based on the first type of data and the second type of data.

[0048] An embodiment of the present disclosure also provides a data transmission method applied to a terminal device. Similar to the above, a first transmission channel and a second transmission channel are provided between the terminal device and the server for data transmission, wherein the reliability of the first transmission channel is higher than that of the second transmission channel.

[0049] See also Figure 4 The data transmission method provided in this embodiment may include the following steps.

[0050] S21: receiving first type data sent from the server through the first transmission channel, and receiving second type data sent from the server through the second transmission channel, wherein a reliability requirement of the first type data is higher than a reliability requirement of the second type data, and the first type data and the second type data are determined from data to be transmitted.

[0051] S23: Generate a video stream based on the first type of data and the second type of data, and play the video represented by the video stream.

[0052] Among them, the determination method of the first type of data and the second type of data, as well as the data transmission method of the first transmission channel and the second transmission channel can be referred to the description of the aforementioned implementation method, which will not be repeated here.

[0053] In practical applications, the first type of data and the second type of data can be transmitted in the form of data blocks during transmission. Each data block has its own block identifier, and if the first data block in the first type of data and the second data block in the second type of data represent the same data content, the first data block and the second data block have the same block identifier. Figure 5 , taking the first video frame as an example, the first video frame can be divided into 6 data blocks. Figure 3 and Figure 5 When data is transmitted through redundant transmission, the first transmission channel and the second transmission channel will transmit the 6 data blocks corresponding to the first video frame. However, these 6 data blocks are processed by different transmission protocols in different transmission channels. However, the data blocks with the same block identifier represent the same data content.

[0054] In one embodiment, after receiving the data blocks through the first transmission channel and the second transmission channel, the terminal device can sort the data blocks in the received first type of data and second type of data according to the block identifier. In the redundant transmission mode, for the same block identifier, the terminal device is likely to receive multiple data blocks. For example, Figure 5 In the figure, the crossed-out data blocks in the second transmission channel represent the data blocks lost during the transmission process. It can be seen that both the first transmission channel and the second transmission channel successfully pass the data blocks with block identification 1.3 to the terminal device, and the terminal device will receive these two data blocks with block identification 1.3 successively. In this case, the terminal device can retain the data block received first and discard other repeated data blocks. For example, when the terminal device first receives the data block with block identification 1.3 through the second transmission channel, it will discard the data block with block identification 1.3 sent by the first transmission channel.

[0055] In the above manner, for the same block identifier, the terminal device will eventually retain only one data block. In this way, after extracting data from the data blocks according to the transmission protocols of different transmission channels, the terminal device can splice the extracted data according to the block identifiers to form a complete video stream. Subsequently, by decoding and rendering the video stream, the corresponding video can be played.

[0056] In one embodiment, when the terminal device generates a video stream based on the first type of data and the second type of data, due to the low reliability of the second transmission channel, some data blocks may be missing. In this case, if the target data block is missing, the terminal device can generate a data loss message representing the target data block. Specifically, the data loss message can be, for example, a NACK message or a PLI message, and the block identifier of the target data block can be marked in the data loss message, so that the data loss message carrying the block identifier can represent the target data block. Subsequently, in order to improve the reliability of data transmission, the terminal device can send the data loss message to the server through the first transmission channel. After receiving the data loss message, the server can extract the block identifier from it, and query the corresponding target data block from the cached data that has been sent, and also in order to ensure the reliability of data transmission, the target data block can be fed back to the terminal device through the first transmission channel. After receiving the target data block represented by the data loss message fed back by the server through the first transmission channel, the terminal device can generate a video stream according to the target data block.

[0057] It can be seen that the technical solution provided by one or more embodiments of the present disclosure can adopt different transmission channels for transmission of data to be transmitted according to the reliability requirements of the data, wherein the first transmission channel with higher reliability can ensure the stability of data transmission; and the second transmission channel can ensure the real-time performance of data transmission.

[0058] Specifically, for the first type of data with higher reliability requirements among the data to be transmitted, it can be sent to the terminal device through the first transmission channel to ensure the reliable transmission of the first type of data. For the second type of data with slightly weaker reliability requirements, it can be sent to the terminal device through the second transmission channel to ensure the real-time transmission of this part of data. Subsequently, the terminal device can generate a video stream based on the received first type of data and second type of data, and play the video represented by the video stream, which not only ensures the reliability of data transmission, but also ensures that the final generated video has a low delay.

[0059] See also Figure 6 The present disclosure further provides a server, wherein a first transmission channel and a second transmission channel for data transmission are provided between the server and a terminal device of a user, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the server comprises:

[0060] A data type determination unit 110, configured to determine first type data and second type data in the data to be transmitted, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data;

[0061] The data transmission unit 130 is used to send the first type of data to the terminal device through the first transmission channel, and to send the second type of data to the terminal device through the second transmission channel, so that the terminal device plays the video based on the received first type of data and second type of data.

[0062] See also Figure 7 The present disclosure further provides a terminal device, wherein a first transmission channel and a second transmission channel for data transmission are provided between the terminal device and a server, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the terminal device comprises:

[0063] a data receiving unit 210, configured to receive first type data sent by the server through the first transmission channel, and receive second type data sent by the server through the second transmission channel, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data, and the first type data and the second type data are determined from data to be transmitted;

[0064] The video playing unit 230 is configured to generate a video stream based on the first type of data and the second type of data, and play the video represented by the video stream.

[0065] Each unit described in the above embodiments may be implemented by a computer chip or a product having a certain function. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.

[0066] For the convenience of description, the above devices are described in terms of functions and are described separately in various units. Of course, when implementing the present application, the functions of each unit can be implemented in the same or multiple software and / or hardware.

[0067] The present disclosure also provides a server, which includes a memory and a processor, wherein the memory is used to store a computer program, and when the computer program is executed by the processor, the above-mentioned data transmission method executed by the server is implemented.

[0068] The present disclosure also provides a terminal device, which includes a memory and a processor, wherein the memory is used to store a computer program, and when the computer program is executed by the processor, the above-mentioned data transmission method executed by the terminal device is implemented.

[0069] The present disclosure also provides a computer-readable storage medium, wherein the computer-readable storage medium is used to store a computer program, and when the computer program is executed by a processor, the above-mentioned data transmission method is implemented.

[0070] The processor may be a central processing unit (CPU). The processor may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or a combination of the above chips.

[0071] As a non-transitory computer-readable storage medium, the memory can be used to store non-transitory software programs, non-transitory computer executable programs and modules, such as program instructions / modules corresponding to the method in the embodiment of the present disclosure. The processor executes various functional applications and data processing of the processor by running the non-transitory software programs, instructions and modules stored in the memory, that is, implementing the method in the above method embodiment.

[0072] The memory may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created by the processor, etc. In addition, the memory may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory may optionally include a memory remotely disposed relative to the processor, and these remote memories may be connected to the processor via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0073] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing the relevant hardware through a computer program, and the program can be stored in a computer-readable storage medium, and when the program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, the storage medium can be a disk, an optical disk, a read-only memory (ROM), a random access memory (RAM), a flash memory, a hard disk drive (HDD) or a solid-state drive (SSD), etc.; the storage medium can also include a combination of the above-mentioned types of memory.

[0074] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the embodiments of the server, terminal device, and storage medium, since they are basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0075] The above is only the embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.

[0076] Although the embodiments of the present disclosure have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present disclosure, and such modifications and variations are all within the scope defined by the appended claims.

Claims

1. A data transmission method, characterized in that: The method is applied to a server, wherein a first transmission channel and a second transmission channel for data transmission are provided between the server and a terminal device of a user, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the method comprises: Determining first type data and second type data in the data to be transmitted, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data; The first type of data is sent to the terminal device through the first transmission channel, and the second type of data is sent to the terminal device through the second transmission channel, so that the terminal device plays the video based on the received first type of data and second type of data.

2. The method according to claim 1, characterized in that Sending the first type of data to the terminal device through the first transmission channel, and sending the second type of data to the terminal device through the second transmission channel includes: Processing the first type of data using a first transmission protocol corresponding to the first transmission channel to generate a first data packet that complies with the first transmission protocol, and sending the first data packet to the terminal device; and The second type of data is processed using a second transmission protocol corresponding to the second transmission channel to generate a second data packet that complies with the second transmission protocol, and the second data packet is sent to the terminal device.

3. The method according to claim 1 or 2, characterized in that: Determining the first type of data and the second type of data in the data to be transmitted includes: Using the data of the first video frame in the data to be transmitted as the first type of data, and using the other data in the data to be transmitted except the data of the first video frame as the second type of data; or The data of the first video frame in the data to be transmitted is used as the first type of data, and the data to be transmitted is used as the second type of data.

4. The method according to claim 1 or 2, characterized in that: Determining the first type of data and the second type of data in the data to be transmitted includes: Using the data of the first image group in the data to be transmitted as the first type of data, and using the other data in the data to be transmitted except the data of the first image group as the second type of data; or The data of the first image group in the data to be transmitted is taken as the first type of data, and the data to be transmitted is taken as the second type of data.

5. The method according to claim 1, characterized in that Determining the first type of data in the data to be transmitted includes: For the data of the first image group in the data to be transmitted, if the data proportion of the first video frame in the data of the first image group is greater than or equal to the preset ratio threshold, the data of the first video frame is used as the first type of data; if the data proportion of the first video frame is less than the preset ratio threshold, the data of the first image group is used as the first type of data.

6. The method according to claim 1 or 2, characterized in that: Determining the first type of data and the second type of data in the data to be transmitted includes: Using the forward error correction data in the first image group in the data to be transmitted as the first type of data, and using the data to be transmitted as the second type of data; or The forward error correction data in each image group in the data to be transmitted is taken as the first type of data, and the data to be transmitted is taken as the second type of data.

7. The method according to claim 1, characterized in that The method further comprises: Receive a data loss message sent by the terminal device through the first transmission channel, and feed back the data represented by the data loss message to the terminal device through the first transmission channel.

8. A server, characterized in that: The server and the user's terminal device are provided with a first transmission channel and a second transmission channel for data transmission, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the server comprises: a data type determination unit, configured to determine first type data and second type data in the data to be transmitted, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data; A data transmission unit is used to send the first type of data to the terminal device through the first transmission channel, and to send the second type of data to the terminal device through the second transmission channel, so that the terminal device plays the video based on the received first type of data and second type of data.

9. A data transmission method, characterized in that: The method is applied to a terminal device of a user, wherein a first transmission channel and a second transmission channel for data transmission are provided between the terminal device and a server, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the method comprises: receiving first type data sent by the server through the first transmission channel, and receiving second type data sent by the server through the second transmission channel, wherein a reliability requirement of the first type data is higher than a reliability requirement of the second type data, and the first type data and the second type data are determined from data to be transmitted; A video stream is generated based on the first type of data and the second type of data, and a video represented by the video stream is played.

10. The method according to claim 9, characterized in that The first type of data and the second type of data are transmitted in the form of data blocks, wherein each data block has its own block identifier, and if the first data block in the first type of data and the second data block in the second type of data represent the same data content, the first data block and the second data block have the same block identifier.

11. The method according to claim 9 or 10, characterized in that: Generating a video stream based on the first type of data and the second type of data includes: The received data blocks in the first type of data and the second type of data are sorted according to the block identifiers, and a video stream is generated based on the sorting results; wherein, for the same block identifier, if multiple data blocks are received, the first received data block among the multiple data blocks is retained, and the other data blocks among the multiple data blocks are discarded.

12. The method according to claim 9, characterized in that The method further comprises: When generating a video stream based on the first type of data and the second type of data, if a target data block is missing, generating a data loss message representing the target data block, and sending the data loss message to the server through the first transmission channel; Receive the target data blocks represented by the data loss message fed back by the server through the first transmission channel, and generate a video stream according to the received target data blocks.

13. A terminal device, characterized in that: The terminal device and the server are provided with a first transmission channel and a second transmission channel for data transmission, wherein the reliability of the first transmission channel is higher than that of the second transmission channel, and the terminal device comprises: a data receiving unit, configured to receive first type data sent by the server through the first transmission channel, and receive second type data sent by the server through the second transmission channel, wherein the reliability requirement of the first type data is higher than the reliability requirement of the second type data, and the first type data and the second type data are determined from data to be transmitted; A video playback unit is configured to generate a video stream based on the first type of data and the second type of data, and to play a video represented by the video stream.

14. A server, characterized in that: The server comprises a memory and a processor, wherein the memory is used to store a computer program, and when the computer program is executed by the processor, the method according to any one of claims 1 to 7 is implemented.

15. A terminal device, characterized in that: The terminal device comprises a memory and a processor, the memory is used to store a computer program, and when the computer program is executed by the processor, the method according to any one of claims 9 to 12 is implemented.

16. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 7 or 9 to 12 is implemented.