A data processing method, device, and readable storage medium

By synchronizing the slice file index list between live streaming terminals, the server pressure caused by frequent requests from user terminals to update the m3u8 list was resolved, resulting in a more stable live streaming experience.

CN116208782BActive Publication Date: 2026-05-19TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2021-12-01
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

In existing technologies, during live streaming, user terminals need to frequently send polling requests to CDN servers to update the m3u8 list, which leads to excessive server request pressure and unstable update frequency, easily causing live streaming to be interrupted or fail.

Method used

By establishing communication connections between terminals participating in the live stream and synchronizing the slice file index list, terminals can directly obtain the latest slice file index list from the terminals with the communication connections, reducing the frequency of requests to the server.

Benefits of technology

This improved the rate at which the terminal updates the slice file index list, reduced the server's request pressure, and decreased the possibility of live streaming buffering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116208782B_ABST
    Figure CN116208782B_ABST
Patent Text Reader

Abstract

The application discloses a data processing method, device and readable storage medium, the method comprising: a first terminal participating in a target live broadcast service sends an index list update request to a content distribution server; receiving a slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to indicate that the first terminal requests to acquire first slice media data in the target live broadcast service; determining a synchronization slice file index list associated with a second terminal from the slice file index list; the second terminal has a communication connection relationship with the first terminal; the second terminal is a terminal participating in the target live broadcast service; sending the synchronization slice file index list to the second terminal through the communication connection relationship between the first terminal and the second terminal; the synchronization slice file index list is used to indicate that the second terminal requests to acquire second slice media data in the target live broadcast service. By using the application, the request pressure of the server during live broadcast can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Live streaming can quickly and accurately transmit on-site information, and its strong sense of presence has led more and more people to watch live streams via computers or mobile phones. After being collected, encoded, and packaged, the real-time media data generated by the live stream is pushed to various user terminals by a CND (Content Delivery Network) server.

[0003] The common streaming method in current technology involves slicing the media data stream and encapsulating it into small TS (Transport Stream) files that can be downloaded via HTTP (Hypertext Transfer Protocol). Then, an m3u8 list (a video playback standard) is generated for each TS file, containing an index list of download information. Once the user terminal obtains the m3u8, it can download the TS files stored on the CDN server sequentially according to the live stream progress. However, because live streaming is real-time, media data is constantly being generated and encapsulated into new TS files, and the m3u8 list is constantly updated. Therefore, the user terminal needs to continuously send polling requests to the CDN server to refresh the m3u8 list and thus continuously download the TS files. If the frequency of user terminal requests to refresh the m3u8 list is too low, the user terminal will obtain the corresponding TS file too late, causing playback stuttering. Conversely, if the user terminal updates the m3u8 list too frequently, it will put enormous pressure on the server, increasing the probability of the m3u8 list returning a failure. Summary of the Invention

[0004] This application provides a data processing method, apparatus, and readable storage medium that can improve the update rate of the m3u8 list and reduce the request pressure on the server.

[0005] One embodiment of this application provides a data processing method, including:

[0006] The first terminal participating in the target live streaming service sends an index list update request to the content distribution server;

[0007] The content distribution server returns a list of slice file indexes based on the index list update request; the slice file index list is used to indicate to the first terminal to request the first slice of media data in the target live streaming service;

[0008] The synchronized slice file index list associated with the second terminal is determined from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service;

[0009] The synchronous slice file index list is sent to the second terminal through the communication connection relationship; the synchronous slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data contains the second slice file identifier corresponding to the second slice media data.

[0010] One embodiment of this application provides a data processing method, including:

[0011] Receive terminal connection requests sent by the first terminal participating in the target live streaming service;

[0012] Obtain the terminal identifier corresponding to the terminal participating in the target live streaming service, and use it as the connectable terminal identifier;

[0013] Obtain the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers;

[0014] The second terminal identifier is sent to the first terminal so that the first terminal can establish a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list associated with the second terminal from the slice file index list and sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal.

[0015] One embodiment of this application provides a data processing apparatus, including:

[0016] The request module is used by the first terminal participating in the target live streaming service to send an index list update request to the content distribution server.

[0017] The first receiving module is used to receive the slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to instruct the first terminal to request the first slice media data in the target live broadcast service;

[0018] The first synchronization module is used to determine the synchronized slice file index list associated with the second terminal from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service;

[0019] The first sending module is used to send a synchronous slice file index list to the second terminal through a communication connection with the second terminal; the synchronous slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data contains the second slice file identifier corresponding to the second slice media data.

[0020] The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live broadcast service;

[0021] The first synchronization module includes:

[0022] The first synchronization unit is used to send the first slice file identifier to the second terminal, so that the second terminal determines the slice file identifier that does not belong to the existing slice file index list in the second terminal as the second slice file identifier;

[0023] The first synchronization unit is also used to obtain second slice file download information associated with the second slice file identifier from the first slice file download information;

[0024] The first synchronization unit is also used to generate a synchronized slice file index list based on the second slice file identifier and the second slice file download information.

[0025] The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live broadcast service;

[0026] The first synchronization module includes:

[0027] The second synchronization unit is used to send a file identifier acquisition request to the second terminal;

[0028] The second synchronization unit is also used to receive the target slice file identifier returned by the second terminal based on the file identifier acquisition request; the live broadcast order corresponding to the target slice file identifier is after the live broadcast order corresponding to the remaining slice file identifiers; the existing slice file index list in the second terminal includes the target slice file identifier, and the remaining slice file identifiers are the slice file identifiers in the existing slice file index list in the second terminal other than the target slice file identifier;

[0029] The second synchronization unit is also used to determine the slice file identifier in the first slice file identifier whose live broadcast order is after the live broadcast order corresponding to the target slice file identifier as the second slice file identifier;

[0030] The second synchronization unit is also used to obtain the second slice file download information associated with the second slice file identifier from the first slice file download information;

[0031] The second synchronization unit is also used to generate a synchronized slice file index list based on the second slice file identifier and the second slice file download information.

[0032] The aforementioned data processing device further includes:

[0033] The timing retransmission module is used to start timing from the moment the synchronized slice file index list is sent to the second terminal and obtain the timing duration.

[0034] The timing retransmission module is also used to retransmit the synchronization slice file index list to the second terminal again through the communication connection between the module and the second terminal if the timing duration reaches the retransmission duration threshold and no confirmation of receipt information for the synchronization slice file index list is received from the second terminal.

[0035] The aforementioned data processing device further includes:

[0036] The identifier acquisition module is used to send a terminal connection request to the terminal management server from the terminal identifiers of the terminals participating in the target live broadcast service, so that the terminal management server can obtain the second terminal identifier corresponding to the second terminal from the terminal identifiers of the terminals participating in the target live broadcast service based on the terminal connection request.

[0037] The identifier acquisition module is also used to receive a second terminal identifier returned by the terminal management server;

[0038] The connection establishment module is used to establish a communication connection relationship with the second terminal through the second terminal identifier.

[0039] The connection establishment module includes:

[0040] The connection request unit is used to send a communication establishment request to the forwarding server; the communication establishment request carries a second terminal identifier;

[0041] The address sending unit is also used to receive the address probe instruction returned by the forwarding server based on the communication establishment request;

[0042] The address acquisition unit is also used to send address probe data packets to the address probe server according to the address probe instruction, and to receive the communication address and port address returned by the address probe server for the first terminal;

[0043] The connection unit is used to send the communication address and port address for the first terminal to the forwarding server, so that the forwarding server forwards the communication address and port address for the first terminal to the second terminal according to the second terminal identifier;

[0044] The connection unit is also configured to receive a first communication packet sent by the second terminal based on the communication address and port address of the first terminal;

[0045] The connection unit is also used to receive the communication address and port address for the second terminal sent by the forwarding server, and to send a second communication packet to the second terminal based on the communication address and port address for the second terminal;

[0046] The connection unit is also used to determine that a communication connection has been successfully established between the second terminal when the first communication packet is successfully received and the second communication packet is successfully sent.

[0047] The aforementioned data processing device further includes:

[0048] The quantity determination module is used to determine the number of communication terminals of the second terminal;

[0049] The frequency determination module is used to determine the index list update frequency as a first update frequency when the number of communication terminals is at least two and the number of communication terminals is less than or equal to a quantity threshold; the index list update frequency is used to indicate the frequency at which the first terminal sends an index list update request.

[0050] The frequency determination module is also used to determine the index list update frequency as a second update frequency when the number of communication terminals is at least two and the number of communication terminals is greater than the number threshold; the first update frequency is greater than the second update frequency.

[0051] The aforementioned data processing device further includes:

[0052] The second receiving module is used to receive the target synchronous slice file index list sent by the third terminal; the third terminal has a communication connection with the first terminal; the third terminal is a terminal participating in the target live broadcast service;

[0053] The second synchronization module is used to determine the broadcast synchronization slice file index list associated with the fourth terminal from the target synchronization slice file index list; the fourth terminal has a communication connection with the first terminal; the fourth terminal does not have a communication connection with the third terminal; the fourth terminal is a terminal participating in the target live broadcast service;

[0054] The second sending module is used to send the broadcast synchronization slice file index list to the fourth terminal through the communication connection with the fourth terminal.

[0055] One embodiment of this application provides a data processing apparatus, including:

[0056] The request receiving module is used to receive terminal connection requests sent by the first terminal participating in the target live streaming service;

[0057] The first identifier acquisition module is used to acquire the terminal identifier corresponding to the terminal participating in the target live broadcast service, as the connectable terminal identifier.

[0058] The second identifier acquisition module is used to acquire the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers;

[0059] The identifier sending module is used to send the second terminal identifier to the first terminal so that the first terminal can establish a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list to be associated with the second terminal from the slice file index list. The first terminal sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal.

[0060] The second identifier acquisition module includes:

[0061] The upper limit determination unit is used to determine the upper limit number of terminals that the first terminal can establish communication connections with in the target live broadcast service;

[0062] The first acquisition unit is used to acquire the number of connected terminals corresponding to the connectable terminal identifier, and to determine the connectable terminal identifier whose number of connected terminals is less than the terminal limit as the terminal identifier to be selected.

[0063] The second acquisition unit is used to acquire S second terminal identifiers from the terminal identifiers to be selected; S is less than or equal to the upper limit of the number of terminals; the terminal corresponding to the second terminal identifier is the second terminal.

[0064] The upper limit determination unit includes:

[0065] The first estimation subunit is used to obtain the object attribute characteristics corresponding to the joined terminals participating in the target live broadcast business, and to obtain the business attribute characteristics of the target live broadcast business.

[0066] The first estimation subunit is also used to estimate the exit probability of a joined terminal exiting the target live broadcast service within the target time period based on object attribute characteristics and business attribute characteristics, and to estimate the number of joined terminals exiting within the target time period based on the exit probability.

[0067] The second prediction subunit is used to obtain the popularity characteristics of the target live streaming service and predict the number of new terminals participating in the target live streaming service within the target time period based on the popularity characteristics.

[0068] The determination subunit is used to determine the upper limit of the number of terminals that the first terminal can establish communication connections with in the target live broadcast service, based on the number of terminals that have joined, the number of terminals that have left, and the number of new terminals.

[0069] The number of terminal identifiers to be selected is at least two; S second terminal identifiers are obtained from the terminal identifiers to be selected;

