Data transmission method and device, equipment and storage medium

By including a redirection flag in the data request, the data sender filters out the second set of data senders that store multimedia segments to be played, solving the problem of low data transmission efficiency and achieving efficient multimedia data acquisition and smooth video playback.

CN122073577APending Publication Date: 2026-05-22TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2024-11-22
Publication Date
2026-05-22

AI Technical Summary

Technical Problem

In existing technologies, the transmission efficiency during data transmission is low, which reduces the efficiency of multimedia data acquisition and affects the video playback effect.

Method used

By including a redirection flag in the data request, the data sender is instructed to select a second set of data senders from a preset data sender cluster that stores multimedia segments to be played, and return redirection information so that the data requester can directly obtain the corresponding multimedia segments to be played from the second set of data senders.

Benefits of technology

It improves data transmission efficiency, avoids unnecessary interaction processes, ensures smooth video playback, and enhances data transmission flexibility without consuming additional transmission resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122073577A_ABST
    Figure CN122073577A_ABST
Patent Text Reader

Abstract

The invention provides a data transmission method and device, equipment and a storage medium, which are used for solving the problem of low transmission efficiency in a data transmission process. The method at least comprises the following steps: receiving a data request sent by a data request end; when it is determined that the data request carries a redirection identifier, screening out a second data sending end set in which at least one multimedia fragment to be played is stored from a preset data sending end cluster; wherein the at least one to-be-played multimedia fragment is used for being sequentially played after the target multimedia fragment; and sending the target multimedia fragment to the data request end, and indicating redirection information of the second data sending end set, so that the data request end plays the target multimedia fragment, and respectively obtaining and playing the corresponding multimedia fragment to be played from the second data sending end set based on the redirection information. The interaction process when the at least one multimedia fragment to be played is loaded is simplified, and the data transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] With the continuous development of technology, more and more data sending ends can receive data requests from data requesting ends, and then return corresponding multimedia data to the data requesting end based on the received data requests. Through data transmission between the data requesting end and the data sending end, audio and video playback can be achieved on the data requesting end based on the received multimedia data.

[0003] In related technologies, the data transmission method is typically as follows: the data requesting end sends a data request to the default data sending end to obtain multimedia data of the video segment that the data requesting end is about to play; after receiving the data request from the data requesting end, if the default data sending end determines that it does not store the multimedia data, it instructs the data requesting end to re-obtain the multimedia data from other data sending ends; the data requesting end re-sends the data request to other data sending ends to obtain the multimedia data from them.

[0004] However, since videos are typically divided into multiple video segments, and the multimedia data of each segment is distributed and stored across multiple data sending ends, in most cases, multimedia data needs to be retrieved from other data sending ends each time it is needed. This results in a significant amount of interaction time between the data sending end and the data requesting end. Therefore, with a large number of data sending ends, this greatly reduces data request efficiency, thereby reducing multimedia data retrieval efficiency and ultimately affecting the video playback quality.

[0005] It is evident that the data transmission efficiency under the relevant technologies is relatively low. Summary of the Invention

[0006] This application provides a data transmission method, apparatus, device, and storage medium to solve the problem of low transmission efficiency during data transmission.

[0007] Firstly, a data transmission method is provided, applied at a first data sending end, comprising:

[0008] The system receives a data request sent by a data requesting end; wherein the data request is used to obtain a target multimedia segment; the target multimedia segment is used to be played after the multimedia segment currently being played by the data requesting end;

[0009] When it is determined that the data request carries a redirection identifier, a second data sending end set containing at least one multimedia segment to be played is selected from a preset data sending end cluster; wherein, the at least one multimedia segment to be played is used to play sequentially after the target multimedia segment;

[0010] The target multimedia segment is sent to the data requesting end, along with redirection information instructing the second data sending end set, so that the data requesting end plays the target multimedia segment, and obtains and plays the corresponding multimedia segments to be played from the second data sending end set based on the redirection information.

[0011] Secondly, a data transmission method is provided, applied to the data request end, including:

[0012] A data request is generated based on preset redirection configuration information and the currently playing multimedia segment; wherein, the redirection configuration information indicates whether to carry a redirection identifier in the data request; the data request is used to obtain the target multimedia segment to be played after the currently playing multimedia segment.

[0013] The data request is sent to a first data sender so that when the first data sender determines that the data request carries a redirection identifier, it selects a second data sender set from a preset data sender cluster that stores at least one multimedia segment to be played, and returns the target multimedia segment and redirection information indicating the second data sender set; wherein the at least one multimedia segment to be played is used to be played sequentially after the target multimedia segment.

[0014] The system receives and plays the target multimedia segment, and obtains and plays the corresponding multimedia segment to be played from the second data sending end set based on the received redirection information.

[0015] Thirdly, a data transmission device is provided, applied to a first data transmitting end, comprising:

[0016] Transceiver module: used to receive data requests sent by the data requesting end; wherein, the data request is used to obtain a target multimedia segment; the target multimedia segment is used to be played after the multimedia segment currently being played by the data requesting end;

[0017] Processing module: When it is determined that the data request carries a redirection identifier, it filters out a second data sending end set from a preset data sending end cluster that stores at least one multimedia segment to be played; wherein, the at least one multimedia segment to be played is used to play sequentially after the target multimedia segment;

[0018] The transceiver module is further configured to: send the target multimedia segment to the data requesting end, and instruct the second data sending end set on redirection information so that the data requesting end plays the target multimedia segment, and obtain and play the corresponding multimedia segments to be played from the second data sending end set based on the redirection information.

[0019] Optionally, the data request may further include: the segment position of the target multimedia segment in the multimedia resource containing the target multimedia segment;

[0020] The processing module is specifically used for:

[0021] Based on the redirection identifier, determine the number of at least one multimedia segment to be played that the data requesting end has indicated to enable the redirection function;

[0022] Based on the segment position of the target multimedia segment and the number of segments, the segment position of each of the at least one multimedia segment to be played in the multimedia resource is determined respectively;

[0023] Based on the storage mapping relationship of each pre-stored segment position in the data sending terminal cluster, a second data sending terminal set storing the at least one multimedia segment to be played is determined from the data sending terminal cluster.

[0024] Optionally, the transceiver module is specifically used for:

[0025] The storage relationship between the at least one multimedia segment to be played and the second data sending end set is used as redirection information;

[0026] When it is determined that the first data sending end stores the target multimedia segment, the target multimedia segment and the redirection information are sent to the data requesting end.

[0027] Optionally, the processing module is further configured to:

[0028] When it is determined that the first data sending end does not store the target multimedia segment, a third data sending end that stores the target multimedia segment is selected from the data sending end cluster;

[0029] Send a request response instructing the third data sender to the data requesting end, and redirection information instructing the second set of data senders, so that the data requesting end can obtain and play the target multimedia segment from the third data sender, and obtain and play the corresponding multimedia segments to be played from the second set of data senders based on the redirection information.

[0030] Optionally, the processing module is further configured to:

[0031] When it is determined that the data request does not carry a redirection identifier and the first data sending end stores the target multimedia segment, the target multimedia segment is sent to the data requesting end.

[0032] When it is determined that the data request does not carry a redirection identifier and the first data sender does not store the target multimedia segment, a fourth data sender that stores the target multimedia segment is selected from the data sender cluster, and a request response instructing the fourth data sender is sent to the data requesting end so that the data requesting end can obtain and play the target multimedia segment from the fourth data sender.

[0033] Optionally, the data sending terminal cluster includes the first data sending terminal; the second data sending terminal is the first data sending terminal, or other data sending terminals in the data sending terminal cluster besides the first data sending terminal.

[0034] Fourthly, a data transmission device is provided for use at a data request end, comprising:

[0035] Processing module: used to generate a data request based on preset redirection configuration information and the currently playing multimedia segment; wherein, the redirection configuration information indicates whether to carry a redirection identifier in the data request; the data request is used to obtain the target multimedia segment to be played after the currently playing multimedia segment;

[0036] Transceiver module: used to send the data request to the first data sender, so that when the first data sender determines that the data request carries a redirection identifier, it selects a second data sender set from a preset data sender cluster that stores at least one multimedia segment to be played, and returns the target multimedia segment, as well as redirection information indicating the second data sender set; wherein, the at least one multimedia segment to be played is used to be played sequentially after the target multimedia segment;

[0037] The transceiver module is further configured to: receive and play the target multimedia segment, and obtain and play the corresponding multimedia segment to be played from the second data sending end set based on the received redirection information.

[0038] Optionally, the processing module is specifically used for:

[0039] Obtain preset redirection configuration information; wherein, the redirection configuration information includes: switch information indicating whether the redirection function is enabled, and range information indicating at least one redirected multimedia segment that enables the redirection function;

[0040] When the switch information indicates that the redirection function is enabled, a data request carrying a redirection identifier is generated based on the range information and the currently playing multimedia segment.

[0041] When the switch information indicates that the redirection function is not enabled, a data request is generated based on the currently playing multimedia segment.

[0042] Optionally, the processing module is specifically used for:

[0043] Generate a data request based on the currently playing multimedia segment;

[0044] Based on the range information, when it is determined that the at least one redirected multimedia segment is played sequentially after the target multimedia segment, a redirection identifier is added to the data request to obtain a data request carrying the redirection identifier.

[0045] Optionally, the processing module is specifically used for:

[0046] When it is determined that at least one multimedia segment to be played after the target multimedia segment is included within the at least one redirected multimedia segment characterized by the range information, a redirection identifier is generated based on the at least one multimedia segment to be played.

[0047] Add the redirection identifier to the data request to obtain a data request carrying the redirection identifier.

[0048] Optionally, the transceiver module is specifically used for:

[0049] Based on the received redirection information, the storage relationship between the at least one multimedia segment to be played and the second data sending end set is saved;

[0050] Whenever it is determined that one of the at least one playable multimedia segments will be played, the following operations are performed:

[0051] Based on the storage relationship, the second data sending end corresponding to the multimedia segment to be played is determined;

[0052] Send a request message to the second data sender so that the second data sender returns the multimedia segment to be played;

[0053] Receive and play the multimedia segment to be played.

[0054] Optionally, the transceiver module is further configured to:

[0055] After sending the data request to the first data sending end, a request response instructing the third data sending end and the redirection information are received; wherein, the third data sending end is a data sending end that stores the target multimedia segment, selected from the data sending end cluster when the first data sending end does not store the target multimedia segment;

[0056] Based on the request response, the target multimedia segment is obtained from and played from the third data sending end;

[0057] Based on the redirection information, the corresponding multimedia segments to be played are obtained from the second data sending end set and played respectively.

[0058] Fifthly, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the method as described in the first or second aspect.

[0059] Sixthly, a computer device is provided, comprising:

[0060] Memory, used to store program instructions;

[0061] A processor is configured to invoke program instructions stored in the memory and execute the method described in the first or second aspect according to the obtained program instructions.

[0062] A seventh aspect provides a computer-readable storage medium storing computer-executable instructions for causing a computer to perform the method as described in the first or second aspect.

[0063] In this embodiment, when a data request is received from a data requesting end to obtain a target multimedia segment to be played after the currently playing multimedia segment, the system checks whether the data request carries a redirection identifier. If it does, it indicates that the data requesting end needs to obtain the storage location of at least one multimedia segment to be played after the target multimedia segment in advance. Then, the first data sending end selects a second data sending end set from the data sending end cluster that stores at least one multimedia segment to be played after the target multimedia segment. While sending the target multimedia segment to the data requesting end, the first data sending end also sends redirection information indicating the second data sending end set. Thus, for at least one multimedia segment to be played, the data requesting end no longer needs to obtain it from the first data sending end and then re-obtain it from other data sending ends. Instead, it can directly obtain the corresponding multimedia segment to be played from the second data sending end set, avoiding unnecessary interaction between the data requesting end and the data sending end, improving data transmission efficiency, and thus ensuring smooth video playback.

[0064] Furthermore, by including a redirection flag in the data request, the first data sender is instructed to filter a set of second data senders that store at least one multimedia segment to be played, and return it along with the target multimedia segment. This avoids additional signaling interactions between the data requester and the first data sender, thereby improving data transmission efficiency without consuming additional transmission resources.

[0065] Furthermore, redirection information will only be returned when the data requester includes a redirection flag in the data request. This avoids unnecessary resource consumption caused by repeatedly returning redirection information and improves the flexibility of data transmission. Attached Figure Description

[0066] Figure 1A This is a schematic diagram of a data transmission method in related technologies.

[0067] Figure 1B This is an interactive schematic diagram of a data transmission method in related technologies;

[0068] Figure 1C This is one application scenario of the data transmission method provided in the embodiments of this application;

[0069] Figure 2 A schematic flowchart of a data transmission method provided in an embodiment of this application is shown below;

[0070] Figure 3A A schematic diagram illustrating the principle of the data transmission method provided in this application embodiment;

[0071] Figure 3B A schematic diagram of the data transmission method provided in the embodiments of this application. Figure 2 ;

[0072] Figure 3C A schematic diagram three illustrating the principle of the data transmission method provided in this application embodiment;

[0073] Figure 4A A schematic diagram four illustrating the principle of the data transmission method provided in this application embodiment;

[0074] Figure 4B A schematic diagram five illustrating the principle of a data transmission method provided in an embodiment of this application;

[0075] Figure 5A A schematic diagram six illustrating the principle of a data transmission method provided in an embodiment of this application;

[0076] Figure 5B An interactive schematic diagram of the data transmission method provided in this application embodiment;

[0077] Figure 5CA schematic diagram seven illustrating the principle of a data transmission method provided in an embodiment of this application;

[0078] Figure 5D A flowchart illustrating a data transmission method provided in an embodiment of this application. Figure 2 ;

[0079] Figure 5E A flowchart illustrating a data transmission method provided in an embodiment of this application is shown in Figure 3.

[0080] Figure 6A A schematic flowchart of a data transmission method provided in an embodiment of this application is shown in Figure 4.

[0081] Figure 6B Eight is a schematic diagram illustrating the principle of a data transmission method provided in an embodiment of this application.

[0082] Figure 6C A schematic diagram of the data transmission method provided in the embodiments of this application. Figure 9 ;

[0083] Figure 7A A flowchart illustrating a data transmission method provided in an embodiment of this application is shown in Figure 5.

[0084] Figure 7B A schematic diagram ten illustrating the principle of a data transmission method provided in an embodiment of this application;

[0085] Figure 7C 11. A schematic diagram illustrating the principle of the data transmission method provided in this application embodiment;

[0086] Figure 8A A schematic diagram of a data transmission device provided in an embodiment of this application;

[0087] Figure 8B A schematic diagram of the structure of a data transmission device provided in the embodiments of this application. Figure 2 ;

[0088] Figure 9 This is a schematic diagram of a data transmission device provided in an embodiment of this application. Detailed Implementation

[0089] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings.

[0090] The following explanations of some terms used in the embodiments of this application are provided to facilitate understanding by those skilled in the art.

[0091] (1) Request Packet (pkt_req):

[0092] A request message is a communication packet sent by a client to a server in a computer network to request services or data. In the Transport Control Protocol (TCP) / Internet Protocol (IP) protocol stack, request messages are typically part of application layer protocols (such as HTTP, FTP, SMTP, etc.) and are used to convey instructions on what type of information or service the client wishes to receive from the server.

[0093] A request message may contain the following parts:

[0094] 1. Request line: Contains the request method (GET, POST, etc.), the path to the requested resource, and the HTTP protocol version used.

[0095] 2. Request headers: Provide additional information about the request, such as client type, accepted media type, authentication information, etc.

[0096] 3. Blank line: A single newline following the request header, used to separate the request header from any possible request body.

[0097] 4. Request body: Optional part, containing the specific data of the request, such as form data submitted in a POST request.

[0098] (2) Quality of Services (QoS):

[0099] Quality of Service (QoS) in computer networks is a set of technologies and mechanisms used to describe and guarantee the quality and priority of network data transmission. QoS aims to optimize network resource allocation to ensure that critical applications or services still receive necessary performance metrics such as bandwidth, latency, jitter, and packet loss rate even when the network is congested.

[0100] (3) Quality of Experience (QoE):

[0101] Quality of Experience (QoE) measures overall satisfaction and perceived quality when using a service or system. QoE goes beyond technical parameters or service performance metrics; it takes a subjective perspective, comprehensively considering subjective expectations, needs, emotions, cognition, and the actual experience.

[0102] It should be noted that the embodiments of this application involve operations such as data acquisition requests. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0103] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0104] The application fields of the data transmission method provided in the embodiments of this application will be briefly introduced below.

[0105] With the continuous development of technology, more and more data sending ends can receive data requests from data requesting ends, and then return corresponding multimedia data to the data requesting end based on the received data requests. Through data transmission between the data requesting end and the data sending end, audio and video playback can be achieved on the data requesting end based on the received multimedia data.

[0106] For example, in video-on-demand service scenarios such as Content Delivery Network (CDN) providers and playback applications, in order to save traffic costs and accommodate the user's swiping behavior when switching between multimedia resources, please refer to... Figure 1A A video resource can be divided into multiple video segments, including video segment A, video segment B, ... and video segment N. Each video segment has a certain length. When playing a video segment in the video resource, such as video segment A, when video segment A has played to 80% of its length, the data requesting end can obtain the next video segment to be played from the default data sending end, that is, obtain video segment B.

[0107] In related technologies, since videos are typically divided into multiple video segments, and the multimedia data of each video segment is distributed and stored in multiple data sending terminals, the data transmission method is usually as follows: the data requesting terminal sends a data request to the default data sending terminal to obtain the multimedia data of the video segment that the data requesting terminal is about to play; after receiving the data request from the data requesting terminal, if the default data sending terminal determines that it does not store the multimedia data, it instructs the data requesting terminal to obtain the multimedia data from other data sending terminals; the data requesting terminal resends the data request to other data sending terminals to obtain the multimedia data from them.

[0108] Please refer to Figure 1B The system includes data sender 1, data sender 2, data sender 3, and data sender 4, as well as a client. In step S101, the client sends data request 1 to data sender 1 to obtain video segment 1. Data sender 1 receives data request 1 from the client. Data sender 1 determines whether video segment 1 is stored. If it is, step S102 is executed; otherwise, steps S103 to S106 are executed.

[0109] S102, when data sending end 1 determines that video segment 1 is stored, it returns video segment 1 to the client.

[0110] S103, if data sender 1 determines that video segment 1 is not stored, it determines that among data senders 2, 3, and 4, the data sender storing video segment 1 is data sender 2. S104, data sender 1 returns a redirection feedback to the client, instructing the client to re-obtain video segment 1 from data sender 2. The client receives the redirection feedback sent by data sender 1. S105, the client sends data request 2 to data sender 2 to obtain video segment 1. Data sender 2 receives data request 1 sent by the client. S106, if data sender 2 determines that video segment 1 is stored, it returns video segment 1 to the client.

[0111] Similarly, the client continues to repeat the above process, obtaining video segment 2 from data sender 3, obtaining video segment 3 from data sender 4, and so on, which will not be described in detail here.

[0112] However, in most cases, multimedia data needs to be retrieved from other data senders each time, resulting in significant interaction time between the data sender and the data requester. Therefore, with a large number of data senders, this greatly reduces data request efficiency, thereby reducing multimedia data retrieval efficiency and ultimately affecting video playback quality.

[0113] Please refer to formula (1) to obtain the time spent on video segment i, which includes two parts: the interaction time spent, time_redrt, and the loading time spent, time_target.

[0114] time_len_i=time_redrt+time_target(1)

[0115] The interaction time (time_redrt) is the time spent in the interaction process between the data sender and the data requester, which usually requires one round-trip time (RTT). The loading time (time_target) is the time spent by the data requester when loading the corresponding multimedia data from the data sender that stores video segment i (usually requiring one or more RTTs).

[0116] Therefore, during the aforementioned process of retrieving multimedia data from other data senders, the interaction time (time_redrt) will increase. However, in related technologies, improvements to the interaction time (time_redrt) and loading time (time_target) can be achieved through two main approaches: one is to centrally store the multimedia data of each video segment in the data sender cluster, which reduces the utilization of storage resources and requires significant equipment costs to improve the storage performance of the data sender's storage resources; the other is to improve the traffic transmission performance during multimedia data loading, such as optimizing the transmission protocol or congestion control algorithms. However, these optimization methods have limitations, limited room for improvement, and cannot achieve significant optimization effects.