[0070] The second acquisition unit includes:

[0071] The location determination subunit is used to obtain the first location information of the first terminal and the second location information of the terminals corresponding to at least two terminal identifiers to be selected.

[0072] The identifier selection subunit is used to obtain the distance information between the first location information and each second location information, sort at least two candidate terminal identifiers according to the distance information, and sequentially obtain S second terminal identifiers from the sorted at least two candidate terminal identifiers.

[0073] One embodiment of this application provides a computer device, including: a processor, a memory, and a network interface;

[0074] The processor is connected to the memory and the network interface. The network interface is used to provide a data communication network element, the memory is used to store a computer program, and the processor is used to call the computer program to execute the method in the embodiments of this application.

[0075] One aspect of this application provides a computer-readable storage medium storing a computer program adapted for loading by a processor and executing the methods described in this application.

[0076] One aspect of this application provides a computer program product or computer program that includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the method described in this application.

[0077] In this embodiment, a communication connection can be established between the first terminal and the second terminal participating in the target live streaming service. When the first terminal requests the slice file index list from the content distribution server, it can send the synchronized slice file index list extracted from the slice file index list to the second terminal through the communication connection. This eliminates the need for the second terminal to request the slice file index list obtained by the first terminal from the content distribution server again. Moreover, the second terminal can obtain the slice file index list obtained by the first terminal before sending a new index list update request to the content distribution server. Therefore, during the process of terminals participating in the target live streaming service synchronizing the slice file index lists they have obtained, the terminals can synchronize the slice file index lists obtained by other terminals within the time interval between two adjacent index list update requests. This significantly increases the rate at which the terminals update the slice file index lists, thus eliminating the need for terminals to send index list update requests at a high frequency to increase the update rate. Consequently, the request pressure on the content distribution server is also greatly reduced. Attached Figure Description

[0078] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0079] Figure 1 This is a schematic diagram of a network architecture provided in an embodiment of this application;

[0080] Figure 2a This is a schematic diagram of a data processing scenario based on live streaming provided in an embodiment of this application;

[0081] Figure 2b This is a schematic diagram illustrating a scenario for obtaining a list of slice file indexes provided in an embodiment of this application;

[0082] Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application;

[0083] Figure 4 This is a flowchart illustrating a communication connection establishment method provided in an embodiment of this application;

[0084] Figure 5a This is a schematic diagram illustrating a scenario for establishing a communication connection, as provided in an embodiment of this application.

[0085] Figure 5b This is a schematic diagram illustrating a scenario for establishing a communication connection, as provided in an embodiment of this application.

[0086] Figure 6 This is a flowchart illustrating a data processing method provided in an embodiment of this application;

[0087] Figure 7 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0088] Figure 8 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0089] Figure 9 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application;

[0090] Figure 10 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0091] Figure 11 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0092] Figure 12 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0093] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0094] Artificial intelligence (AI) is the theory, methods, technology, and application systems that use digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, perceive the environment, acquire knowledge, and use that knowledge to achieve optimal results. In other words, AI is a comprehensive technology within computer science that attempts to understand the essence of intelligence and produce a new kind of intelligent machine that can react in a way similar to human intelligence. AI studies the design principles and implementation methods of various intelligent machines, enabling them to possess the functions of perception, reasoning, and decision-making.

[0095] Artificial intelligence (AI) is a comprehensive discipline encompassing a wide range of fields, including both hardware and software technologies. Fundamental AI technologies generally include sensors, dedicated AI chips, cloud computing, distributed storage, big data processing, operating / interactive systems, and mechatronics. AI software technologies primarily include computer vision, speech processing, natural language processing, and machine learning / deep learning.

[0096] With the research and advancement of artificial intelligence (AI) technology, AI is being studied and applied in various fields, such as smart homes, smart wearable devices, virtual assistants, smart speakers, smart marketing, autonomous driving, drones, robots, smart healthcare, and smart customer service. It is believed that with the development of technology, AI will be applied in more fields and play an increasingly important role.

[0097] Computer vision (CV) is a science that studies how to enable machines to "see." More specifically, it refers to machine vision, which uses cameras and computers to replace human eyes in tasks such as target recognition, tracking, and measurement, and further performs image processing to create images more suitable for human observation or transmission to instruments. As a scientific discipline, computer vision studies related theories and technologies, attempting to build artificial intelligence systems capable of extracting information from images or multidimensional data. Computer vision technologies typically include data processing, image recognition, image semantic understanding, image retrieval, OCR, video processing, video semantic understanding, video content / behavior recognition, 3D object reconstruction, 3D technology, virtual reality, augmented reality, simultaneous localization and mapping (SLAM), and common biometric recognition technologies such as facial recognition and fingerprint recognition.

[0098] Key technologies in speech processing include Automatic Speech Recognition (ASR), Text-to-Speech (TTS), and Voiceprint Recognition. Enabling computers to hear, see, speak, and feel is the future direction of human-computer interaction, with speech emerging as one of the most promising methods.

[0099] The solutions provided in this application involve technologies such as computer vision and speech processing in artificial intelligence. The specific process is illustrated in the following embodiments.

[0100] Please see Figure 1 , Figure 1 This is a schematic diagram of a network architecture provided in an embodiment of this application. For example... Figure 1 As shown, the network architecture may include a server 100 and a user terminal cluster, wherein the user terminal cluster may include multiple user terminals, such as... Figure 1 As shown, the cluster may specifically include user terminal 10a, user terminal 10b, user terminal 10c, ..., user terminal 10n. Communication connections may exist between the user terminals, for example, user terminal 10a and user terminal 10b may be connected, user terminal 10a and user terminal 10c may be connected, and user terminal 10b and user terminal 10c may be connected. Simultaneously, user terminals 10a, 10b, 10c, ..., 10n in the user terminal cluster may each have a network connection to the aforementioned server 100, enabling each user terminal to interact with the server 100 via the network connection. The network connection method is not limited; it can be a direct or indirect connection via wired communication, a direct or indirect connection via wireless communication, or other methods. This application does not impose any restrictions on this method.

[0101] It should be understood that, such as Figure 1 Each user terminal in the user terminal cluster shown can have an application client installed. When the application client runs on each application user terminal, it can interact with the aforementioned... Figure 1 The servers 100 shown interact with each other. The application client can be a social networking application, instant messaging application, live streaming application, short video application, video application, music application, shopping application, game application, novel application, payment application, browser, or other application client with webpage video playback capabilities. This application client can be a standalone client or an embedded sub-client integrated into another client (such as an instant messaging client, social networking client, video client, etc.), without limitation. Taking a live streaming application as an example, server 100 can include one or more servers such as a content distribution server and an encoding server corresponding to the live streaming application. Therefore, each user terminal can interact with server 100 through the application client corresponding to the live streaming application. The encoding server can slice the received media data stream, encode each slice sequentially, encapsulate them into small slice files, and then send the slice files to the content distribution server. The content distribution server can then distribute the slice files to user terminals in the user terminal cluster. It should be understood that the functions of the content distribution server and the encoding server can be integrated on the same server, without limitation. The media data stream can be any user terminal in the user terminal cluster that runs the application client corresponding to the live streaming application, and the media data collected therein.

[0102] like Figure 1As shown, each user terminal in the user terminal cluster can communicate with server 100 by running the application client, participate in the target live streaming service, and then sequentially obtain the segment files corresponding to the target live streaming service from server 100. By decoding the segment files, the segment media data (video, audio, subtitles, chapter information, etc.) corresponding to the target live streaming service can be obtained, thereby playing the multimedia content (video, audio, subtitles, chapter information, etc.) corresponding to the target live streaming service. However, before the user terminal downloads the segment files from server 100, it needs to obtain the segment file download information corresponding to the segment files. It can be understood that server 100 will store multiple segment files. For ease of management and user terminal downloads, server 100 will generate a segment file index list corresponding to the segment files. This list contains the segment file identifier and download information. The segment file identifier is used to uniquely identify a segment file; different segment files have different identifiers. Moreover, as the target live streaming service progresses, new segment files will be continuously generated, and the segment file index list will be continuously updated. Therefore, user terminals in the user terminal cluster need to periodically update the slice index list stored locally on the terminal in order to obtain the latest slice file corresponding to the target live broadcast service, and then obtain the slice media data in the slice file.

[0103] In this embodiment, a user terminal can update its existing slice index list by requesting a slice file index list from server 100, or by obtaining a synchronized slice file index list sent by other user terminals. Specifically, the first terminal (e.g., user terminal 10a) participating in the target live streaming service in the user terminal cluster can send an index list update request to server 100, and then receive the slice file index list returned by server 100 based on the index list update request. Thus, when the first terminal plays the target live streaming service, it can download the first slice file sequentially from server 100 according to the live streaming order corresponding to the slice file identifier in the slice file index list, and obtain the first slice media data from the slice file for playback. Simultaneously, the first terminal can determine the synchronization slice file index list for synchronization with the second terminal (e.g., user terminal 10b) from the slice file index list. It should be noted that the second terminal and the first terminal have a communication connection; both the second terminal and the first terminal participate in the same target live streaming service. Then, the first terminal can send the synchronization slice file index list to the second terminal through the communication connection. Thus, when the second terminal plays the target live streaming service, it can download the second slice file sequentially from the server 100 according to the live streaming order corresponding to the slice file identifiers in the synchronization slice file index list, and obtain the second slice media data from the second slice file for playback. It should be understood that the first slice file identifier corresponding to the first slice media data includes the second slice file identifier corresponding to the second slice media data.

[0104] It is understood that the methods provided in this application embodiment can be executed by computer equipment, which includes, but is not limited to, the server 100 and user terminals described above. The server 100 can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server 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. User terminals 10a, 10b, 10c, and 10n can include mobile phones, tablets, laptops, PDAs, smart speakers, mobile internet devices (MIDs), POS (Point of Sales) machines, wearable devices (such as smartwatches, smart bracelets, etc.), smart TVs, and in-vehicle terminals. This application embodiment can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, and assisted driving.

[0105] It is understood that the aforementioned computer devices (such as server 100, user terminal 10a, user terminal 10b, user terminal 10c, ..., user terminal 10n) can be nodes in a distributed system. This distributed system can be a blockchain system, formed by connecting these multiple nodes through network communication. The nodes can form a peer-to-peer (P2P) network, where the P2P protocol is an application layer protocol running on top of the Transmission Control Protocol (TCP). In this distributed system, any type of computer device, such as servers or user terminals, can become a node in the blockchain system by joining this peer-to-peer network.

[0106] For easier understanding, please refer to Figure 2a , Figure 2a This is a schematic diagram illustrating a data processing scenario based on live streaming, provided in an embodiment of this application. For example... Figure 2a As shown, user terminals 20, 21, 22, and 23 can all integrate and install live streaming application clients. User terminal 20 is bound to broadcaster X, user terminal 21 is bound to user A, user terminal 22 is bound to user B, and user terminal 23 is bound to user C. Each of these user terminals can be configured to support the aforementioned applications. Figure 1 In the corresponding embodiment, any user terminal in the user terminal cluster can be, for example, user terminal 20 can be user terminal 10c, user terminal 21 can be user terminal 10a, user terminal 22 can be user terminal 10b, and user terminal 23 can be user terminal 10n. Encoding server 24 can belong to the above-mentioned... Figure 1 The server 100 and content distribution server 25 in the corresponding embodiments can also belong to the above-mentioned categories. Figure 1 The server 100 in the corresponding embodiment.

[0107] like Figure 2aAs shown, the basic live streaming process includes four steps: data acquisition, data encoding and encapsulation, data distribution, and data download. Assume that the broadcaster X launches the live streaming application client through user terminal 20 and then begins live streaming through the application client. This will enter the first stage of the entire live streaming process: "data acquisition." User terminal 20 can respond to the live streaming request from the application client, calling its integrated or connected acquisition devices (such as cameras and microphones) to acquire media data corresponding to the video footage used for live streaming. Then, user terminal 20 can transmit the acquired media data to the encoding server 24 in the form of a stream. The acquisition of media data corresponding to the video footage includes audio acquisition and image acquisition, which correspond to two completely different input sources and data formats. The audio acquisition process primarily involves using equipment to capture analog signals from the environment into raw data encoded with PCM (Pulse Code Modulation), which is then compressed into audio data formats such as MP3 (Moving Picture Experts Group Audio Layer III) for distribution. Common audio compression formats include: MP3, AAC (Advanced Audio Coding), OGG (oggVorbis), WMA (Windows Media Audio), Opus (a lossy audio encoding format), FLAC (FreeLossless Audio Codec), APE (Monkey's Audio), m4a (the file extension for MPEG-4 audio standards), and AMR (a computer file format). The captured images are combined to form a series of continuously playing animations, constituting the content visible to the naked eye in a video. The image acquisition process mainly involves using devices such as cameras to capture YUV (a color encoding method) encoded video data.

[0108] Then, as Figure 2a As shown, user terminal 20 sends the collected audio and video data together as media data to encoding server 24, at which point the second stage of live streaming, "data encoding and encapsulation," begins. Encoding is a data compression process; encoding server 24 compresses the media data using a series of algorithms to reduce the data volume. Encapsulation can be understood as a container for media data. A container is a standard that combines and encapsulates the media data (video, audio, subtitles, chapter information, etc.) generated by the encoder. Containers make it easy to play different media data synchronously, and another function of containers is to provide indexes for media data. Figure 2aAs shown, the encoding server 24 can slice the media data stream to obtain multiple slice media data, and then encapsulate these multiple slice media data into containers to obtain multiple slice files, such as slice file 241, slice file 242, and slice file 243. It can be understood that to reduce live streaming latency, the size of the slice media data is usually small, meaning the corresponding live streaming duration is usually short. Therefore, after obtaining the media data corresponding to the target live streaming duration, the encoding server 24 can slice it, encapsulate the media data corresponding to the target live streaming duration as slice media data, and obtain slice files. While generating slice files, the encoding server 24 also generates a slice file index list 245 corresponding to the slice files. The slice file index list 245 records the slice file identifier and slice file download information. For example... Figure 2a As shown, the slice file index list 245 records four index information entries. Index information 2451 includes the slice file identifier 1 and slice file download information 1 corresponding to slice file 241; index information 2452 includes the slice file identifier 2 and slice file download information 2 corresponding to slice file 242; index information 2453 includes the slice file identifier 3 and slice file download information 3 corresponding to slice file 243; and index information 2454 includes the slice file identifier 4 and slice file download information 4 corresponding to slice file 244. Then, the encoding server 24 sends the slice file index list 245 and all slice files to the content distribution server 25. The content distribution server 25 and the user terminals participating in the broadcaster X live streaming service complete the data distribution and download in the live streaming process. Because the media data is sliced ​​into small slice media data, the user terminal can download and play simultaneously while playing the live stream. That is, it first downloads some slice files, then begins to acquire slice media data according to the live streaming order corresponding to the slice files, and then continues to acquire new slice files while playing the acquired slice media data.

[0109] Specifically, before downloading the segment files, user terminals 21, 22, and 23 should first obtain the segment file index list. This is so that they can retrieve the segment media data based on the segment file identifiers and download information in the index list. Please refer to [link to relevant documentation]. Figure 2b , Figure 2b This is a schematic diagram illustrating a scenario for obtaining a list of slice file indexes provided in an embodiment of this application. For example... Figure 2b As shown, the user terminals participating in the anchor X live streaming service simultaneously include user terminal 21, user terminal 22 and user terminal 23, and user terminal 21, user terminal 22 and user terminal 23 can have a communication connection relationship, such as a P2P connection, through which the user terminals can interact with each other.

[0110] like Figure 2b As shown, the existing segment file index list 27 in user terminal 21 includes index information 2451 and index information 2452. User terminal 21 can download segment file 241 based on index information 2451 according to the existing segment file index list 27. After downloading segment file 241, user terminal 21 can obtain and play the segment media data in segment file 241. While playing the segment media data in segment file 241, user terminal 21 can continue to download segment file 242 according to index information 2452 and cache the segment media data in segment file 242. In this way, after playing the segment media data in segment file 241, user terminal 21 can seamlessly continue playing the segment media data in segment file 242, avoiding live streaming interruptions. Figure 2b As broadcaster X's live stream progresses, new segment files are generated, requiring updates to the index information in the existing segment file index list 27 on user terminal 21. Therefore, user terminal 21 can send an index list update request to content distribution server 25. Upon receiving the request, content distribution server 25 returns a segment file index list 26 to user terminal 21. It's understood that content distribution server 25 doesn't need to send the index information already present to user terminal 21; therefore, segment file index list 26 only contains index information 2453 and index information 2454. After receiving segment file index list 26, user terminal 21 also synchronizes it with user terminals 22 and 23, which have communication connections with it. Therefore, for multiple user terminals with communication connections, as long as one user terminal requests a new slice file index list from the content distribution server 25, it is equivalent to the connected user terminals also requesting a new slice file index list from the content distribution server. This reduces the request pressure on the content distribution server 25, and the update frequency of the existing slice file index list in the user terminal will be greatly improved.

[0111] Further, please see Figure 3 , Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application. The data processing method can be performed by a first terminal (e.g., the one described above). Figure 1 The data processing method is executed by any user terminal in the user terminal cluster in the corresponding embodiment. The following description will use the execution of this data processing method by the first terminal as an example. This data processing method may include at least the following steps S101-S104:

[0112] Step S101: The first terminal participating in the target live streaming service sends an index list update request to the content distribution server.

[0113] Specifically, the media data stream corresponding to the target live streaming service can be divided into small media data segments, which are then encoded and encapsulated into individual segment files. The downloading and decoding of different segment files do not affect each other. In other words, once the first terminal obtains a segment file, such as segment file A, it can access and play the media data within segment file A without waiting for other segment files to finish downloading. To facilitate the rapid downloading of required segment files by terminals participating in the target live streaming service, the content distribution server contains a master index table of segment files, which includes the segment file identifiers and download information for all segment files corresponding to the target live streaming service at the current moment. As the target live streaming service progresses, new segment files are continuously generated, and the master index table of segment files is updated accordingly. For example, the target live streaming service can be performed using the HLS (HTTP Live Streaming, a streaming media transmission protocol based on Hypertext Transfer Protocol). In this case, the encapsulation format of the segment media data is TS (MPEG2-TS, transport stream), and the segment file can be called a TS file. The HLS protocol works by dividing the entire media data stream into small TS (Hypertext Transfer Protocol) files based on HTTP, which are then downloaded by user terminals participating in the target live stream service. Each user terminal can download only a portion of the files at a time. The overall index table of the TS files corresponding to the target live stream service can be recorded as M3U8 information (a video playback standard). Typically, the information in the M3U8 file includes the download address of the TS file, the TS duration, the TS file size, and tag information indicating whether the live stream has been interrupted.

[0114] Specifically, after the first terminal participates in the target live streaming service, because segment files are continuously generated and the overall segment file index table in the content distribution server is constantly updated, the first terminal also needs to continuously poll the content distribution server for the new segment file index list in order to obtain the newly generated segment files. In short, the first terminal can send index list update requests to the content distribution server according to the index list update frequency.

[0115] Step S102: Receive the slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to instruct the first terminal to request the first slice media data in the target live streaming service.

[0116] Specifically, the slice file index list returned by the content delivery server to the first terminal may include a first slice file identifier and first slice file download information associated with the first slice file identifier. The first slice file download information instructs the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live streaming service. It is understood that, to save network resources, the first slice file identifier will not include slice file identifiers from the existing slice file index list contained in the first terminal. In a feasible embodiment, the index list update request may carry the slice file identifier with the latest live streaming order from the existing slice file index list contained in the first terminal. In this case, after receiving the index list update request, the content delivery server can use the slice file identifiers whose live streaming order follows the latest live streaming order slice file identifier from the existing slice file index list contained in the first terminal as the first slice file identifier, and then obtain the slice file index list corresponding to the first slice file identifier. It should be understood that the number of first slice file identifiers can be one or more.

[0117] Step S103: Determine the synchronous slice file index list associated with the second terminal from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service.

[0118] Specifically, in this embodiment, the first terminal and the second terminal participating in the target live streaming service can establish a communication connection. When the first terminal obtains the slice file index list, it can synchronize the obtained slice file index list to the second terminal. However, to save network resources, the first terminal can only synchronize the slice file identifiers that the second terminal does not possess from the slice file index list, along with the slice file download information associated with those identifiers. Therefore, the first terminal can determine the synchronized slice file index list associated with the second terminal from the slice file index list. The synchronized slice file index list associated with the second terminal can be understood as synchronization data sent to the second terminal. Therefore, this synchronized slice file index list is associated with the second terminal, and the slice file identifiers contained in this synchronization data (i.e., the synchronized slice file index list) are slice file identifiers not already included in the existing slice file index list in the second terminal. In other words, the synchronized slice file index list is determined based on the existing slice file index list in the second terminal. This again illustrates that the synchronized slice file index list is closely related to the synchronized terminal (such as the second terminal), and the associated synchronized slice file index list may be different for different synchronized terminals.

[0119] In one feasible embodiment, the specific process of determining the synchronized slice file index list associated with the second terminal from the slice file index list can also be as follows: sending the first slice file identifier to the second terminal, so that the second terminal determines the slice file identifiers in the first slice file identifier that do not belong to the existing slice file index list in the second terminal as the second slice file identifier; obtaining the second slice file download information associated with the second slice file identifier from the first slice file download information; and generating the synchronized slice file index list based on the second slice file identifier and the second slice file download information. For example, the first slice file identifier includes slice file identifier 4, slice file identifier 5, and slice file identifier 6. After obtaining the first slice file identifier, the second terminal can query the existing slice file index list stored locally. Assuming that the existing slice file index list already contains slice file identifier 4, the second terminal will determine slice file identifier 5 and slice file identifier 6 as the second slice file identifier and return them to the first terminal. When the first terminal receives the second slice file identifier sent by the second terminal, it can obtain the slice file download information associated with slice file identifier 5 and slice file identifier 6 from the first slice file download information. Then, based on slice file identifier 5, slice file identifier 6 and their associated slice file download information, it generates a synchronized slice file index list.

[0120] In one feasible embodiment, the specific process of determining the synchronous slice file index list associated with the second terminal from the slice file index list can be as follows: sending a file identifier acquisition request to the second terminal; receiving the target slice file identifier returned by the second terminal based on the file identifier acquisition request; identifying the slice file identifier whose live broadcast order is after the live broadcast order corresponding to the target slice file identifier in the first slice file identifier as the second slice file identifier; obtaining the second slice file download information associated with the second slice file identifier from the first slice file download information; and generating a synchronous slice file index list based on the second slice file identifier and the second slice file download information. Here, the live broadcast order corresponding to the target slice file identifier is after the live broadcast order corresponding to the remaining slice file identifiers, the existing slice file index list in the second terminal includes the target slice file identifier, and the remaining slice file identifiers are the slice file identifiers in the existing slice file index list in the second terminal other than the target slice file identifier. The live broadcast order refers to the chronological order of the live broadcast content corresponding to the slice media data in the slice file. For example, the live broadcast order of the slice file corresponding to the target live broadcast service at 8:50 is before the live broadcast order of the slice file corresponding to the target live broadcast service at 8:52. The slice file identifiers in the slice file index list can be sorted according to their corresponding live broadcast order. Therefore, it can be assumed that the existing slice file index list in the second terminal includes the target slice file identifier and all remaining slice file identifiers that satisfy the requirement that the second terminal's live broadcast order is before the live broadcast order corresponding to the target slice file identifier. Therefore, the first terminal only needs to use the slice file identifiers whose live broadcast order is after the live broadcast order corresponding to the target slice file identifier as the second slice file identifier.

[0121] Step S104: The synchronized slice file index list is sent to the second terminal through the communication connection relationship with the second terminal; the synchronized slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data includes the second slice file identifier corresponding to the second slice media data.

[0122] Specifically, the first terminal and the second terminal can have an end-to-end communication connection, such as a P2P communication connection. Therefore, the first terminal and the second terminal can access each other without the need for forwarding through other computer devices. The first terminal can be a resource provider, acting as a server, pushing the synchronized file index list to the second terminal; the first terminal can also be a resource acquirer, that is, acting as a client, receiving the synchronized file index list pushed by the second terminal.

[0123] Optionally, a timeout period is calculated starting from the moment the synchronized slice file index list is sent to the second terminal. If the timeout period reaches the retransmission timeout threshold and no acknowledgment of receipt for the synchronized slice file index list is received from the second terminal, the synchronized slice file index list is retransmitted to the second terminal through the communication connection. To avoid data loss during transmission, the second terminal can send an acknowledgment of receipt to the first terminal after receiving the synchronized slice file index list. If the first terminal does not receive an acknowledgment of receipt within the target time period, it can retransmit the synchronized slice file index list. This ensures that the slice file index list already possessed by the first terminal will be successfully synchronized to the second terminal.

[0124] Optionally, the number of communication terminals of the second terminal can also be determined; when the number of communication terminals is at least two and the number of communication terminals is less than or equal to a number threshold, the index list update frequency is determined as a first update frequency; the index list update frequency is used to indicate the frequency at which the first terminal sends index list update requests; when the number of communication terminals is at least two and the number of communication terminals is greater than the number threshold, the index list update frequency is determined as a second update frequency; the first update frequency is greater than the second update frequency. It should be understood that terminals with communication connections can synchronize the slice file index lists they request from the content distribution server. Therefore, the more second terminals the first terminal connects to, the higher the frequency of exchanging synchronized slice file index lists, and the lower the index list update frequency at which the terminal sends index list update requests to the content distribution server. For example, terminal X is connected to terminals A and B. Terminal X updates its index five times per minute, as do terminals A and B. Assume that terminals X, A, and B send index update requests at different times. Because terminals X and A push synchronized slice file index lists to each other, and terminals X and B push synchronized slice file index lists to each other, terminal X actually updates its existing slice file index list fifteen times per minute. Now, suppose terminal X establishes a communication connection with terminal C, which also updates its index five times per minute. In this case, terminal X actually updates its existing slice file index list twenty times per minute. If twenty times per minute is too frequent, terminal X can reduce its index update frequency to twice per minute.

[0125] Optionally, the system may also receive a target synchronization slice file index list sent by a third terminal; the third terminal has a communication connection with the first terminal; the third terminal is a terminal participating in the target live streaming service; the system determines a broadcast synchronization slice file index list associated with the fourth terminal from the target synchronization slice file index list; the fourth terminal has a communication connection with the first terminal; the fourth terminal does not have a communication connection with the third terminal; the fourth terminal is a terminal participating in the target live streaming service; and the broadcast synchronization slice file index list is sent to the fourth terminal through the communication connection with the fourth terminal. It should be understood that when the number of terminals participating in the target live streaming service is too large, a terminal does not need to establish a direct communication connection with all terminals, but it should ensure that any terminal participating in the target live streaming service can communicate directly or indirectly with other terminals participating in the target live streaming service. As mentioned above, both the third and fourth terminals have communication connections with the first terminal, but there is no communication connection between the third and fourth terminals. However, after the third terminal sends the target synchronization slice file index list to the first terminal, the first terminal will determine the broadcast synchronization slice file index list associated with the fourth terminal, which is equivalent to the fourth terminal indirectly synchronizing the slice file index list information of the third terminal. In this way, it can be guaranteed that after any terminal participating in the target live streaming service requests the slice file index list from the content distribution server, all other terminals can obtain the synchronous slice file index list from that slice file index list to update the existing slice file index list.

[0126] The method provided in this application embodiment allows a communication connection to be established between a first terminal and a second terminal participating in the target live streaming service. When the first terminal requests a slice file index list from the content distribution server, it can send a synchronized slice file index list extracted from the slice file index list to the second terminal via the communication connection. This eliminates the need for the second terminal to request the slice file index list obtained by the first terminal from the content distribution server again. Furthermore, the second terminal can obtain the slice file index list obtained by the first terminal before sending a new index list update request to the content distribution server. Therefore, during the process of terminals participating in the target live streaming service synchronizing their slice file index lists, each terminal can synchronize with the slice file index lists obtained by other terminals within the time interval between two adjacent index list update requests. This significantly increases the rate at which terminals update their slice file index lists, eliminating the need for terminals to send index list update requests at high frequencies to improve the update rate. Consequently, the request pressure on the content distribution server is also greatly reduced.

[0127] Further, please see Figure 4 , Figure 4This is a flowchart illustrating a communication connection establishment method provided in an embodiment of this application. The data processing method can be performed by a first terminal (e.g., the one described above). Figure 1 The data processing method is executed by any user terminal in the user terminal cluster in the corresponding embodiment. The following description will take the execution of this data processing method by the first terminal as an example. This data processing method may include at least the following steps S201-S203:

[0128] Step S201: The first terminal participating in the target live streaming service sends a terminal connection request to the terminal management server, so that the terminal management server can obtain the second terminal identifier corresponding to the second terminal from the terminal identifiers corresponding to the terminals participating in the target live streaming service based on the terminal connection request.

[0129] Specifically, the terminal management server may contain a live streaming terminal index list. This list includes a live streaming service identifier corresponding to the live streaming service and terminal identifiers associated with the live streaming service identifiers and the terminals participating in the target live streaming service. The terminal connection request may carry the target live streaming service identifier. The terminal management server can search for this target live streaming service identifier in the live streaming terminal index list, then obtain the terminal identifier associated with it as the terminal identifier for the terminal participating in the target live streaming service, and then retrieve the second terminal identifier for the second terminal from this list.

[0130] Step S202: Receive the second terminal identifier returned by the terminal management server.

[0131] Step S203: Establish a communication connection between the second terminal and the second terminal through the second terminal identifier.

[0132] Specifically, the process of establishing a communication connection between the second terminal and the second terminal through the second terminal identifier can be as follows: sending a communication establishment request to the forwarding server; the communication establishment request carries the second terminal identifier; receiving an address probe instruction returned by the forwarding server based on the communication establishment request; sending an address probe data packet to the address probe server according to the address probe instruction, and receiving the communication address and port address for the first terminal returned by the address probe server; sending the communication address and port address for the first terminal to the forwarding server, so that the forwarding server forwards the communication address and port address for the first terminal to the second terminal according to the second terminal identifier; receiving a first communication packet sent by the second terminal based on the communication address and port address for the first terminal; receiving the communication address and port address for the second terminal sent by the forwarding server, and sending a second communication packet to the second terminal based on the communication address and port address for the second terminal; when the first communication packet is successfully received and the second communication packet is successfully sent, it is determined that a communication connection has been successfully established between the second terminal and the second terminal.

[0133] The method provided in this application embodiment enables a communication connection to be established between a first terminal and a second terminal participating in the target live streaming service via network traversal. Through this communication connection, the first terminal and the second terminal can synchronize their newly acquired slice file index lists, thereby increasing the update frequency of the slice file index lists of the terminals participating in the live streaming service.

[0134] To facilitate understanding of the above process, please refer to [the relevant documentation / reference]. Figure 5a and Figure 5b , Figure 5a and Figure 5b This is a schematic diagram illustrating a scenario for establishing a communication connection, as provided in an embodiment of this application. Figure 5a As shown, the user terminal 51 participating in the target live streaming service (can be the one mentioned above) Figure 1 Any terminal in the user terminal cluster shown, such as user terminal 10a), can send a request to the terminal management server 53 (which may belong to the aforementioned...). Figure 1 The server 100 (shown) sends a terminal connection request 52, which may carry a live stream identifier corresponding to the target live stream service, assuming it is live stream identifier 1. After receiving the terminal connection request 52, the terminal management server 53 can obtain the live stream terminal index list 54, then search for live stream identifier 1 in the live stream terminal index list 54, and then determine the terminal identifiers b and c associated with live stream identifier 1 as the terminal identifiers corresponding to the terminals participating in the target live stream service. The terminal management server 53 can determine both terminal identifier b and terminal identifier c as the second terminal identifier 55, and then send the second terminal identifier 55 to the first terminal 51. It can be understood that user terminal 56 corresponding to terminal identifier b and user terminal 57 corresponding to terminal identifier c are the second terminals that the first terminal needs to establish a communication connection with, and are currently also participating in the target live stream service. After obtaining the second terminal identifier 55, user terminal 51 can establish a communication connection with user terminal 56 based on terminal identifier b, and establish a communication connection with user terminal 57 based on terminal identifier c.