[0117] Meanwhile, since both the interaction time (time_redrt) and loading time (time_target) are related to RTT, and the minimum RTT is determined by the actual network environment and state, there is little room for significant optimization from a transmission control perspective. The number of RTTs heavily depends on the transmission strategy of the data sender and the real-time network state. When the transmission strategy is adapted to the current network environment, the required number of RTTs is less. When the transmission strategy is more aggressive than the current network environment, packet loss will increase, and the required number of RTTs will be more. As a result, it is difficult for the data sender to obtain the network environment of each data requester, leading to a certain degree of blindness in the optimization of the number of RTTs.

[0118] It is evident that the data transmission process under the relevant technologies still suffers from low transmission efficiency.

[0119] To address the issue of low transmission efficiency during data transmission, this application proposes a data transmission method. This method is applied to a first data sending end. In this method, a data request is received from a data requesting end. The data request is for acquiring a target multimedia segment, which is to be played after the multimedia segment currently being played at the data requesting end. When it is determined that the data request carries a redirection identifier, a second data sending end set storing at least one multimedia segment to be played is selected from a preset data sending end cluster. The at least one multimedia segment to be played is to be played sequentially after the target multimedia segment. The target multimedia segment and redirection information instructing the second data sending end set are sent to the data requesting end, causing the data requesting end to play the target multimedia segment. Based on the redirection information, the corresponding multimedia segments to be played are acquired from and played from the second data sending end set.

[0120] In this embodiment, when a data request is received from a data requesting end to obtain a target multimedia segment to be played after the currently playing multimedia segment, the system checks whether the data request carries a redirection identifier. If it does, it indicates that the data requesting end needs to obtain the storage location of at least one multimedia segment to be played after the target multimedia segment in advance. Then, the first data sending end selects a second data sending end set from the data sending end cluster that stores at least one multimedia segment to be played after the target multimedia segment. While sending the target multimedia segment to the data requesting end, the first data sending end also sends redirection information indicating the second data sending end set. Thus, for at least one multimedia segment to be played, the data requesting end no longer needs to obtain it from the first data sending end and then re-obtain it from other data sending ends. Instead, it can directly obtain the corresponding multimedia segment to be played from the second data sending end set, avoiding unnecessary interaction between the data requesting end and the data sending end, improving data transmission efficiency, and thus ensuring smooth video playback.

[0121] Furthermore, by including a redirection flag in the data request, the first data sender is instructed to filter a set of second data senders that store at least one multimedia segment to be played, and return it along with the target multimedia segment. This avoids additional signaling interactions between the data requester and the first data sender, thereby improving data transmission efficiency without consuming additional transmission resources.

[0122] Furthermore, redirection information will only be returned when the data requester includes a redirection flag in the data request. This avoids unnecessary resource consumption caused by repeatedly returning redirection information and improves the flexibility of data transmission.

[0123] The application scenarios of the data transmission method provided in this application are described below.

[0124] Please refer to Figure 1C This is a schematic diagram illustrating an application scenario of the data transmission method provided in this application. The application scenario includes a server 101 and a client 102. The server 101 includes a first data sender and a data sender cluster, or includes a data sender cluster containing the first data sender. Different data senders in the data sender cluster may store different multimedia segments, such as different video segments, or they may not store any multimedia segments.

[0125] The server 101 and the client 102 can communicate with each other. The communication method can be wired communication technology, such as communicating through a network cable or serial cable; or wireless communication technology, such as communicating through Bluetooth or wireless fidelity (WIFI). There are no restrictions on the specific method.

[0126] Client 102 generally refers to devices that can send data requests, such as terminal devices, third-party applications accessible by terminal devices, or web pages accessible by terminal devices. Server 101 generally refers to devices that can send multimedia clips or feedback information, such as terminal devices or servers.

[0127] Terminal devices include, but are not limited to, mobile phones, computers, smart medical devices, smart home appliances, vehicle terminals, or aircraft. Servers include, but are not limited to, cloud servers, local servers, or associated third-party servers. These can be independent physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. Both client 102 and server 101 can use cloud computing to reduce the consumption of local computing resources; similarly, they can also use cloud storage to reduce the consumption of local storage resources.

[0128] As one embodiment, the server 101 and the client 102 can be the same device, or they can be different devices, or they can be different devices with some modules shared, etc., and there are no specific restrictions.

[0129] The following is based on Figure 1C Based on the first data sending end, the data transmission method provided in the embodiments of this application will be described in detail. Please refer to... Figure 2 This is a flowchart illustrating a data transmission method provided in an embodiment of this application.

[0130] S201, Receive data request sent by the data requesting end.

[0131] The requesting end sends a data request to the first sending end, and the first sending end receives the data request. The data request can be sent in the form of a request message, etc., without any specific restrictions.

[0132] The data request is used to retrieve the target multimedia segment, which is then played after the currently playing multimedia segment on the data requesting end.

[0133] The data requesting end can play a segment of a multimedia resource based on a segment location within that resource. For example, please refer to [reference needed]. Figure 3A If a video has a playback duration of 50 minutes, then the corresponding multimedia resource can be divided into multiple segments of 10 minutes each. These segments are: segment A (0-10 minutes), segment B (20-30 minutes), segment C (30-40 minutes), and segment D (40-50 minutes). Each segment further divides the video into four multimedia segments: multimedia segment A, multimedia segment B, multimedia segment C, and multimedia segment D. Therefore, the multimedia resource can be described as containing the multimedia segments corresponding to each of these four segment positions; in other words, the multimedia resource contains these four multimedia segments.

[0134] For example, to request data in message form, please refer to... Figure 3B In (1), the data request may include the resource identifier of the multimedia resource where the target multimedia segment is located, denoted as video_id. The resource identifier is used to uniquely identify the multimedia resource. It may also include the segment identifier of the target multimedia segment in the multimedia resource, denoted as chunk_id. The segment resource is used to uniquely identify the target multimedia segment in the multimedia resource. It may also include the segment position of the target multimedia segment, denoted as chunk_range. The segment position is used to identify the start and end positions of the target multimedia segment in the multimedia resource. If each multimedia segment is of a preset length, the data request may not include the segment position. It may only use the segment identifier to identify each multimedia segment, etc. There are no specific restrictions. Please refer to formula (2) for an example where the data request includes the resource identifier video_id, the segment identifier chunk_id, and the segment position chunk_range.

[0135] pkt_req={video_id, chunk_id, chunk_range,...}(2)

[0136] Please refer to Figure 3BIn formula (2), the data request can also carry a redirection flag. The data requesting end can determine whether to add a redirection flag to the data request based on the pre-configured redirection configuration information, or it can add a redirection flag to the data request when a preset threshold is reached based on the statistical frequency of stuttering when playing various multimedia resources recently or the first frame latency when playing various multimedia resources recently. Please refer to formula (3), the data request can also carry the redirection flag open_redrt.

[0137] pkt_req={video_id, chunk_id, chunk_range, open_redrt...} (3)

[0138] For example, `open_redrt=1` indicates that a second data sending end set containing at least one multimedia segment to be played is obtained. The at least one multimedia segment to be played is used to play sequentially after the target multimedia segment, and the at least one multimedia segment to be played belongs to the same multimedia resource as the target multimedia segment. `open_redrt=2` indicates that a second data sending end set containing at least one multimedia segment to be played is obtained. The at least one multimedia segment to be played is used to play sequentially after the target multimedia segment, and the at least one multimedia segment to be played contains a multimedia segment to be played that belongs to a different multimedia resource than the target multimedia segment.

[0139] After receiving the data request, the first data sender can determine whether the data request carries a redirection flag. If it is determined that the data request carries a redirection flag, steps S202 to S203 are executed; if it is determined that the data request does not carry a redirection flag, the target multimedia segment is returned to the data requester so that the data requester can receive and play the target multimedia segment.

[0140] As one embodiment, when it is determined that the data request does not carry a redirection identifier, the first data sender does not need to return redirection information to the data requester. This may be because the redirection function is not currently enabled, or it may be because the target multimedia segment has been redirected previously. In this case, the first data sender may or may not store the target multimedia segment. Therefore, it is possible to further determine whether the target multimedia segment is stored, thus avoiding the situation where the data request does not carry a redirection identifier due to the current lack of a redirection function being enabled, but is mistakenly judged as a situation where it has been redirected previously. This avoids the situation where it is mistakenly assumed that the first data sender must store the target multimedia segment, leading to the failure of segment acquisition. Therefore, further judgment can improve the accuracy of acquisition.

[0141] Please refer to Figure 3CWhen the data request does not carry a redirection identifier and the first data sender stores the target multimedia segment, the target multimedia segment is sent to the data requester. Please refer to formula (4) and send the target multimedia segment in the form of a message pkt_response. The message may only include the target multimedia segment chunk_data.

[0142] pkt_response={chunk_data}(4)

[0143] If the data request does not carry a redirection identifier and the first data sender does not store the target multimedia segment, the fourth data sender storing the target multimedia segment is selected from the data sender cluster, and a request response instructing the data requester to obtain and play the target multimedia segment from the fourth data sender. Refer to formula (5) to send the request response in the form of a message pkt_response. The request response may contain only the sender identifier S_target of the fourth data sender, which is used to uniquely identify the fourth data sender in the data sender cluster. For example, the sender identifier can be the IP address or port number of the data sender, etc., without specific restrictions.

[0144] pkt_response={S_target}(5)

[0145] S202, when it is determined that the data request carries a redirection identifier, a second data sending end set containing at least one multimedia segment to be played is selected from the preset data sending end cluster.

[0146] The data request carries a redirection identifier, indicating that the redirection function was started from the target multimedia segment, or that the redirection function was started before the target multimedia segment, etc. The specific determination depends on the content of the redirection identifier. In this embodiment, the redirection function is started from the target multimedia segment as an example.

[0147] When a redirection flag is found in the data request, a second set of data senders storing at least one multimedia segment to be played is selected from a pre-defined data sender cluster. This at least one multimedia segment to be played is used to play sequentially after the target multimedia segment. The redirection flag indicates that at least one multimedia segment to be played sequentially after the target multimedia segment is being redirected. By selecting the second set of data senders storing at least one multimedia segment to be played and returning it as redirection information to the data requester, the data requester can directly request the corresponding multimedia segment from the second data sender that stores it when playing each of the at least one multimedia segment, without needing to perform any re-acquisition process. This ensures efficient data acquisition during the playback of at least one multimedia segment, thereby improving data transmission efficiency.