[0135] Specifically, communication connections between user terminals can be achieved through network traversal. To better understand the specific process of establishing a communication connection, we will take the establishment of a communication connection between user terminal 51 and user terminal 56 as an example. Figure 5b As shown, both user terminal 51 and user terminal 56 are connected to forwarding server 500 (i.e., the aforementioned...). Figure 4The forwarding server described in the corresponding embodiment maintains the connection via a heartbeat mechanism. After obtaining the terminal identifier b, user terminal 51 can first send a communication establishment request carrying the terminal identifier b to the forwarding server 500. Upon receiving the communication establishment request, the forwarding server 500 can determine, based on the terminal identifier b, that the user terminal 51 wants to connect to is user terminal 56. The forwarding server 500 will then send address probe commands to both user terminal 51 and user terminal 56. After receiving the address probe command, user terminal 51 can send probe data packets to the IP (Internet Protocol) port probe server 510 via UDP (User Datagram Protocol). The IP port probe server 510 will then use the protocol to send the external IP address corresponding to user terminal 51 (i.e., the aforementioned...) Figure 4 The communication address and port (as described in the corresponding embodiment) Figure 4 The port address (as described in the corresponding embodiment) is returned to user terminal 51. Similarly, user terminal 56 can send a probe data packet to the corresponding IP port probe server 520 according to the address probe instruction, and then obtain its own corresponding external IP address and port. Then, both user terminal 51 and user terminal 56 will send their external IP address and port to forwarding server 500. Forwarding server 500 will then forward the received external IP address and port to the other end of the user terminal, that is, forward the external IP address and port corresponding to user terminal 51 to user terminal 56, and forward the external IP address and port corresponding to user terminal 56 to user terminal 51. After receiving the external IP address and port of user terminal 56, user terminal 51 can send a UDP hello packet (as described above) to user terminal 56. Figure 4 In the corresponding embodiment of the second communication packet, user terminal 56 can also send a UDP hello packet to user terminal 51 based on the external IP address and port of user terminal 51 (i.e., the above-mentioned second communication packet). Figure 4 (The first communication packet in the corresponding embodiment). When both user terminal 51 and user terminal 56 successfully receive the UDP hello packet, network traversal is successful, and user terminal 51 and user terminal 56 establish a communication connection, after which they can communicate based on this communication connection.

[0136] Further, please see Figure 6 , Figure 6 This is a flowchart illustrating a data processing method provided in an embodiment of this application. The data processing method can be performed by a server (e.g., the one described above). Figure 1The corresponding embodiment's server 100 executes the data processing method. The following description uses the execution of this data processing method by server 100 as an example. This data processing method may include at least the following steps S301-S304:

[0137] Step S301: Receive a terminal connection request sent by the first terminal participating in the target live streaming service.

[0138] Step S302: Obtain the terminal identifier corresponding to the terminal participating in the target live broadcast service, as the connectable terminal identifier.

[0139] Specifically, the server can record the terminal participation information for multiple live streaming services. For example, it can record the live streaming identifier corresponding to the live streaming service and the terminal identifier corresponding to the terminal participating in the live streaming service. After receiving a terminal connection request, the server can query the live streaming identifier corresponding to the target live streaming service, and then obtain the terminal identifier associated with the live streaming identifier corresponding to the target live streaming service, which will serve as the connectable terminal identifier for the first terminal.

[0140] Step S303: Obtain the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers.

[0141] Specifically, it should be understood that the number of terminals participating in the target live streaming service can reach tens of thousands or even more. The first terminal cannot possibly establish a communication connection with every terminal participating in the target live streaming service. Therefore, the server will only obtain a portion of the connectable terminal identifiers from the connectable terminal identifiers as the second terminal identifier corresponding to the second terminal. Here, the second terminal refers to the terminal that wants to establish a communication connection with the first terminal.

[0142] Specifically, the process involves determining the upper limit of the number of terminals that the first terminal can establish communication connections with in the target live streaming service; obtaining the number of connected terminals corresponding to the connectable terminal identifiers; identifying the connectable terminal identifiers whose number of connected terminals is less than the upper limit as candidate terminal identifiers; obtaining S second terminal identifiers from the candidate terminal identifiers; where S is less than or equal to the upper limit of terminals; and the terminal corresponding to each second terminal identifier is a second terminal. The upper limit of terminals refers to the maximum number of second terminals that the first terminal can connect to. It can be understood that the upper limit of other terminals participating in the target live streaming service can be the same as that of the first terminal. For terminals that have reached the upper limit of connected terminals, they can no longer connect to other terminals. Therefore, the server can first remove the terminal identifiers corresponding to these terminals, only identifying the connectable terminal identifiers whose number of connected terminals is less than the upper limit as candidate terminal identifiers. Then, the server obtains S second terminal identifiers from the candidate terminal identifiers.

[0143] Specifically, the process of determining the upper limit of the number of terminals that the first terminal can establish a communication connection with in the target live streaming service can be as follows: Obtain the object attribute characteristics corresponding to the terminals already participating in the target live streaming service, and obtain the business attribute characteristics of the target live streaming service; based on the object attribute characteristics and business attribute characteristics, estimate the probability of the terminals already participating in the target live streaming service leaving within the target time period, and estimate the number of terminals leaving within the target time period based on the exit probability; obtain the popularity characteristics of the target live streaming service, and estimate the number of new terminals participating in the target live streaming service within the target time period based on the popularity characteristics; based on the number of terminals already participating, the number of terminals leaving, and the number of new terminals, determine the upper limit of the number of terminals that the first terminal can establish a communication connection with in the target live streaming service. The object attribute characteristics may include the interest characteristics of the terminals already participating in the target live streaming service (e.g., whether they have subscribed to the target live streaming service), historical viewing type characteristics (e.g., the types of live streaming services previously watched by the terminals already participating), etc. The business attribute characteristics may include the type characteristics of the target live streaming service (e.g., game live streaming, dance live streaming, etc.), historical popularity characteristics (e.g., the historical live streaming viewing situation of the target live streaming service), etc. The popularity features can include the current popularity of the target live stream (e.g., the number of users watching the target live stream at the current moment) and the predicted popularity features of the target live stream's activities (e.g., the predicted popularity of upcoming activities, such as a lottery). Object attribute features and business attribute features can be input into a pre-trained probability prediction model, and the probability output by the model can be used as the exit probability. Alternatively, the popularity features can be input into a pre-trained new terminal distribution prediction model, and the number of terminals output by the new terminal distribution prediction model can be used as the number of new terminals. Based on the number of terminals that have joined, the number of terminals that have exited, and the number of new terminals, the total number of terminals participating in the target live stream within the target time period can be determined. Based on the total number of terminals, the upper limit of terminals that a first terminal can establish a communication connection with in the target live stream can be determined. For example, if the total number of terminals in the target time period reaches 10,000, the upper limit can be determined as 10; if the total number of terminals in the target time period is only 500, the upper limit can be determined as 3.

[0144] Specifically, when there are at least two terminal identifiers to be selected, the process of obtaining S second terminal identifiers from these identifiers can be as follows: Obtain the first location information of the first terminal; obtain the second location information of the terminals corresponding to the at least two terminal identifiers to be selected; obtain the distance information between the first location information and each second location information; sort the at least two terminal identifiers to be selected according to the distance information; and sequentially obtain S second terminal identifiers from the sorted at least two terminal identifiers to be selected. In short, based on the "proximity principle," S terminals closest to the first terminal are selected from the terminals corresponding to the terminal identifiers to be selected as the second terminals, and their corresponding terminal identifiers are used as the second terminal identifiers. Optionally, in addition to location factors, the second terminal identifiers can also be selected based on the network quality of the terminals corresponding to the terminal identifiers to be selected, i.e., priority is given to selecting the terminal identifiers corresponding to terminals with good network quality as the second terminal identifiers.

[0145] Step S304: The second terminal identifier is sent to the first terminal so that the first terminal establishes a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list associated with the second terminal from the slice file index list. The communication connection between the first terminal and the second terminal is used to instruct the first terminal to send the synchronous slice file index list to the second terminal.

[0146] Specifically, the implementation process of step S304 can be found above. Figure 3 and Figure 4 The relevant descriptions in the corresponding embodiments will not be repeated here.

[0147] The method provided in this application embodiment allows the server to dynamically adjust the upper limit of the number of terminals that can establish communication connections with the first terminal, and to prioritize the acquisition of terminals that are closer to the first terminal or have better network quality as the second terminal. This can avoid delays caused by long-distance communication or poor network quality and speed up the rate at which the terminal obtains the synchronous slice file index list.

[0148] Please see Figure 7 This is a schematic diagram of the structure of a data processing apparatus provided in an embodiment of this application. The data processing apparatus can be a computer program (including program code) running on a computer device; for example, the data processing apparatus is application software. The apparatus can be used to execute corresponding steps in the data processing method provided in the embodiments of this application. Figure 7 As shown, the data processing device 1 may include: a request module 11, a first receiving module 12, a first synchronization module 13, and a first sending module 14.

[0149] Request module 11 is used by the first terminal participating in the target live streaming service to send an index list update request to the content distribution server;

[0150] The first receiving module 12 is used to receive the slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to instruct the first terminal to request the acquisition of the first slice media data in the target live broadcast service;

[0151] The first synchronization module 13 is used to determine the synchronized slice file index list associated with the second terminal from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service;

[0152] The first sending module 14 is used to send a synchronous slice file index list to the second terminal through a communication connection with the second terminal; the synchronous slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data includes the second slice file identifier corresponding to the second slice media data.

[0153] The specific implementation methods of the request module 11, the first receiving module 12, the first synchronization module 13, and the first sending module 14 can be found in the above description. Figure 3 The descriptions of steps S101-S104 in the corresponding embodiments will not be repeated here.

[0154] The apparatus provided in this application embodiment allows a communication connection to be established between a first terminal and a second terminal participating in the target live streaming service. When the first terminal requests a slice file index list from the content distribution server, it can send a synchronized slice file index list extracted from the slice file index list to the second terminal via the communication connection. This eliminates the need for the second terminal to request the slice file index list obtained by the first terminal from the content distribution server again. Furthermore, the second terminal can obtain the slice file index list obtained by the first terminal before sending a new index list update request to the content distribution server. Therefore, during the process of terminals participating in the target live streaming service synchronizing their slice file index lists, each terminal can synchronize with the slice file index lists obtained by other terminals within the time interval between two adjacent index list update requests. This significantly increases the rate at which terminals update their slice file index lists, eliminating the need for terminals to send index list update requests at high frequencies to improve the update rate. Consequently, the request pressure on the content distribution server is also greatly reduced.

[0155] Please see Figure 8This is a schematic diagram of the structure of a data processing apparatus provided in an embodiment of this application. The data processing apparatus can be a computer program (including program code) running on a computer device; for example, the data processing apparatus is application software. The apparatus can be used to execute corresponding steps in the data processing method provided in the embodiments of this application. Figure 8 As shown, the data processing device 8 may include: a request module 201, a first receiving module 202, a first synchronization module 203, and a first sending module 204.

[0156] Request module 201 is used for the first terminal participating in the target live streaming service to send an index list update request to the content distribution server;

[0157] The first receiving module 202 is used to receive the slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to instruct the first terminal to request the acquisition of the first slice media data in the target live broadcast service;

[0158] The first synchronization module 203 is used to determine the synchronization slice file index list associated with the second terminal from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service;

[0159] The first sending module 204 is used to send a synchronous slice file index list to the second terminal through a communication connection with the second terminal; the synchronous slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data includes the second slice file identifier corresponding to the second slice media data.

[0160] The specific implementation methods of the request module 201, the first receiving module 202, the first synchronization module 203, and the first sending module 204 can be found in the above description. Figure 3 The descriptions of steps S101-S104 in the corresponding embodiments will not be repeated here.

[0161] The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live broadcast service;

[0162] Please see again. Figure 8 The first synchronization module 203 includes: a first synchronization unit 2031.

[0163] The first synchronization unit 2031 is used to send the first slice file identifier to the second terminal, so that the second terminal determines the slice file identifier that does not belong to the existing slice file index list in the second terminal as the second slice file identifier;

[0164] The first synchronization unit 2031 is also used to obtain second slice file download information associated with the second slice file identifier from the first slice file download information;