[0148] At least one multimedia segment to be played can be determined by a preset number of segments, for example, the data requesting end is configured to acquire a second set of 6 multimedia segments to be played each time; it can also be determined based on the playback quality of the data requesting end, for example, the better the playback quality, the fewer the multimedia segments to be played, and the worse the playback quality, the more the multimedia segments to be played; it can also be determined based on the transmission quality of the transmission channel between the data requesting end and the first data sending end, for example, the better the transmission quality, the more the multimedia segments to be played, and the worse the transmission quality, the fewer the multimedia segments to be played; it can also be determined based on the number of subsequent multimedia segments in the multimedia resource containing the target multimedia segment, for example, all multimedia segments in the multimedia resource that are played after the target multimedia segment are considered as multimedia segments to be played, etc., and there are no specific restrictions.

[0149] As one embodiment, if the data request contains the segment position of the target multimedia segment in the multimedia resource containing the target multimedia segment, i.e., the chunk_range mentioned above, or if the segment position of the target multimedia segment in the multimedia resource containing the target multimedia segment can be determined through the information in the data request, then the segment position of at least one multimedia segment to be played can be determined based on the segment position of the target multimedia segment, thereby filtering out the second data sending set based on the pre-stored storage mapping relationship of each segment position in the data sending cluster.

[0150] If the pre-stored storage mapping relationship is a storage mapping relationship of other information in the data sending cluster, such as the storage mapping relationship of fragment identifier in the data sending cluster, the storage mapping relationship of resource identifier and fragment identifier in the data sending cluster, etc., then the second data sending set can also be filtered based on other information. There are no specific restrictions. In this embodiment, the storage mapping relationship of each fragment position in the data sending cluster is used as an example for introduction.

[0151] The storage mapping relationship can be stored in a shared storage location in the data sending cluster, or it can be synchronized in each data sending end in the data sending cluster; there are no specific restrictions.

[0152] Since each multimedia segment is evenly divided, the second data sending set can be selected by using the segment positions that are related to the target multimedia segment. This eliminates the need to carry too much information in the data request or to sequentially indicate the segment identifier of each multimedia segment to be played. This can improve the efficiency of data transmission without increasing the amount of data during the data transmission process.

[0153] Based on the redirection identifier, the number of at least one multimedia segment to be played, indicating that the data requesting end has enabled the redirection function, is determined. Based on the segment position and number of the target multimedia segments, the segment position of each of the at least one multimedia segment to be played in the multimedia resource is determined. Based on the pre-stored storage mapping relationship of each segment position in the data sending end cluster, a second data sending end set storing at least one multimedia segment to be played is determined from the data sending end cluster.

[0154] The number of segments indicated by the redirection flag can take several forms; three of them will be described below as examples.

[0155] Number of segments: 1

[0156] The redirection flag indicates a specific value.

[0157] Please refer to Figure 4A In (1), the multimedia resource containing the target multimedia segment is the target video resource. If the redirection identifier indicates a specific number of segments for which the data requester indicates that the redirection function should be enabled for at least one multimedia segment to be played, for example, indicating that the redirection function should be enabled for the five multimedia segments to be played after the target multimedia segment, then the target video resource can be divided into segments according to the segment length corresponding to the segment position of the target multimedia segment, and divided into multimedia segments to be played 1 to multimedia segments to be played 5.

[0158] Number of segments two:

[0159] The redirection flag indicates that in a multimedia resource containing the target multimedia segment, all multimedia segments following the target multimedia segment are to be played.

[0160] Please refer to Figure 4A In (2), the multimedia resource containing the target multimedia segment is the target video resource. If the redirection flag indicates that all multimedia segments following the target multimedia segment in the multimedia resource containing the target multimedia segment are multimedia segments to be played, then the target video resource can be divided into segments according to the segment length corresponding to the segment position of the target multimedia segment to obtain multiple multimedia segments to be played, which are respectively denoted as multimedia segment to be played 1, multimedia segment to be played 2, ..., multimedia segment to be played N. The end position of multimedia segment to be played N is the end position of the target video resource.

[0161] Number of segments: 3

[0162] The redirection flag indicates that all multimedia segments played after the target multimedia segment are the multimedia segments to be played.

[0163] Please refer to Figure 4A In (3), the multimedia resource containing the target multimedia segment is the target video resource, and at least one multimedia resource played after the target video resource is denoted as video resource to be played 1, ..., video resource to be played M.

[0164] If the redirection flag indicates that all multimedia segments played after the target multimedia segment are to be played, then the target video resource can be divided into segments according to the segment length corresponding to the segment position of the target multimedia segment, resulting in multiple to-be-played multimedia segments, denoted as To-be-played Multimedia Segment 1, To-be-played Multimedia Segment 2, ..., To-be-played Multimedia Segment N. The end position of To-be-played Multimedia Segment N is the end position of the target video resource.

[0165] Continue to divide the video resources to be played into segments according to the above segment length, or the segment length corresponding to each video resource to be played, to obtain the corresponding set of segments to be played. According to the playback position, they are sequentially recorded as multimedia segment to be played N+1, multimedia segment to be played N+2, ... multimedia segment to be played N+X, etc.

[0166] As one embodiment, the data sending cluster may include a first data sending end; or it may not include a first data sending end. Therefore, the second data sending end may be the first data sending end; it may be any other data sending end in the data sending cluster besides the first data sending end; or it may be any data sending end other than the first data sending end.

[0167] Therefore, the data requesting end can obtain a second set of data sending ends that stores at least one multimedia segment to be played from any data sending end, avoiding situations where redirection is not possible, which could lead to abnormalities such as stuttering during multimedia segment playback, thus improving the stability of data transmission and multimedia playback.

[0168] S203, send the target multimedia segment to the data requesting end, and redirection information indicating the second data sending end set.

[0169] After selecting the second set of data senders, the target multimedia segment and redirection information instructing the second set of data senders can be sent to the data requesting end. The redirection information may include the sender identifier of each second data sender in the set, which uniquely identifies the corresponding second data sender; it may also include the correspondence between the multimedia segment to be played and the second data senders, such as the mapping between the segment position and the sender identifier; or it may include a triple consisting of the multimedia segment to be played, whether it is stored in the first data sender, and the second data sender, etc., with no specific limitation on the form.

[0170] Therefore, after receiving the target multimedia segment, the data requesting end can play the target multimedia segment. After receiving the redirection information, it can obtain and play the corresponding multimedia segment to be played from the second set of data sending ends based on the redirection information. When the multimedia segment to be played is not stored in the first data sending end, the data requesting end no longer needs to send a data request to the first data sending end to know that the multimedia segment to be played is not stored in the first data sending end, and to know the second data sending end that stores the multimedia segment to be played. This simplifies the data transmission process and improves data transmission efficiency.

[0171] As one embodiment, after selecting the second data sending end set, the storage relationship between at least one multimedia segment to be played and the second data sending end set can be used as redirection information.

[0172] Please refer to Figure 4B (1) is a schematic diagram of a redirection information with the identifier sequence formed by the identifiers of each second data sender in the second data sender set as the storage relationship. For example, the identifiers of each sender are arranged in order as S_target_1, S_target_2, ..., S_target_N. The order of each sender identifier is the playback order of at least one multimedia segment to be played.

[0173] Please refer to Figure 4B(2) is a schematic diagram of a redirection information storage relationship based on the correspondence between the multimedia segment to be played and the second data sending end. For example, the correspondence between chunk_id_2 and S_target_1, the correspondence between chunk_id_3 and S_target_2, ... the correspondence between chunk_id_N and S_target_1.

[0174] Please refer to Figure 4B (3) is a schematic diagram of a redirection information where the storage relationship is a triple consisting of the multimedia segment to be played, whether it is stored at the first data sending end, and the second data sending end. For example, {chunk_range_1, store, S_target_1}, {chunk_range_2, store, S_target_2}, ..., {chunk_range_N, store, S_target_N}. Here, chunk_range represents the segment position of the multimedia segment to be played in the multimedia resource, and S_target represents a second data sending end.

[0175] `store` indicates whether the multimedia segment to be played is stored at the first data sending end. For example, `store=1` means that the multimedia segment to be played is stored at the first data sending end, and the corresponding `S_target` will take an empty value; `store=0` means that the multimedia segment to be played is not stored at the first data sending end, but is stored at the second data sending end corresponding to `S_target`.

[0176] Before loading the target multimedia segment, it can be determined whether the first data sender has stored the target multimedia segment.

[0177] If the first data sender determines that it stores the target multimedia segment, it sends the target multimedia segment and redirection information to the data requesting end. This avoids data loading failures caused by the target multimedia segment not being stored at the first data sender, thus improving data transmission stability.

[0178] If it is determined that the first data sender does not store the target multimedia segment, a third data sender that stores the target multimedia segment is selected from the data sender cluster. A request response instructing the third data sender and redirection information instructing the second data sender set are sent to the data requesting end, so that the data requesting end can obtain and play the target multimedia segment from the third data sender, and obtain and play the corresponding multimedia segments to be played from the second data sender set based on the redirection information.

[0179] Therefore, when redirecting at least one subsequent multimedia segment to be played after the target multimedia segment, the redirection can be performed by carrying the redirection identifier when sending the first data request to obtain the target multimedia segment. It is not necessary to wait until the third data sender storing the target multimedia segment is identified and then send the data request to the third data sender to obtain the target multimedia segment before performing the redirection, which further improves the data transmission efficiency.

[0180] The following example illustrates the data transmission method provided in this application from the perspective of the first data sending end, using message transmission as an example. Please refer to [link / reference]. Figure 5A and Figure 5B The first data sending end includes a transceiver module, a pre-sensing module, a data acquisition module, and a caching module.

[0181] S51, the transceiver module receives the pkt_req message sent by the data requesting end.

[0182] The pkt_req message contains {video_id, chunk_id, open_redrt}, indicating that the data requesting end requests to obtain the target multimedia segment corresponding to chunk_id in the video resource corresponding to video_id. For example, if the first multimedia segment in the video resource corresponding to video_id is to be obtained as the target multimedia segment, then chunk_id = 1.