[0165] The first synchronization unit 2031 is also used to generate a synchronized slice file index list based on the second slice file identifier and the second slice file download information.

[0166] The specific implementation of the first synchronization unit 2031 can be found in the above description. Figure 3 The description of step S103 in the corresponding embodiment will not be repeated here.

[0167] The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live broadcast service;

[0168] Please see again. Figure 8 The first synchronization module 203 includes: the second synchronization unit 2032.

[0169] The second synchronization unit 2032 is used to send a file identifier acquisition request to the second terminal;

[0170] The second synchronization unit 2032 is further configured to receive the target slice file identifier returned by the second terminal based on the file identifier acquisition request; the live broadcast order corresponding to the target slice file identifier is after the live broadcast order corresponding to the remaining slice file identifiers; the existing slice file index list in the second terminal includes the target slice file identifier, and the remaining slice file identifiers are the slice file identifiers other than the target slice file identifier in the existing slice file index list of the second terminal.

[0171] The second synchronization unit 2032 is further configured to determine the slice file identifier in the first slice file identifier whose live broadcast order is after the live broadcast order corresponding to the target slice file identifier as the second slice file identifier.

[0172] The second synchronization unit 2032 is also used to obtain second slice file download information associated with the second slice file identifier from the first slice file download information;

[0173] The second synchronization unit 2032 is also used to generate a synchronized slice file index list based on the second slice file identifier and the second slice file download information.

[0174] The specific implementation of the second synchronization unit 2032 can be found in the above description. Figure 3 The description of step S103 in the corresponding embodiment will not be repeated here.

[0175] Please see again. Figure 8 The aforementioned data processing device 2 also includes a timing retransmission module 205.

[0176] The timing retransmission module 205 is used to start timing from the moment the synchronized slice file index list is sent to the second terminal and obtain the timing duration.

[0177] The timing retransmission module 205 is also used to retransmit the synchronization slice file index list to the second terminal again through the communication connection with the second terminal if the timing duration reaches the retransmission duration threshold and no confirmation of receipt information for the synchronization slice file index list is received from the second terminal.

[0178] For the specific implementation of the timing retransmission module 205, please refer to the above. Figure 3 The optional description of step S104 in the corresponding embodiment will not be repeated here.

[0179] Please see again. Figure 8 The aforementioned data processing device 2 further includes: an identifier acquisition module 206 and a connection establishment module 207.

[0180] The identifier acquisition module 206 is used to send a terminal connection request to the terminal management server from the terminal identifiers corresponding to the terminals participating in the target live broadcast service, so that the terminal management server can obtain the second terminal identifier corresponding to the second terminal from the terminal identifiers corresponding to the terminals participating in the target live broadcast service based on the terminal connection request.

[0181] The identifier acquisition module 206 is also used to receive the second terminal identifier returned by the terminal management server;

[0182] The connection establishment module 207 is used to establish a communication connection relationship with the second terminal through the second terminal identifier.

[0183] The specific implementation methods of the identifier acquisition module 206 and the connection establishment module 207 can be found in the above description. Figure 4 The descriptions of steps S201-S203 in the corresponding embodiments will not be repeated here.

[0184] Please see again. Figure 8 The connection establishment module 207 includes: a connection request unit 2071, an address sending unit 2072, an address acquisition unit 2073, and a connection unit 2074.

[0185] The connection request unit 2071 is used to send a communication establishment request to the forwarding server; the communication establishment request carries a second terminal identifier.

[0186] The address sending unit 2072 is also used to receive the address probe instruction returned by the forwarding server based on the communication establishment request;

[0187] The address acquisition unit 2073 is also used to send an address probe data packet to the address probe server according to the address probe instruction, and to receive the communication address and port address returned by the address probe server for the first terminal;

[0188] The connection unit 2074 is used to send the communication address and port address for the first terminal to the forwarding server, so that the forwarding server forwards the communication address and port address for the first terminal to the second terminal according to the second terminal identifier;

[0189] The connection unit 2074 is also configured to receive a first communication packet sent by the second terminal based on the communication address and port address of the first terminal;

[0190] The connection unit 2074 is also used to receive the communication address and port address for the second terminal sent by the forwarding server, and send a second communication packet to the second terminal based on the communication address and port address for the second terminal;

[0191] The connection unit 2074 is also used to determine that a communication connection relationship has been successfully established between the second terminal when the first communication packet is successfully received and the second communication packet is successfully sent.

[0192] The specific implementation methods of the connection request unit 2071, address sending unit 2072, address acquisition unit 2073, and connection unit 2074 can be found in the above description. Figure 4 The description of step S203 in the corresponding embodiment will not be repeated here.

[0193] Please see again. Figure 8 The aforementioned data processing device further includes: a quantity determination module 208 and a frequency determination module 209.

[0194] The quantity determination module 208 is used to determine the number of communication terminals of the second terminal;

[0195] The frequency determination module 209 is used to determine the index list update frequency as a first update frequency when the number of communication terminals is at least two and the number of communication terminals is less than or equal to a number threshold; the index list update frequency is used to indicate the frequency at which the first terminal sends an index list update request.

[0196] The frequency determination module 209 is further configured to determine the index list update frequency as a second update frequency when the number of communication terminals is at least two and the number of communication terminals is greater than the number threshold; the first update frequency is greater than the second update frequency.

[0197] The specific implementation methods of the quantity determination module 208 and the frequency determination module 209 can be found in the above description. Figure 3 The optional description of step S104 in the corresponding embodiment will not be repeated here.

[0198] Please see again. Figure 8 The data processing device 2 mentioned above also includes: a second receiving module 210, a second synchronization module 211, and a second sending module 212.

[0199] The second receiving module 210 is used to receive the target synchronous slice file index list sent by the third terminal; the third terminal has a communication connection with the first terminal; the third terminal is a terminal participating in the target live broadcast service;

[0200] The second synchronization module 211 is used to determine the broadcast synchronization slice file index list associated with the fourth terminal from the target synchronization slice file index list; the fourth terminal has a communication connection with the first terminal; the fourth terminal does not have a communication connection with the third terminal; the fourth terminal is a terminal participating in the target live broadcast service;

[0201] The second sending module 212 is used to send the broadcast synchronization slice file index list to the fourth terminal through the communication connection with the fourth terminal.

[0202] The specific implementation of the second receiving module 210, the second synchronization module 211, and the second transmitting module 212 can be found in the above description. Figure 3 The optional description of step S104 in the corresponding embodiment will not be repeated here.

[0203] Please see Figure 9 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Figure 9As shown, the computer device 1000 may include a processor 1001, a network interface 1004, and a memory 1005. Furthermore, the computer device 1000 may also include a user interface 1003 and at least one communication bus 1002. The communication bus 1002 is used to enable communication between these components. The user interface 1003 may include a display screen and a keyboard; optionally, the user interface 1003 may also include a standard wired interface or a wireless interface. The network interface 1004 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 1004 may be high-speed RAM or non-volatile memory, such as at least one disk drive. The memory 1005 may optionally be at least one storage device located remotely from the processor 1001. Figure 9 As shown, the memory 1005, which is a computer-readable storage medium, may include an operating system, a network communication module, a user interface module, and a device control application.

[0204] In such Figure 9 In the computer device 1000 shown, the network interface 1004 provides network communication elements; the user interface 1003 is mainly used to provide an input interface for the user; and the processor 1001 can be used to call the device control application stored in the memory 1005 to achieve:

[0205] The first terminal participating in the target live streaming service sends an index list update request to the content distribution server;

[0206] The content distribution server returns a list of slice file indexes based on the index list update request; the slice file index list is used to indicate to the first terminal to request the first slice of media data in the target live streaming service;

[0207] The synchronized slice file index list for association with the second terminal is determined from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service;

[0208] The synchronous slice file index list is sent to the second terminal through the communication connection relationship; the synchronous slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data contains the second slice file identifier corresponding to the second slice media data.

[0209] It should be understood that the computer device 1000 described in the embodiments of this application can execute the foregoing text. Figure 3 , Figure 4The description of the data processing method in any corresponding embodiment will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated.

[0210] Furthermore, it should be noted that this application embodiment also provides a computer-readable storage medium, which stores a computer program executed by the aforementioned data processing device 1 or data processing device 2, and the computer program includes program instructions. When the processor executes the program instructions, it can execute the aforementioned... Figure 3 , Figure 4 The description of the data processing method in any corresponding embodiment is already provided, and therefore will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated. For technical details not disclosed in the computer-readable storage medium embodiments related to this application, please refer to the description of the method embodiments of this application.

[0211] The method provided in this application embodiment allows the server to select a second terminal to establish a communication connection with the first terminal as needed, avoiding the need for the first terminal to establish a communication connection with all terminals participating in the target live streaming service, thus preventing communication congestion and reducing the waste of network bandwidth resources.

[0212] Please see Figure 10 This is a schematic diagram of another data processing apparatus provided in an embodiment of this application. The data processing apparatus can be a computer program (including program code) running on a computer device; for example, the data processing apparatus is application software. The apparatus can be used to execute corresponding steps in the data processing method provided in the embodiments of this application. Figure 10 As shown, the data processing device 3 may include: a request receiving module 31, a first identifier acquisition module 32, a second identifier acquisition module 33, and an identifier sending module 34.

[0213] The request receiving module 31 is used to receive a terminal connection request sent by the first terminal participating in the target live broadcast service;

[0214] The first identifier acquisition module 32 is used to acquire the terminal identifier corresponding to the terminal participating in the target live broadcast service, as a connectable terminal identifier.

[0215] The second identifier acquisition module 33 is used to acquire the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers;

[0216] The identifier sending module 34 is used to send the second terminal identifier to the first terminal so that the first terminal can establish a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list to be associated with the second terminal from the slice file index list, and sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal.

[0217] The specific implementation methods of the request receiving module 31, the first identifier acquisition module 32, the second identifier acquisition module 33, and the identifier sending module 34 can be found in the above description. Figure 6 The descriptions of steps S301-S304 in the corresponding embodiments will not be repeated here.

[0218] Please see Figure 11 This is a schematic diagram of another data processing apparatus provided in an embodiment of this application. The data processing apparatus can be a computer program (including program code) running on a computer device; for example, the data processing apparatus is application software. The apparatus can be used to execute corresponding steps in the data processing method provided in the embodiments of this application. Figure 11 As shown, the data processing device 4 may include: a request receiving module 41, a first identifier acquisition module 42, a second identifier acquisition module 43, and an identifier sending module 44.

[0219] The request receiving module 41 is used to receive a terminal connection request sent by the first terminal participating in the target live broadcast service;

[0220] The first identifier acquisition module 42 is used to acquire the terminal identifier corresponding to the terminal participating in the target live broadcast service, as a connectable terminal identifier.

[0221] The second identifier acquisition module 43 is used to acquire the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers;

[0222] The identifier sending module 44 is used to send the second terminal identifier to the first terminal so that the first terminal can establish a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list to be associated with the second terminal from the slice file index list, and sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal.

[0223] The specific implementation methods of the request receiving module 41, the first identifier acquisition module 42, the second identifier acquisition module 43, and the identifier sending module 44 can be found in the above description. Figure 6The descriptions of steps S301-S304 in the corresponding embodiments will not be repeated here.