[0183] The pkt_req message also includes an open_redrt field. open_redrt=1 indicates that the data request carries a redirection flag, meaning that the data requesting end supports early detection of redirection information for subsequent shards. When open_redrt is any other value, such as 0, it means that the data request does not carry a redirection flag, meaning that the data requesting end does not support early detection of redirection information for subsequent shards.

[0184] S52, the transceiver module generates pkt_redirt and pkt_obtain messages based on the message data extracted from the pkt_req message.

[0185] The pkt_redirt message is used to instruct the pre-sensing module to filter the second set of data senders, and the pkt_obtain message is used to instruct the data acquisition module to find the target multimedia segment.

[0186] By extracting the message data from the pkt_req message, the video resource corresponding to video_id and the target multimedia segment corresponding to chunk_id can be determined. Thus, the segment position chunk_range of the target multimedia segment corresponding to chunk_id can be determined, which is the data range of the segment resource corresponding to the target multimedia segment in the video resource. The pkt_req message sent by the data requesting end can also contain the segment position chunk_range. Therefore, the segment position chunk_range can also be extracted from the pkt_req message sent by the data requesting end, etc., without any specific restrictions.

[0187] Please refer to Figure 5C For example, if the byte range of a video resource is 0 to 100, and chunk_range = {a, b}, then the segment resource corresponding to the target multimedia segment is all the data in the video resource from the a-th byte to the b-th byte. Therefore, the range of the first multimedia segment to be played (chunk_next_1) is {b, 2*ba}; the range of the second multimedia segment to be played (chunk_next_2) is {2*ba, 3*b-2*a}, and so on, not listed here.

[0188] For pkt_redirt messages, please refer to formula (6); for pkt_obtain messages, please refer to formula (7).

[0189] pkt_redirt={video_id, chunk_id, chunk_range, open_redrt}(6)

[0190] pkt_obtain={video_id, chunk_range}(7)

[0191] S53, the transceiver module sends the pkt_redirt message to the pre-sensing module and the pkt_obtain message to the data acquisition module.

[0192] The pre-sensing module receives the pkt_redirt message sent by the transceiver module and determines whether the open_redrt field in the pkt_redirt message is 1. If it is 1, it means that the storage location of subsequent multimedia segments needs to be pre-sensed; if it is not 1, it means that the storage location of subsequent multimedia segments does not need to be pre-sensed.

[0193] So, when open_redrt=1, in some cases, such as when the redirection flag indicates that each multimedia segment in the multimedia resource is redirected, and the storage location of all subsequent multimedia segments in the multimedia resource except for the first multimedia segment is known in advance, it is also possible to further determine whether chunk_id is 1, that is, whether it represents the first multimedia segment in the multimedia resource.

[0194] If chunk_id = 1, it means that the storage location of subsequent multimedia segments needs to be detected in advance; if the chunk_id field value is not 1, it means that the operation of detecting the storage location of subsequent multimedia segments in advance has already been performed, and there is no need to perform it again.

[0195] The following example illustrates the scenario where the storage locations of the subsequent N multimedia segments need to be predicted in advance. Please refer to [link / reference]. Figure 5D .

[0196] S501, determine the segment positions of the N multimedia segments to be played after the target multimedia segment in the multimedia resource.

[0197] S502, based on the obtained positions of each segment, determine the local multimedia segment stored in the cache module of the first data sending end among the N multimedia segments to be played.

[0198] S503 sets the store field to 1 for the obtained local multimedia fragment.

[0199] S504, for the N multimedia segments to be played other than the local multimedia segments, set the store field to 0, and determine the second data sending end that stores the other multimedia segments to be played based on the pre-stored storage mapping relationship.

[0200] S505 establishes corresponding triples, namely {chunk_range, store, S_target}, based on the segment positions of N multimedia segments to be played, the store field, and the sender identifier of the second data sender.

[0201] S506. Based on the established triples, generate a pkt_redirt_result message containing redirection information, please refer to formula (8).

[0202] pkt_redirt_result={video_id, {chunk_range, store, S_target},...}(8)

[0203] The process of obtaining the target multimedia segment is described below. Please refer to [link / reference]. Figure 5E .

[0204] S5001, based on the segment position of the target multimedia segment in the multimedia resource, when it is determined that the target multimedia segment is stored in the cache module of the first data sending end, the target multimedia segment chunk_data is obtained from the cache module.

[0205] S5002, based on the segment position of the target multimedia segment in the multimedia resources, if it is determined that the target multimedia segment is not stored in the cache module of the first data sending end, the third data sending end storing the target multimedia segment is determined from the data sending end cluster based on the storage mapping relationship, and the sending end identifier S_target of the third data sending end is obtained.

[0206] S5003, based on the target multimedia segment chunk_data or the sender identifier S_target of the third data sender, generate a pkt_data message, please refer to formula (9).

[0207] pkt_data={video_id, chunk_range, (chunk_data), (S_target)}(9)

[0208] In this case, either (chunk_data) or (S_target) must appear. If (chunk_data) is included, (S_target) must not be included, and if (S_target) is included, (chunk_data) must not be included.

[0209] S54, the pre-sensing module returns a pkt_redirt_result message to the transceiver module, and the data acquisition module returns a pkt_data message to the transceiver module.

[0210] S55, the transceiver module returns a pkt_response message to the data requesting end based on the pkt_data message and the pkt_redirt_result message.

[0211] The transceiver module generates a pkt_response message based on the pkt_data and pkt_redirt_result messages. Please refer to formula (10).

[0212] pkt_response={type, chunk_data, S_target, pkt_redirt_result}(10)

[0213] Where, type represents the content type carried in the pkt_response message. In formula (10), chunk_data, S_target, and pkt_redirt_result are inserted into the pkt_response message according to the data of type. type can include the following cases:

[0214] type=1: indicates that the pkt_response message only carries the target multimedia fragment chunk_data requested by the data requesting end.

[0215] type=2: indicates that the pkt_response message only carries the sender identifier S_target of the third data sender that stores the target multimedia fragment.

[0216] type=3: This indicates that the pkt_response message carries the target multimedia segment chunk_data and the redirection information pkt_redirt_result, which indicates the second data sender set containing N multimedia segments to be played.

[0217] type=4: This indicates that the message carries the sender identifier S_target of the third data sender that stores the target multimedia segment, and the redirection information pkt_redirt_result of the second data sender set that stores N multimedia segments to be played.

[0218] The following continues based on Figure 1C Based on the data request end, the data transmission method provided in the embodiments of this application will be described in detail. Please refer to... Figure 6A This is a flowchart illustrating a data transmission method provided in an embodiment of this application.

[0219] S601 generates a data request based on preset redirection configuration information and the currently playing multimedia segment.

[0220] Data requests are used to retrieve the target multimedia segment to be played after the currently playing multimedia segment, as detailed in the previous section.

[0221] Redirect configuration information indicates whether to include a redirect identifier in the data request. There are various types of redirect configuration information. The following are three examples, but it can also include more than three types of information, and there are no restrictions on the specific content.

[0222] For example, redirection configuration information can indicate whether a redirection identifier is carried in the data request by indicating at least one redirected multimedia segment. For instance, if at least one multimedia segment to be played after the target multimedia segment obtained by the data request is included in at least one redirected multimedia segment, it indicates that a redirection identifier is carried in the data request; otherwise, it indicates that a redirection identifier is not carried in the data request.

[0223] For example, redirection configuration information can indicate whether to include a redirection flag in the data request by indicating the number of segments of at least one redirected multimedia segment. For instance, if the number of segments of at least one multimedia segment to be played after the target multimedia segment obtained in the data request is not greater than the number of segments of at least one redirected multimedia segment, it indicates that a redirection flag is included in the data request; otherwise, it indicates that a redirection flag is not included in the data request.

[0224] For example, redirection configuration information can also indicate whether to include a redirection flag in the data request by indicating whether the redirection function is enabled. For instance, if the redirection function is enabled, the data request will include a redirection flag if the target multimedia segment is the first multimedia segment in a multimedia resource; otherwise, it will not include a redirection flag in the data request.

[0225] The following example uses redirection configuration information to illustrate the process of generating a data request. Please refer to [link / reference]. Figure 6B .

[0226] Obtain preset redirection configuration information, which includes: switch information indicating whether the redirection function is enabled, and range information of at least one redirected multimedia segment indicating that the redirection function is enabled.

[0227] When the switch information indicates that the redirection function is enabled, a data request carrying a redirection identifier is generated based on the range information and the currently playing multimedia segment. When the switch information indicates that the redirection function is not enabled, a data request without a redirection identifier is generated based on the currently playing multimedia segment.

[0228] By setting a switch to enable or disable redirection, when the switch indicates redirection is disabled, the process of determining whether to carry a redirection flag based on range information and the currently playing multimedia segment can be omitted, improving data transmission efficiency. Only when the switch indicates redirection is enabled will the process of determining whether to carry a redirection flag based on range information be implemented, forming a two-layer verification process that further improves data transmission accuracy. Delegating the redirection decision to the data requesting end for automated processing avoids the problem of low data transmission efficiency caused by the data sending end handling numerous decisions uniformly.

[0229] Redirection configuration information can be preset by declaring it in the configuration file. For example, by responding to configuration input operations, the redirection configuration information can be obtained. The switch information can be preset to indicate that the redirection function is enabled. Thus, when playing each multimedia resource, the redirection information of subsequent multimedia segments in the multimedia resource can be obtained at the same time as the first multimedia segment. This enables each multimedia resource to achieve efficient data transmission and achieve a smooth playback experience.

[0230] For example, based on statistical analysis of multimedia playback quality (such as QoS and / or QoE) at the data request end, if the quality falls below a preset threshold, or if there are frequent playback stutters or high first-frame latency, the configuration switch information indicates that the redirection function is enabled. Therefore, when the next multimedia segment is retrieved, the redirection information for subsequent multimedia segments in the corresponding multimedia resource can be obtained simultaneously, enabling efficient data transmission of the current multimedia resource and achieving a smooth playback experience.