[0224] Please see again. Figure 11 The second identifier acquisition module 43 includes: an upper limit determination unit 431, a first acquisition unit 432, and a second acquisition unit 433.

[0225] The upper limit determination unit 431 is used to determine the upper limit number of terminals that the first terminal can establish communication connection relationships in the target live broadcast service;

[0226] The first acquisition unit 432 is used to acquire the number of connected terminals corresponding to the connectable terminal identifier, and to determine the connectable terminal identifier whose number of connected terminals is less than the terminal limit as the terminal identifier to be selected.

[0227] The second acquisition unit 433 is used to acquire S second terminal identifiers from the terminal identifiers to be selected; S is less than or equal to the upper limit of the number of terminals; the terminal corresponding to the second terminal identifier is the second terminal.

[0228] The specific implementation methods of the upper limit determination unit 431, the first acquisition unit 432, and the second acquisition unit 433 can be found in the above description. Figure 6 The description of step S303 in the corresponding embodiment will not be repeated here.

[0229] Please see again. Figure 11 The upper limit determination unit 431 includes: a first estimation subunit 4311, a second estimation subunit 4312, and a determination subunit 4313.

[0230] The first estimation subunit 4311 is used to obtain the object attribute characteristics corresponding to the joined terminal participating in the target live broadcast service, and to obtain the business attribute characteristics of the target live broadcast service.

[0231] The first estimation subunit 4311 is also used to estimate the exit probability of a joined terminal exiting the target live broadcast service within the target time period based on object attribute characteristics and business attribute characteristics, and to estimate the number of joined terminals exiting within the target time period based on the exit probability.

[0232] The second prediction subunit 4312 is used to obtain the popularity characteristics of the target live streaming service and predict the number of new terminals participating in the target live streaming service within the target time period based on the popularity characteristics.

[0233] The determination subunit 4313 is used to determine the upper limit of the number of terminals that the first terminal can establish communication connections in the target live broadcast service based on the number of terminals that have joined, the number of terminals that have left, and the number of new terminals.

[0234] The specific implementation methods of the first prediction subunit 4311, the second prediction subunit 4312, and the determination subunit 4313 can be found in the above description. Figure 6 The description of step S303 in the corresponding embodiment will not be repeated here.

[0235] The number of terminal identifiers to be selected is at least two; S second terminal identifiers are obtained from the terminal identifiers to be selected;

[0236] Please see again. Figure 11 The second acquisition unit 433 includes: a position determination subunit 4331 and an identifier selection subunit 4332.

[0237] The location determination subunit 4331 is used to obtain the first location information of the first terminal and the second location information of the terminals corresponding to at least two terminal identifiers to be selected.

[0238] The identifier selection subunit 4332 is used to obtain the distance information between the first location information and each second location information, sort at least two candidate terminal identifiers according to the distance information, and sequentially obtain S second terminal identifiers from the sorted at least two candidate terminal identifiers.

[0239] The specific implementation methods of the position determination subunit 4331 and the identifier selection subunit 4332 can be found in the above description. Figure 6 The description of step S303 in the corresponding embodiment will not be repeated here.

[0240] The device provided in this application embodiment allows the server to dynamically adjust the upper limit of the number of terminals that can establish communication connections with the first terminal, and to prioritize the acquisition of terminals that are closer to the first terminal or have better network quality as the second terminal. This can avoid delays caused by long-distance communication or poor network quality and speed up the rate at which the terminal obtains the synchronous slice file index list.

[0241] Please see Figure 12 This is a schematic diagram of the structure of another computer device provided in an embodiment of this application. Figure 12As shown, the computer device 2000 may include a processor 2001, a network interface 2004, and a memory 2005. Furthermore, the computer device 2000 may also include a user interface 2003 and at least one communication bus 2002. The communication bus 2002 is used to enable communication between these components. The user interface 2003 may include a display screen and a keyboard; optionally, the user interface 2003 may also include a standard wired interface or a wireless interface. The network interface 2004 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 2004 may be high-speed RAM or non-volatile memory, such as at least one disk drive. The memory 2005 may optionally be at least one storage device located remotely from the processor 2001. Figure 12 As shown, the memory 2005, which is a computer-readable storage medium, may include an operating system, a network communication module, a user interface module, and a device control application program.

[0242] In such Figure 12 In the computer device 2000 shown, the network interface 2004 provides network communication elements; the user interface 2003 is mainly used to provide an input interface for the user; and the processor 2001 can be used to call the device control application program stored in the memory 2005 to achieve:

[0243] Receive terminal connection requests sent by the first terminal participating in the target live streaming service;

[0244] Obtain the terminal identifier corresponding to the terminal participating in the target live streaming service, and use it as the connectable terminal identifier;

[0245] Obtain the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers;

[0246] The second terminal identifier is sent to the first terminal so that the first terminal can establish a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list to be associated with the second terminal from the slice file index list, and sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal.

[0247] It should be understood that the computer device 2000 described in the embodiments of this application can execute the foregoing text. Figure 6 The description of the data processing method in the corresponding embodiments will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated.

[0248] Furthermore, it should be noted that this application also provides a computer-readable storage medium, which stores a computer program executed by the data processing device 3 or data processing device 4 mentioned above. The computer program includes program instructions, and when the processor executes these instructions, it can perform the data processing method described in any of the preceding embodiments. Therefore, further details will not be repeated here. Additionally, the beneficial effects of using the same method will also not be repeated. For technical details not disclosed in the embodiments of the computer-readable storage medium involved in this application, please refer to the description of the method embodiments of this application.

[0249] The aforementioned computer-readable storage medium can be an internal storage unit of the data processing apparatus or computer device provided in any of the foregoing embodiments, such as a hard disk or memory of the computer device. The computer-readable storage medium can also be an external storage device of the computer device, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., provided on the computer device. Furthermore, the computer-readable storage medium can include both internal and external storage units of the computer device. The computer-readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.

[0250] Furthermore, it should be noted that this application also provides a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. The processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the method provided in any of the preceding embodiments.

[0251] The terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the term "comprising," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, apparatus, product, or device that includes a series of steps or units is not limited to the listed steps or modules, but may optionally include steps or modules not listed, or may optionally include other step units inherent to these processes, methods, apparatuses, products, or devices.

[0252] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the foregoing description as a network element. Whether these network elements are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can implement the described network elements using different methods for each specific application, but such implementation should not be considered beyond the scope of this application.

[0253] The above-disclosed embodiments are merely preferred embodiments of this application and should not be construed as limiting the scope of this application. Therefore, any equivalent variations made in accordance with the claims of this application shall still fall within the scope of this application.

Claims

1. A data processing method, characterized in that, include: The first terminal participating in the target live streaming service sends an index list update request to the content distribution server; The first terminal receives a slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to instruct the first terminal to request the first slice media data in the target live streaming service. A synchronized slice file index list associated with the second terminal is determined from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service; the synchronized slice file index list is a slice file index list that the second terminal has not yet requested; The synchronous slice file index list is sent to the second terminal through the communication connection relationship with the second terminal; the synchronous slice file index list is used to instruct the second terminal to request the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data includes the second slice file identifier corresponding to the second slice media data.

2. The method according to claim 1, characterized in that, The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live streaming service. Determining the list of synchronization slice file indexes associated with the second terminal from the slice file index list includes: The first slice file identifier is sent to the second terminal, so that the second terminal determines the slice file identifier that does not belong to the existing slice file index list in the second terminal as the second slice file identifier; Obtain the second slice file download information associated with the second slice file identifier from the first slice file download information; A synchronized slice file index list is generated based on the second slice file identifier and the second slice file download information.

3. The method according to claim 1, characterized in that, The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live streaming service. Determining the list of synchronization slice file indexes associated with the second terminal from the slice file index list includes: Send a file identifier retrieval request to the second terminal; The second terminal receives the target slice file identifier returned by the file identifier acquisition request; the live broadcast order corresponding to the target slice file identifier is after the live broadcast order corresponding to the remaining slice file identifiers; the existing slice file index list in the second terminal includes the target slice file identifier, and the remaining slice file identifiers are the slice file identifiers in the existing slice file index list of the second terminal other than the target slice file identifier; The slice file identifier in the first slice file identifier whose live broadcast order is after the live broadcast order corresponding to the target slice file identifier is determined as the second slice file identifier; Obtain the second slice file download information associated with the second slice file identifier from the first slice file download information; A synchronized slice file index list is generated based on the second slice file identifier and the second slice file download information.

4. The method according to claim 1, characterized in that, Also includes: The timing is calculated from the moment the synchronized slice file index list is sent to the second terminal; If the timing duration reaches the retransmission duration threshold and no confirmation of receipt for the synchronized slice file index list is received from the second terminal, the synchronized slice file index list will be sent to the second terminal again through the communication connection with the second terminal.

5. The method according to claim 1, characterized in that, Also includes: The first terminal participating in the target live streaming service sends a terminal connection request to the terminal management server, so that the terminal management server can obtain the second terminal identifier corresponding to the second terminal from the terminal identifiers corresponding to the terminals participating in the target live streaming service based on the terminal connection request. Receive the second terminal identifier returned by the terminal management server; A communication connection is established between the second terminal identifier and the second terminal.

6. The method according to claim 5, characterized in that, The establishment of a communication connection between the second terminal identifier and the second terminal includes: Send a communication establishment request to the forwarding server; the communication establishment request carries the second terminal identifier; Receive the address probe instruction returned by the forwarding server based on the communication establishment request; The address probe data packet is sent to the address probe server according to the address probe instruction, and the communication address and port address for the first terminal are returned by the address probe server. The communication address and port address for the first terminal are sent to the forwarding server, so that the forwarding server forwards the communication address and port address for the first terminal to the second terminal according to the second terminal identifier; Receive the first communication packet sent by the second terminal based on the communication address and port address of the first terminal; Receive the communication address and port address for the second terminal sent by the forwarding server, and send a second communication packet to the second terminal based on the communication address and port address for the second terminal; When the first communication packet is successfully received and the second communication packet is successfully sent, it is determined that a communication connection has been successfully established between the device and the second terminal.

7. The method according to claim 1, characterized in that, The method further includes: Determine the number of communication terminals of the second terminal; When the number of communication terminals is at least two and the number of communication terminals is less than or equal to a quantity threshold, the index list update frequency is determined to be the first update frequency; the index list update frequency is used to indicate the frequency at which the first terminal sends an index list update request. When the number of communication terminals is at least two and the number of communication terminals is greater than the number threshold, the index list update frequency is determined to be the second update frequency; the first update frequency is greater than the second update frequency.

8. The method according to claim 1, characterized in that, Also includes: Receive a target synchronized slice file index list sent by a third terminal; the third terminal has a communication connection with the first terminal; The third terminal is a terminal that participates in the target live streaming service; Determine the broadcast synchronization slice file index list associated with the fourth terminal from the target synchronization slice file index list; The fourth terminal has a communication connection with the first terminal; the fourth terminal does not have a communication connection with the third terminal; the fourth terminal is a terminal participating in the target live streaming service. The broadcast synchronization slice file index list is sent to the fourth terminal through the communication connection with the fourth terminal.