[0231] As one embodiment, when generating a data request carrying a redirection identifier based on range information and the currently playing multimedia segment, the data request can be generated first based on the currently playing multimedia segment. Then, based on the range information, if it is determined that at least one redirected multimedia segment will be played sequentially after the target multimedia segment, it indicates that at least one subsequent multimedia segment starting from the target multimedia segment is a multimedia segment that requires redirection, rather than a multimedia segment that has already undergone redirection but has not yet been played. Therefore, a redirection identifier can be added to the data request to obtain a data request carrying the redirection identifier.

[0232] By determining whether the target multimedia segment is the start of at least one multimedia segment requiring redirection, the requesting end can accurately add a redirection flag indicating the need to retrieve data from the second data sender. This allows the redirection flag to indicate the need for the second data sender in the most concise form, reducing the amount of data carried in the data request and thus ensuring data transmission efficiency to some extent. Simultaneously, since the first data sender does not need to determine whether the target multimedia segment is the start of at least one multimedia segment requiring redirection, it can focus on returning the requested data to each requesting end, ensuring the data processing efficiency of the first data sender and thus improving data transmission efficiency.

[0233] As one embodiment, when generating a redirection identifier, if at least one multimedia segment to be played after the target multimedia segment is identified and is included within at least one redirection multimedia segment represented by range information, a redirection identifier is generated based on the at least one multimedia segment to be played. This redirection identifier is then added to the data request to obtain a data request carrying the redirection identifier.

[0234] The target multimedia segment can be the first multimedia segment in a multimedia resource containing the target multimedia segment, or any multimedia segment within it. Therefore, the multimedia segments playing after the target multimedia segment, or those included in a multimedia resource playing after the target multimedia segment, may be fewer than or more than the at least one redirected multimedia segment indicated by the range information. Thus, it can be further determined whether at least one multimedia segment to be played is included within the at least one redirected multimedia segment represented by the range information. If it is included, it indicates that at least one multimedia segment to be played after the target multimedia segment can undergo a redirection operation, and a redirection identifier can be generated. If there are multimedia segments to be played that are not included, it indicates that there are multimedia segments among the at least one multimedia segment to be played that cannot undergo a redirection operation. In this case, a redirection identifier can be generated only based on the multimedia segments to be played that can undergo a redirection operation, and this redirection identifier can be added to the data request to obtain a data request carrying the redirection identifier.

[0235] For example, if all five multimedia segments to be played after the target multimedia segment are within at least one redirected multimedia segment represented by the range information, a redirection identifier is generated based on these five multimedia segments to be played; if the first four multimedia segments to be played are within at least one redirected multimedia segment represented by the range information, a redirection identifier is generated based on the first four multimedia segments to be played.

[0236] By determining whether at least one multimedia segment to be played is included within at least one redirected multimedia segment represented by the range information, redirection identifiers can be generated more accurately, avoiding the generation of redirection identifiers for unnecessary multimedia segments and improving the accuracy of data transmission.

[0237] Please refer to formula (11), which is a redirection identifier for message format.

[0238] pkt_ctl={open_redrt, scope, video_id}(11)

[0239] Here, `video_id` represents the multimedia resource containing the target multimedia segment. When `open_redrt=1`, it indicates that the switch information in the redirection configuration information of the data requester indicates that the redirection function is enabled, that is, the redirection information of subsequent segments is detected in advance; otherwise, the switch information indicates that the redirection function is not enabled.

[0240] When open_redrt=1, scope is valid. Scope represents the scope information mentioned above. For example, when scope=1, it means the subsequent multimedia segments in the multimedia resource containing the target multimedia segment, as well as the multimedia segments contained in each multimedia resource played after this multimedia resource; when scope=2, it means the subsequent multimedia segments in the multimedia resource containing the target multimedia segment.

[0241] S602, send a data request to the first data sender.

[0242] A data request is sent to the first data sender. If the first data sender determines that the data request carries a redirection identifier, it selects a second data sender set from a preset data sender cluster that stores at least one multimedia segment to be played, and returns the target multimedia segment, along with redirection information indicating the second data sender set. The at least one multimedia segment to be played is used to play sequentially after the target multimedia segment; details can be found in the preceding description and will not be repeated here.

[0243] As one embodiment, if the first data sender determines that the target multimedia segment is not stored, it will not return the target multimedia segment. Instead, it will select the data sender in the data sender cluster that has stored the target multimedia segment and return a request response instructing the third data sender. For details, please refer to the previous description; it will not be repeated here. Then, the data requesting end receives the request response instructing the third data sender and the redirection information.

[0244] Based on the request and response, the data requesting end retrieves and plays the target multimedia segment from the third data sending end. When a multimedia segment to be played needs to be played, it retrieves and plays the corresponding multimedia segment from the second set of data sending ends based on redirection information.

[0245] The data requester can send a data request carrying a redirection identifier to any data sender in the data sender cluster, such as the first data sender, instead of having to send the redirection identifier to the third data sender after determining that the third data sender stores the target multimedia segment, thus further improving data transmission efficiency.

[0246] S603, receive and play the target multimedia segment, and obtain and play the corresponding multimedia segment to be played from the second data sending end set based on the received redirection information.

[0247] After the first data sender returns the target multimedia segment and redirection information, the data requester receives the target multimedia segment and redirection information returned by the first data sender. The data requester plays the target multimedia segment, and when it needs to play a multimedia segment to be played, it retrieves and plays the corresponding multimedia segment to be played from the second data sender set based on the received redirection information.

[0248] As one embodiment, after obtaining the redirection information, the storage relationship between at least one multimedia segment to be played and the second data sending end set can be saved based on the redirection information. Then, whenever it is determined that one of the at least one multimedia segments to be played is to be played, the following operations are performed:

[0249] Based on storage relationships, determine the second data sender corresponding to a multimedia segment to be played. Send a request message to the second data sender to obtain a multimedia segment to be played. Receive and play the multimedia segment to be played.

[0250] Please refer to Figure 6C By using the storage relationship, when a multimedia segment to be played is needed, the corresponding second data sending end can be obtained. After obtaining the multimedia segment to be played, the corresponding multimedia segment to be played can be deleted from the saved storage relationship, thereby consuming less memory and achieving the goal of significantly improving data transmission efficiency.

[0251] Please refer to Table 1, which is a storage relation table.

[0252] Table 1

[0253]

[0254] In this process, once a multimedia segment is loaded into the storage relationship, the corresponding entry is deleted. After determining, based on the redirection configuration information, that an update of the resource identifier of a pre-aware multimedia resource or the segment identifier of a multimedia segment is needed, entries in the storage relationship that are not within the updated scope are deleted. When the loading of an entry in the storage relationship triggers a timeout, the corresponding entry can be deleted. The timeout can be historically preset, for example, a timeout of 3 minutes; or it can be dynamically adjusted based on transmission or playback quality, such as a shorter timeout for higher transmission quality and a longer timeout for lower transmission quality; a longer timeout for higher playback quality and a shorter timeout for lower playback quality, etc., with no specific restrictions.

[0255] The following example illustrates the data transmission method provided in this application from the perspective of the data requesting end, using message transmission as an example. Please refer to [link / reference needed]. Figure 7A and Figure 7B The data request end includes a control module, a transceiver module, a cache module, and an audio / video player.

[0256] S71, the control module sends a pkt_ctl message to the transceiver module.

[0257] The transceiver module receives pkt_ctl messages sent by the control module. For example, it may declare in the configuration file whether to enable the pre-detection redirection function, or set open_redrt to 1 or other values ​​based on information such as stuttering during video-on-demand playback. When open_redrt = 1, it indicates that the data requesting end supports pre-detection of redirection information for subsequent segments; otherwise, it does not support it.

[0258] When open_redrt is set to 1, the control module further sets scope to 1, 2 or other values ​​according to the redirection configuration information. When scope=1, it means that the redirection information of all subsequent multimedia segments of the video is detected in advance; when scope=2, only the subsequent multimedia segments of the currently playing multimedia resource video_id are detected for redirection information, etc.

[0259] For example, the pkt_ctl message would be pkt_ctl = {open_redrt, scope, video_id}.

[0260] S72, the transceiver module generates a pkt_req message based on the message data extracted from the pkt_ctl message.

[0261] The message data extracted from the pkt_ctl message may include open_redrt and scope, etc. The transceiver module can determine the resource identifier video_id of the currently playing multimedia resource, the segment identifier chunk_id of the currently playing multimedia segment, and the segment position chunk_range of the currently playing multimedia segment in the currently playing multimedia resource.

[0262] The transceiver module further determines whether the chunk_id of the currently playing multimedia segment is within the scope represented by the scope. If it is within the scope, the pkt_req message is generated according to the above formula (3); otherwise, the pkt_req message is generated according to the above formula (2).

[0263] S73, the transceiver module sends a pkt_req message to the first data sender.

[0264] The first data sending end receives the pkt_req message sent by the transceiver module, as detailed in the previous text.

[0265] S74, Receive the pkt_response message returned by the first data sender.

[0266] The pkt_response message can refer to the above formula (10). If type = 1 or type = 3, then extract the target multimedia segment chunk_data and pass it to the audio / video player for playback; if type = 2 or type = 4, then extract the sender identifier S_target of the third or fourth data sender and send a data request to obtain the target multimedia segment to the third or fourth data sender indicated by the sender identifier S_target; if type = 3 or type = 4, then extract the video_id, chunk_range, store and S_target information in pkt_redirt_result and make the following judgments for each triple {chunk_range, tore, S_target}:

[0267] If the `store` parameter of the triplet is not equal to 1, then the corresponding `video_id`, `chunk_range`, and `S_target` are sent to its own caching module and stored in the storage relationship table; if the `store` parameter of the triplet is equal to 1, then the above caching operation is not performed. Specifically, when `store = 1`, it means that the first data sender has locally stored the corresponding multimedia segment to be played; when `store = 0`, it means that the first data sender has not locally stored the corresponding multimedia segment to be played.

[0268] S75, when playing a multimedia segment to be played, the transceiver module sends a pkt_query message to the cache module. Please refer to formula (12). The cache module receives the pkt_query message and obtains the corresponding storage relationship.

[0269] pkt_query={video_id, chunk_range}(12)

[0270] S76, the caching module determines, based on the message data extracted from the pkt_query message, whether there is a sender identifier S_target_i corresponding to video_id and chunk_range in the storage relationship table, and returns S_target_i to the transceiver module; otherwise, it returns an empty value.