9. A data processing method, characterized in that, include: Receive terminal connection requests sent by the first terminal participating in the target live streaming service; Obtain the terminal identifier corresponding to the terminal participating in the target live streaming service, and use it as the connectable terminal identifier; From the connectable terminal identifiers, obtain the second terminal identifier corresponding to the second terminal; The second terminal identifier is sent to the first terminal so that the first terminal establishes a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains the slice file index list from the content distribution server, it determines the synchronous slice file index list associated with the second terminal from the slice file index list. The first terminal sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal. The second terminal is a terminal participating in the target live broadcast service. The synchronous slice file index list is a slice file index list that the second terminal has not yet requested.

10. The method according to claim 9, characterized in that, Obtaining the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers includes: Determine the upper limit of the number of terminals that the first terminal can establish communication connections with in the target live streaming service; Obtain the number of connected terminals corresponding to the connectable terminal identifier, and determine the connectable terminal identifiers whose number of connected terminals is less than the terminal upper limit as terminal identifiers to be selected. S second terminal identifiers are obtained from the terminal identifiers to be selected; S is less than or equal to the upper limit of the number of terminals; the terminal corresponding to the second terminal identifier is the second terminal.

11. The method according to claim 10, characterized in that, Determining the upper limit of the number of terminals that the first terminal can establish communication connections with in the target live streaming service includes: Obtain the object attribute characteristics corresponding to the joined terminals participating in the target live streaming service, and obtain the business attribute characteristics of the target live streaming service; Based on the object attribute characteristics and the business attribute characteristics, the probability of the joined terminal leaving the target live broadcast service within the target time period is estimated, and the number of the joined terminal leaving the target live broadcast service within the target time period is estimated based on the exit probability. Obtain the popularity characteristics of the target live streaming service, and estimate the number of new terminals participating in the target live streaming service within the target time period based on the popularity characteristics; Based on the number of terminals that have joined, the number of terminals that have left, and the number of newly added terminals, the upper limit of the number of terminals that the first terminal can establish communication connections with in the target live streaming service is determined.

12. The method according to claim 10, characterized in that, The number of terminal identifiers to be selected is at least two; obtaining S second terminal identifiers from the terminal identifiers to be selected includes: Obtain the first location information of the first terminal, and obtain the second location information of the terminals corresponding to at least two terminal identifiers to be selected; Obtain the distance information between the first location information and each second location information, sort the at least two candidate terminal identifiers according to the distance information, and sequentially obtain S second terminal identifiers from the sorted at least two candidate terminal identifiers.

13. A data processing apparatus, characterized in that, The data processing device is applied to a first terminal participating in the target live streaming service, and the data processing device includes: The request module is used to send index list update requests to the content delivery server; The first receiving module is configured to receive the slice file index list returned by the content distribution server based on the index list update request; the slice file index list is used to instruct the first terminal to request the acquisition of the first slice media data in the target live streaming service; The first synchronization module is used to determine a synchronized slice file index list associated with the second terminal from the slice file index list; the second terminal has a communication connection with the first terminal; the second terminal is a terminal participating in the target live broadcast service; the synchronized slice file index list is a slice file index list that the second terminal has not yet requested; The first sending module is used to send the synchronous slice file index list to the second terminal through a communication connection with the second terminal; the synchronous slice file index list is used to instruct the second terminal to request the acquisition of the second slice media data in the target live broadcast service; the first slice file identifier corresponding to the first slice media data includes the second slice file identifier corresponding to the second slice media data.

14. The apparatus according to claim 13, characterized in that, The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live streaming service. The first synchronization module includes: The first synchronization unit is used to send the first slice file identifier to the second terminal, so that the second terminal determines the slice file identifier that does not belong to the existing slice file index list in the second terminal as the second slice file identifier; The first synchronization unit is further configured to obtain second slice file download information associated with the second slice file identifier from the first slice file download information; The first synchronization unit is further configured to generate a synchronized slice file index list based on the second slice file identifier and the second slice file download information.

15. The apparatus according to claim 13, characterized in that, The slice file index list includes a first slice file identifier and first slice file download information associated with the first slice file identifier; the first slice file download information is used to instruct the first terminal to request the first slice media data corresponding to the first slice file identifier in the target live streaming service. The first synchronization module includes: The second synchronization unit is used to send a file identifier acquisition request to the second terminal; The second synchronization unit is further configured to receive a target slice file identifier returned by the second terminal based on the file identifier acquisition request; the live broadcast order corresponding to the target slice file identifier is after the live broadcast order corresponding to the remaining slice file identifiers; the existing slice file index list in the second terminal includes the target slice file identifier, and the remaining slice file identifiers are slice file identifiers other than the target slice file identifier in the existing slice file index list in the second terminal; The second synchronization unit is further configured to determine the slice file identifier in the first slice file identifier whose live broadcast order is after the live broadcast order corresponding to the target slice file identifier as the second slice file identifier; The second synchronization unit is further configured to obtain second slice file download information associated with the second slice file identifier from the first slice file download information; The second synchronization unit is further configured to generate a synchronized slice file index list based on the second slice file identifier and the second slice file download information.

16. The apparatus according to claim 13, characterized in that, Also includes: The timing retransmission module is used to start timing from the moment the synchronized slice file index list is sent to the second terminal, and obtain the timing duration. The timing retransmission module is further configured to, if the timing duration reaches the retransmission duration threshold and no confirmation of receipt information for the synchronous slice file index list is received from the second terminal, then retransmit the synchronous slice file index list to the second terminal through the communication connection with the second terminal.

17. The apparatus according to claim 13, characterized in that, Also includes: The identifier acquisition module is used to send a terminal connection request to the terminal management server from the terminal identifiers corresponding to the terminals participating in the target live broadcast service, so that the terminal management server can obtain the second terminal identifier corresponding to the second terminal from the terminal identifiers corresponding to the terminals participating in the target live broadcast service based on the terminal connection request. The identifier acquisition module is further configured to receive the second terminal identifier returned by the terminal management server; The connection establishment module is used to establish a communication connection relationship with the second terminal through the second terminal identifier.

18. The apparatus according to claim 17, characterized in that, The connection establishment module includes: A connection request unit is used to send a communication establishment request to a forwarding server; the communication establishment request carries the second terminal identifier; The address sending unit is used to receive the address detection instruction returned by the forwarding server based on the communication establishment request; The address acquisition unit is used to send an address probe data packet to the address probe server according to the address probe instruction, and receive the communication address and port address returned by the address probe server for the first terminal; A connection unit is configured to send the communication address and port address for the first terminal to a forwarding server, so that the forwarding server forwards the communication address and port address for the first terminal to the second terminal according to the second terminal identifier; The connection unit is further configured to receive a first communication packet sent by the second terminal based on the communication address and port address of the first terminal; The connection unit is further configured to receive the communication address and port address for the second terminal sent by the forwarding server, and send a second communication packet to the second terminal based on the communication address and port address for the second terminal; The connection unit is further configured to determine that a communication connection has been successfully established with the second terminal when the first communication packet is successfully received and the second communication packet is successfully sent.

19. The apparatus according to claim 13, characterized in that, Also includes: The quantity determination module is used to determine the number of communication terminals of the second terminal; The frequency determination module is used to determine the index list update frequency as a first update frequency when the number of communication terminals is at least two and the number of communication terminals is less than or equal to a quantity threshold; the index list update frequency is used to indicate the frequency at which the first terminal sends an index list update request. The frequency determination module is further configured to determine the index list update frequency as a second update frequency when the number of communication terminals is at least two and the number of communication terminals is greater than the number threshold; the first update frequency is greater than the second update frequency.

20. The apparatus according to claim 13, characterized in that, Also includes: The second receiving module is used to receive the target synchronization slice file index list sent by the third terminal; The third terminal has a communication connection with the first terminal; The third terminal is a terminal that participates in the target live streaming service; The second synchronization module is used to determine the broadcast synchronization slice file index list associated with the fourth terminal from the target synchronization slice file index list; The fourth terminal has a communication connection with the first terminal; the fourth terminal does not have a communication connection with the third terminal; the fourth terminal is a terminal participating in the target live streaming service. The second sending module is used to send the broadcast synchronization slice file index list to the fourth terminal through the communication connection relationship with the fourth terminal.

21. A data processing apparatus, characterized in that, include: The request receiving module is used to receive terminal connection requests sent by the first terminal participating in the target live streaming service; The first identifier acquisition module is used to acquire the terminal identifier corresponding to the terminal participating in the target live broadcast service, as a connectable terminal identifier. The second identifier acquisition module is used to acquire the second terminal identifier corresponding to the second terminal from the connectable terminal identifiers; An identifier sending module is used to send the second terminal identifier to the first terminal, so that the first terminal establishes a communication connection with the second terminal through the second terminal identifier. When the first terminal obtains a slice file index list from the content distribution server, it determines a synchronous slice file index list associated with the second terminal from the slice file index list, and the first terminal sends the synchronous slice file index list to the second terminal through the communication connection with the second terminal; the second terminal is a terminal participating in the target live broadcast service; the synchronous slice file index list is a slice file index list that the second terminal has not yet requested.

22. The apparatus according to claim 21, characterized in that, The second identifier acquisition module includes: The upper limit determination unit is used to determine the upper limit number of terminals that the first terminal can establish communication connection relationships in the target live broadcast service; The first acquisition unit is used to acquire the number of connected terminals corresponding to the connectable terminal identifier, and to determine the connectable terminal identifier whose number of connected terminals is less than the upper limit of the number of terminals as the terminal identifier to be selected. The second acquisition unit is used to acquire S second terminal identifiers from the terminal identifiers to be selected; S is less than or equal to the upper limit of the number of terminals; the terminal corresponding to the second terminal identifier is a second terminal.

23. The apparatus according to claim 22, characterized in that, The upper limit determination unit includes: The first estimation subunit is used to obtain the object attribute features corresponding to the joined terminals participating in the target live streaming service, and to obtain the business attribute features of the target live streaming service. The first estimation subunit is further configured to estimate the exit probability of the joined terminal exiting the target live broadcast service within the target time period based on the object attribute characteristics and the business attribute characteristics, and to estimate the number of the joined terminal exiting within the target time period based on the exit probability; The second estimation subunit is used to obtain the popularity characteristics of the target live streaming service and estimate the number of new terminals participating in the target live streaming service within the target time period based on the popularity characteristics. The determining subunit is used to determine the upper limit of the number of terminals that the first terminal can establish communication connections with in the target live streaming service, based on the number of terminals that have joined, the number of terminals that have left, and the number of newly added terminals.

24. The apparatus according to claim 22, characterized in that, The number of terminal identifiers to be selected is at least two; the second acquisition unit includes: The location determination subunit is used to obtain the first location information of the first terminal and the second location information of the terminals corresponding to at least two candidate terminal identifiers. The identifier selection subunit is used to obtain the distance information between the first location information and each second location information, sort the at least two candidate terminal identifiers according to the distance information, and sequentially obtain S second terminal identifiers from the sorted at least two candidate terminal identifiers.

25. A computer device, characterized in that, include: Processor, memory, and network interface; The processor is connected to the memory and the network interface, wherein the network interface is used to provide data communication functions, the memory is used to store computer programs, and the processor is used to call the computer programs to execute the method according to any one of claims 1-12.

26. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program adapted to be loaded by a processor and to execute the method of any one of claims 1-12.

27. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they can perform the method described in any one of claims 1-12.