[0271] S77, when the transceiver module determines that S_target_i is returned, it generates a pkt_request message and sends the pkt_request message to the second data sender corresponding to S_target_i to obtain the corresponding multimedia segment to be played; when it determines that an empty value is returned, it generates a pkt_request message and sends the pkt_request message to the first data sender to obtain the corresponding multimedia segment to be played.

[0272] Please refer to Figure 7C This refers to the data transmission process between the data requesting end and the data sending end cluster.

[0273] The data requesting end determines, based on the redirection configuration information, whether to add a redirection flag to the data request for retrieving the target multimedia segment. If it determines not to add a redirection flag, a data request without the redirection flag is generated; if it determines to add a redirection flag, a data request with the redirection flag is generated. (Internet)

[0274] The requesting end sends a data request to the first sending end, which receives the data request. The first sending end determines whether the target multimedia segment is stored. If the target multimedia segment is stored, the first sending end sends the target multimedia segment to the requesting end and loads the target multimedia segment into the requesting end.

[0275] If it is determined that the target multimedia segment is not stored, a third data sender that stores the target multimedia segment is identified from the data sender cluster based on the pre-stored storage mapping relationship. The first data sender returns a request feedback to the data requester, which in turn instructs the third data sender. The data requester then retrieves the target multimedia segment from the third data sender to play it.

[0276] When the first data sender determines that a redirection flag has been added to the data request, it determines, based on the pre-stored storage mapping relationship, a second data sender set that stores at least one multimedia segment to be played from the data sender cluster.

[0277] The first data sender returns redirection information to the data requester, instructing the second data sender set to redirect. The data requester receives the redirection information from the first data sender and saves it as a storage relationship. When playing a multimedia segment to be played, the data requester retrieves the multimedia segment from the second data sender based on the saved storage relationship, and then plays the multimedia segment.

[0278] In this embodiment, the problem of high loading time and poor service experience caused by redirection when the data requester requests subsequent video segments is optimized. By coordinating the data requester and the first data sender, the data requester can obtain the redirection information of subsequent segments when loading the target multimedia segment of the current video. This reduces the time increase caused by redirection during the loading of subsequent video segments, which is beneficial to optimizing the QoE indicators such as stuttering of the data requester and enhancing the competitiveness of content delivery network (CDN) providers.

[0279] Based on the same inventive concept, embodiments of this application provide a data transmission device capable of realizing the functions corresponding to the aforementioned data transmission method. Please refer to... Figure 8A The device includes a transceiver module 81 and a processing module 82, wherein:

[0280] Transceiver module 81: Used to receive data requests sent by the data requesting end; wherein, the data request is used to obtain the target multimedia segment; the target multimedia segment is used to play after the multimedia segment currently being played on the data requesting end;

[0281] Processing module 82: When a redirection identifier is found in a data request, it is used to filter out a second data sending end set from a preset data sending end cluster that stores at least one multimedia segment to be played; wherein, at least one multimedia segment to be played is used to be played sequentially after the target multimedia segment;

[0282] The transceiver module 81 is also configured to: send a target multimedia segment to the data requesting end, and instruct the second data sending end set on redirection information so that the data requesting end can play the target multimedia segment, and obtain and play the corresponding multimedia segments to be played from the second data sending end set based on the redirection information.

[0283] In one possible embodiment, the data request further includes: the segment location of the target multimedia segment in a multimedia resource containing the target multimedia segment;

[0284] The processing module 82 is specifically used for:

[0285] Based on the redirection identifier, determine the number of at least one multimedia segment to be played that the data requester indicates has enabled the redirection function;

[0286] Based on the segment position and number of the target multimedia segment, determine the segment position of at least one multimedia segment to be played in the multimedia resource;

[0287] Based on the pre-stored storage mapping relationship of each segment position in the data sending cluster, a second data sending set containing at least one multimedia segment to be played is determined from the data sending cluster.

[0288] In one possible embodiment, the transceiver module 81 is specifically used for:

[0289] The storage relationship between at least one multimedia segment to be played and the second data sending end set is used as redirection information;

[0290] When it is determined that the first data sender has stored the target multimedia segment, the target multimedia segment and redirection information are sent to the data requester.

[0291] In one possible embodiment, the processing module 82 is further configured to:

[0292] If it is determined that the first data sender does not store the target multimedia segment, the third data sender that stores the target multimedia segment is selected from the data sender cluster.

[0293] Send a request response instructing the third data sender and redirection information instructing the second set of data senders to the data requesting end, so that the data requesting end can obtain and play the target multimedia segment from the third data sender and obtain and play the corresponding multimedia segment to be played from the second set of data senders based on the redirection information.

[0294] In one possible embodiment, the processing module 82 is further configured to:

[0295] When it is determined that the data request does not carry a redirection identifier and the first data sender stores the target multimedia segment, the target multimedia segment is sent to the data requester.

[0296] If the data request does not carry a redirection identifier and the first data sender does not store the target multimedia segment, the fourth data sender that stores the target multimedia segment is selected from the data sender cluster, and a request response instructing the fourth data sender is sent to the data requester so that the data requester can obtain and play the target multimedia segment from the fourth data sender.

[0297] In one possible embodiment, the data sending cluster includes a first data sending end; the second data sending end is the first data sending end, or other data sending ends in the data sending cluster besides the first data sending end.

[0298] Based on the same inventive concept, embodiments of this application provide a data transmission device capable of realizing the functions corresponding to the aforementioned data transmission method. Please refer to... Figure 8B The device includes a processing module 801 and a transceiver module 802, wherein:

[0299] Processing module 801: Used to generate a data request based on preset redirection configuration information and the currently playing multimedia segment; wherein, the redirection configuration information indicates whether to carry a redirection identifier in the data request; the data request is used to obtain the target multimedia segment to be played after the currently playing multimedia segment;

[0300] Transceiver module 802: Used to send a data request to a first data sender, so that when the first data sender determines that the data request carries a redirection identifier, it selects a second data sender set from a preset data sender cluster that stores at least one multimedia segment to be played, and returns the target multimedia segment, as well as redirection information indicating the second data sender set; wherein, at least one multimedia segment to be played is used to be played sequentially after the target multimedia segment;

[0301] The transceiver module 802 is also used to: receive and play target multimedia segments, and obtain and play corresponding multimedia segments to be played from the second data sending end set based on the received redirection information.

[0302] In one possible embodiment, the processing module 801 is specifically used for:

[0303] Obtain preset redirection configuration information; wherein, the redirection configuration information includes: switch information indicating whether the redirection function is enabled, and range information indicating at least one redirected multimedia segment that enables the redirection function;

[0304] When the switch information indicates that the redirection function is enabled, a data request carrying a redirection identifier is generated based on the range information and the currently playing multimedia segment.

[0305] When the switch information indicates that the redirection function is not enabled, a data request is generated based on the currently playing multimedia segment.

[0306] In one possible embodiment, the processing module 801 is specifically used for:

[0307] Generate a data request based on the currently playing multimedia segment;

[0308] Based on the range information, when it is determined that at least one redirected multimedia segment will be played sequentially after the target multimedia segment, a redirection identifier is added to the data request to obtain a data request carrying the redirection identifier.

[0309] In one possible embodiment, the processing module 801 is specifically used for:

[0310] When it is determined that at least one multimedia segment to be played after the target multimedia segment is included within at least one redirected multimedia segment represented by the range information, a redirection identifier is generated based on at least one multimedia segment to be played.

[0311] Add a redirection flag to the data request to obtain the data request carrying the redirection flag.

[0312] In one possible embodiment, the transceiver module 802 is specifically used for:

[0313] Based on the received redirection information, save the storage relationship between at least one multimedia segment to be played and the second data sending end set;

[0314] Whenever it is determined that one of the at least one playable multimedia segments will be played, the following operations are performed:

[0315] Based on storage relationships, determine the second data sending end corresponding to a multimedia segment to be played;

[0316] Send a request message to the second data sender so that the second data sender returns a multimedia segment to be played;

[0317] Receive and play a multimedia segment to be played.

[0318] In one possible embodiment, the transceiver module 802 is further configured to:

[0319] After sending a data request to the first data sender, the system receives a request response and redirection information instructing the third data sender; wherein the third data sender is a data sender selected from the data sender cluster that stores the target multimedia segment when the first data sender does not store the target multimedia segment.

[0320] Based on the request response, the target multimedia segment is obtained from and played from the third data sender.

[0321] Based on the redirection information, the corresponding multimedia segments to be played are obtained from the second data sending end set and played respectively.

[0322] Please refer to Figure 9 This is a computer device 900 provided in the embodiments of this application. The computer device 900 can, for example, be... Figure 1CThe client 102 or server 101 in the system. The current and historical versions of the data storage program and the application software corresponding to the data storage program can be installed on a computer device 900, which includes a processor 980 and a memory 920. In some embodiments, the computer device 900 may include a display unit 940, which includes a display panel 941 for displaying a user-interactive interface, etc.

[0323] In one possible embodiment, the display panel 941 may be configured in the form of a liquid crystal display (LCD) or an organic light-emitting diode (OLED).

[0324] The processor 980 is used to read a computer program and then execute the methods defined by the computer program. For example, the processor 980 reads a data storage program or file, thereby running the data storage program on the computer device 900 and displaying the corresponding interface on the display unit 940. The processor 980 may include one or more general-purpose processors, and may also include one or more DSPs (Digital Signal Processors) for performing related operations to implement the technical solutions provided in the embodiments of this application.

[0325] The memory 920 generally includes main memory and secondary storage. Main memory can be random access memory (RAM), read-only memory (ROM), and cache, etc. Secondary storage can be a hard disk, optical disk, USB flash drive, floppy disk, or magnetic tape drive, etc. The memory 920 is used to store computer programs and other data. The computer programs include applications corresponding to each client, and other data may include data generated after the operating system or applications are run, including system data (e.g., operating system configuration parameters) and user data. In this embodiment, the computer program is stored in the memory 920, and the processor 980 executes the computer program in the memory 920 to implement any of the methods described in the preceding figures.

[0326] The aforementioned display unit 940 is used to receive input digital information, character information, or contact touch operations / non-contact gestures, and to generate signal inputs related to user settings and function control of the computer device 900. Specifically, in this embodiment, the display unit 940 may include a display panel 941. The display panel 941, for example, is a touch screen, which can collect touch operations performed by the user on or near it (such as operations performed by the user using a finger, stylus, or any suitable object or accessory on or on the display panel 941), and drive corresponding connection devices according to a pre-set program.

[0327] In one possible embodiment, the display panel 941 may include two parts: a touch detection device and a touch controller. The touch detection device detects the player's touch position and the signal generated by the touch operation, and transmits the signal to the touch controller. The touch controller receives touch information from the touch detection device, converts it into touch point coordinates, and sends it to the processor 980. It can also receive and execute commands from the processor 980.

[0328] The display panel 941 can be implemented using various types such as resistive, capacitive, infrared, and surface acoustic wave. In addition to the display unit 940, in some embodiments, the computer device 900 may also include an input unit 930. The input unit 930 may include an image input device 931 and other input devices 932, wherein the other input devices may include, but are not limited to, one or more of the following: a physical keyboard, function keys (such as volume control buttons, power buttons, etc.), a trackball, a mouse, and a joystick.

[0329] In addition to the above, the computer device 900 may also include a power supply 990 for powering other modules, an audio circuit 960, a near-field communication module 970, and an RF circuit 910. The computer device 900 may also include one or more sensors 950, such as an accelerometer, a light sensor, and a pressure sensor. The audio circuit 960 specifically includes a speaker 961 and a microphone 962, for example, the computer device 900 can use the microphone 962 to collect the user's voice and perform corresponding operations.

[0330] As one embodiment, the number of processors 980 can be one or more, and the processors 980 and the memory 920 can be coupled together or relatively independent.

[0331] As one example, Figure 9 The processor 980 in the middle can be used to implement, for example Figure 8A The transceiver module 81 and processing module 82 in the middle can also be used to implement, for example Figure 8B The functions of the processing module 801 and the transceiver module 802.

[0332] As one example, Figure 9 The processor 980 in the text can be used to implement the functions of the server or terminal devices discussed above.

[0333] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by a computer program. The aforementioned computer program can be stored in a computer-readable storage medium. When the computer program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0334] Alternatively, if the integrated units of this invention are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this invention, or the parts that contribute to the prior art, can be embodied in the form of software products, for example, through computer program products. These computer program products are stored in a storage medium and include computer programs used to cause a computer device to execute all or part of the methods described in the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROM, RAM, magnetic disks, or optical disks.

[0335] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A data transmission method, characterized in that, Applied to the first data sending end, including: The system receives a data request sent by a data requesting end; wherein the data request is used to obtain a target multimedia segment; the target multimedia segment is used to be played after the multimedia segment currently being played by the data requesting end; When it is determined that the data request carries a redirection identifier, a second data sending end set containing at least one multimedia segment to be played is selected from a preset data sending end cluster; wherein, the at least one multimedia segment to be played is used to play sequentially after the target multimedia segment; The target multimedia segment is sent to the data requesting end, along with redirection information instructing the second data sending end set, so that the data requesting end plays the target multimedia segment, and obtains and plays the corresponding multimedia segments to be played from the second data sending end set based on the redirection information.

2. The method according to claim 1, characterized in that, The data request also includes: the segment position of the target multimedia segment in the multimedia resource containing the target multimedia segment; The step of selecting a second set of data transmitters from a preset data transmitter cluster, which stores at least one multimedia segment to be played, includes: Based on the redirection identifier, determine the number of at least one multimedia segment to be played that the data requesting end has indicated to enable the redirection function; Based on the segment position of the target multimedia segment and the number of segments, the segment position of each of the at least one multimedia segment to be played in the multimedia resource is determined respectively; Based on the storage mapping relationship of each pre-stored segment position in the data sending terminal cluster, a second data sending terminal set storing the at least one multimedia segment to be played is determined from the data sending terminal cluster.

3. The method according to claim 1, characterized in that, The step of sending the target multimedia segment to the data requesting end and instructing the redirection information of the second data sending end set includes: The storage relationship between the at least one multimedia segment to be played and the second data sending end set is used as redirection information; When it is determined that the first data sending end stores the target multimedia segment, the target multimedia segment and the redirection information are sent to the data requesting end.

4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: When it is determined that the first data sending end does not store the target multimedia segment, a third data sending end that stores the target multimedia segment is selected from the data sending end cluster; Send a request response instructing the third data sender to the data requesting end, and redirection information instructing the second set of data senders, so that the data requesting end can obtain and play the target multimedia segment from the third data sender, and obtain and play the corresponding multimedia segments to be played from the second set of data senders based on the redirection information.

5. The method according to any one of claims 1 to 3, characterized in that, The method further includes: When it is determined that the data request does not carry a redirection identifier and the first data sending end stores the target multimedia segment, the target multimedia segment is sent to the data requesting end. When it is determined that the data request does not carry a redirection identifier and the first data sender does not store the target multimedia segment, a fourth data sender that stores the target multimedia segment is selected from the data sender cluster, and a request response instructing the fourth data sender is sent to the data requesting end so that the data requesting end can obtain and play the target multimedia segment from the fourth data sender.

6. The method according to any one of claims 1 to 3, characterized in that, The data sending terminal cluster includes the first data sending terminal; the second data sending terminal is the first data sending terminal, or other data sending terminals in the data sending terminal cluster besides the first data sending terminal.

7. A data transmission method, characterized in that, Applied to the data request end, including: A data request is generated based on preset redirection configuration information and the currently playing multimedia segment; wherein, the redirection configuration information indicates whether to carry a redirection identifier in the data request; the data request is used to obtain the target multimedia segment to be played after the currently playing multimedia segment. The data request is sent to a first data sender so that when the first data sender determines that the data request carries a redirection identifier, it selects a second data sender set from a preset data sender cluster that stores at least one multimedia segment to be played, and returns the target multimedia segment and redirection information indicating the second data sender set; wherein the at least one multimedia segment to be played is used to be played sequentially after the target multimedia segment. The system receives and plays the target multimedia segment, and obtains and plays the corresponding multimedia segment to be played from the second data sending end set based on the received redirection information.

8. The method according to claim 7, characterized in that, The process of generating a data request based on preset redirection configuration information and the currently playing multimedia segment includes: Obtain preset redirection configuration information; wherein, the redirection configuration information includes: switch information indicating whether the redirection function is enabled, and range information indicating at least one redirected multimedia segment that enables the redirection function; When the switch information indicates that the redirection function is enabled, a data request carrying a redirection identifier is generated based on the range information and the currently playing multimedia segment. When the switch information indicates that the redirection function is not enabled, a data request is generated based on the currently playing multimedia segment.

9. The method according to claim 8, characterized in that, The step of generating a data request carrying a redirection identifier based on the range information and the currently playing multimedia segment includes: Generate a data request based on the currently playing multimedia segment; Based on the range information, when it is determined that the at least one redirected multimedia segment is played sequentially after the target multimedia segment, a redirection identifier is added to the data request to obtain a data request carrying the redirection identifier.

10. The method according to claim 9, characterized in that, Adding a redirection identifier to the data request and obtaining the data request carrying the redirection identifier includes: When it is determined that at least one multimedia segment to be played after the target multimedia segment is included within the at least one redirected multimedia segment characterized by the range information, a redirection identifier is generated based on the at least one multimedia segment to be played. Add the redirection identifier to the data request to obtain a data request carrying the redirection identifier.

11. The method according to claim 7, characterized in that, The step of obtaining and playing corresponding multimedia segments to be played from the second data sending end set based on the received redirection information includes: Based on the received redirection information, the storage relationship between the at least one multimedia segment to be played and the second data sending end set is saved; Whenever it is determined that one of the at least one playable multimedia segments will be played, the following operations are performed: Based on the storage relationship, the second data sending end corresponding to the multimedia segment to be played is determined; Send a request message to the second data sender so that the second data sender returns the multimedia segment to be played; Receive and play the multimedia segment to be played.

12. The method according to claim 7, characterized in that, After sending the data request to the first data sending end, the method further includes: Receive a request response from a third data sender and the redirection information; wherein, the third data sender is a data sender selected from the data sender cluster that stores the target multimedia segment when the first data sender does not store the target multimedia segment; Based on the request response, the target multimedia segment is obtained from and played from the third data sending end; Based on the redirection information, the corresponding multimedia segments to be played are obtained from the second data sending end set and played respectively.

13. A data transmission device, characterized in that, Applied to the first data sending end, including: Transceiver module: used to receive data requests sent by the data requesting end; wherein, the data request is used to obtain a target multimedia segment; the target multimedia segment is used to be played after the multimedia segment currently being played by the data requesting end; Processing module: When it is determined that the data request carries a redirection identifier, it filters out a second data sending end set from a preset data sending end cluster that stores at least one multimedia segment to be played; wherein, the at least one multimedia segment to be played is used to play sequentially after the target multimedia segment; The transceiver module is further configured to: send the target multimedia segment to the data requesting end, and instruct the second data sending end set on redirection information so that the data requesting end plays the target multimedia segment, and obtain and play the corresponding multimedia segments to be played from the second data sending end set based on the redirection information.

14. A data transmission device, characterized in that, The data request side includes: Processing module: used to generate a data request based on preset redirection configuration information and the currently playing multimedia segment; wherein, the redirection configuration information indicates whether to carry a redirection identifier in the data request; the data request is used to obtain the target multimedia segment to be played after the currently playing multimedia segment; Transceiver module: used to send the data request to the first data sender, so that when the first data sender determines that the data request carries a redirection identifier, it selects a second data sender set from a preset data sender cluster that stores at least one multimedia segment to be played, and returns the target multimedia segment, as well as redirection information indicating the second data sender set; wherein, the at least one multimedia segment to be played is used to be played sequentially after the target multimedia segment; The transceiver module is further configured to: receive and play the target multimedia segment, and obtain and play the corresponding multimedia segment to be played from the second data sending end set based on the received redirection information.

15. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the method as described in any one of claims 1 to 12.

16. A computer device, characterized in that, include: Memory, used to store program instructions; A processor is configured to invoke program instructions stored in the memory and execute the method as described in any one of claims 1 to 12 according to the obtained program instructions.

17. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions for causing a computer to perform the method as described in any one of claims 1 to 12.