Film downloading management method, electronic equipment and storage medium

By splitting tasks based on instructions and file categories and adjusting the number of tasks in the thread pool during video file downloads, the problem of download progress stalling was solved, improving download efficiency and user experience.

CN121509735APending Publication Date: 2026-02-10HISENSE VISUAL TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202411082792.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-07
Publication Date
2026-02-10

AI Technical Summary

Technical Problem

During the download of a movie file, the projector may receive both local and remote commands simultaneously, causing the download progress to stall and affecting the user experience.

Method used

By receiving download instructions, determining the instruction type and file type, splitting them into multiple download subtasks, and adjusting the number of tasks in the thread pool according to task priority and network speed, the download subtasks are executed in parallel.

Benefits of technology

This effectively avoids download progress stalls caused by a large number of download commands from one side, improving the efficiency of movie file downloads and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121509735A_ABST
    Figure CN121509735A_ABST
Patent Text Reader

Abstract

The invention provides a film downloading management method, electronic equipment and a storage medium, and relates to the technical field of communication. The film downloading management method comprises the following steps: receiving at least one downloading instruction, and determining an instruction category of each downloading instruction; one downloading instruction is used for indicating to download a plurality of film files corresponding to one film; splitting the downloading instruction into a plurality of downloading subtasks according to the instruction category and the file category of the film file; one downloading subtask corresponds to one file category; determining the task number of the downloading subtasks executed in parallel by the thread pool corresponding to each downloading subtask; and putting each downloading subtask into the corresponding thread pool, and controlling the thread pool to execute the downloading subtasks in parallel according to the corresponding task quantity so as to download the film file. According to the method, the use experience can be improved by balancing the downloading progress of the film file.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method for managing video downloads, an electronic device, and a storage medium. Background Technology

[0002] In certain scenarios, the downloading of film files in projectors can be controlled by local instructions issued by staff or remote instructions issued by the broadcasting center. For example, in the screening of public service films, multiple projectors can be centrally controlled by the remote broadcasting center to download and screen the same public service film, or local staff can freely arrange the downloading and playback of public service films. This allows both parties to flexibly control the method of downloading film files, improving the efficiency of film download management and emergency response capabilities.

[0003] However, in such scenarios, the projector might receive both local and remote instructions for downloading movie files within a short period. Current movie file download solutions typically involve the projector downloading the corresponding movie files based on the order in which the download instructions are received. This can lead to a backlog of download files, regardless of whether a large number of local or remote instructions are received first, causing the download progress of the other side to stall, severely impacting the user experience. Summary of the Invention

[0004] To address the aforementioned technical issues, this application provides a method for managing video downloads, an electronic device, and a storage medium that can improve the user experience by balancing the download progress of video files.

[0005] In a first aspect, this application provides an electronic device, comprising: a communicator configured to receive at least one download instruction; a processor configured to: determine the instruction category of each download instruction received by the communicator, and split the download instruction into multiple download subtasks according to the instruction category and the file category of the video file; a download instruction is used to instruct the download of multiple video files corresponding to a video; a download subtask corresponds to a file category; determine a thread pool corresponding to each download subtask, determine the number of tasks to execute the download subtasks in parallel, and place each download subtask into the corresponding thread pool; and a controller configured to control the thread pool to execute the download subtasks in parallel according to the number of tasks determined by the processor to download the video file.

[0006] In some embodiments, the processor is specifically configured to: determine the instruction type of the download instruction as a local instruction when the source of the download instruction is a local front-end; and determine the instruction type of the download instruction as a remote instruction when the source of the download instruction is a remote network.

[0007] In some embodiments, the instruction categories include remote instructions and local instructions; the file categories include Digital Cinema Data Package (DCP) files, Key Transfer Message (KDM) files, and non-essential files; the processor is specifically configured to: when the download instruction includes only local instructions, split the download instruction into local instructions for the DCP file, local instructions for the KDM file, and local instructions for the non-essential file; when the download instruction includes only remote instructions, split the download instruction into remote instructions for the DCP file, remote instructions for the KDM file, and remote instructions for the non-essential file; when the download instruction includes both remote and local instructions, split the download instruction into local instructions for the DCP file, remote instructions for the DCP file, local instructions for the KDM file, remote instructions for the KDM file, local instructions for the non-essential file, and remote instructions for the non-essential file.

[0008] In some embodiments, the processor is specifically configured to: determine the task priority of each download subtask; and determine the number of tasks in each thread pool to execute the download subtask in parallel based on the task priority.

[0009] In some embodiments, the processor is specifically configured such that: when the download subtask includes local instructions for the DCP file, local instructions for the KDM file, and local instructions for non-essential files, the task priority is: local instructions for the DCP file > local instructions for the KDM file ≥ local instructions for non-essential files; when the download subtask includes remote instructions for the DCP file, remote instructions for the KDM file, and remote instructions for non-essential files, the task priority is: remote instructions for the DCP file > remote instructions for the KDM file ≥ remote instructions for non-essential files; when the download subtask includes local instructions for the DCP file, remote instructions for the DCP file, local instructions for the KDM file, remote instructions for the KDM file, local instructions for non-essential files, and remote instructions for non-essential files, the task priority is: local instructions for the DCP file ≥ remote instructions for the DCP file > local instructions for the KDM file ≥ remote instructions for the KDM file ≥ local instructions for non-essential files ≥ remote instructions for non-essential files.

[0010] In some embodiments, the processor is further configured to: obtain the current network speed and adjust the number of tasks corresponding to each thread pool in real time according to the network speed.

[0011] In some embodiments, the processor is specifically configured to: reduce the number of tasks corresponding to each thread pool to an integer value corresponding to a first percentage of the number of tasks when the network speed is less than a first threshold; and increase the number of tasks corresponding to each thread pool to an integer value corresponding to a second percentage of the number of tasks when the network speed is greater than a second threshold; wherein the second threshold is greater than the first threshold.

[0012] In some embodiments, the electronic device further includes a display; the instruction categories include remote instructions and local instructions; a communicator is further configured to obtain the current number of download subtasks in a target thread pool for a target subtask; the target thread pool is the thread pool corresponding to the target subtask, and the target subtask is any download subtask; a processor is specifically configured to place the target subtask into the target thread pool when it is determined based on the current number that the target thread pool is not full; a controller is further configured to control the display to display a prompt message when it is determined based on the current number that the target thread pool is full and the target subtask is a category under a local instruction; the prompt message is used to indicate that the current download queue is full; and the processor is specifically configured to wait for a download subtask in the target thread pool to complete before placing the target subtask into the target thread pool when it is determined based on the current number that the target thread pool is full and the target subtask is a category under a remote instruction.

[0013] In some embodiments, the electronic device further includes a display; the instruction categories include remote instructions and local instructions; the display is configured to: when the download instruction includes a local instruction, after the controller controls the thread pool to execute download subtasks in parallel according to the number of tasks determined by the processor, display the download progress of the video file corresponding to the target video; the target video is the video requested for download by the local instruction.

[0014] Secondly, this application provides a method for managing the download of movies, including: receiving at least one download instruction and determining the instruction category of each download instruction; a download instruction is used to instruct the download of multiple movie files corresponding to a movie; according to the instruction category and the file category of the movie files, the download instruction is split into multiple download sub-tasks; one download sub-task corresponds to one file category; the number of tasks for parallel execution of the download sub-task in the thread pool corresponding to each download sub-task is determined; each download sub-task is placed into the corresponding thread pool, and the thread pool is controlled to execute the download sub-tasks in parallel according to the corresponding number of tasks to download the movie files.

[0015] In some embodiments, determining the instruction category of each download instruction includes: determining the instruction category of the download instruction based on the source of the download instruction.

[0016] In some embodiments, determining the instruction category of a download instruction based on its source includes: determining the instruction category of a download instruction as a local instruction when the source of the download instruction is a local frontend; and determining the instruction category of a download instruction as a remote instruction when the source of the download instruction is a remote network.

[0017] In some embodiments, the instruction categories include remote instructions and local instructions; the file categories include Digital Cinema Data Package (DCP) files, Key Transfer Message (KDM) files, and non-essential files; based on the instruction category and the file category of the movie file, the download instruction is split into multiple download subtasks, including: if the download instruction includes only local instructions, splitting the download instruction into local instructions for the DCP file, local instructions for the KDM file, and local instructions for the non-essential file; if the download instruction includes only remote instructions, splitting the download instruction into remote instructions for the DCP file, remote instructions for the KDM file, and remote instructions for the non-essential file; if the download instruction includes both remote and local instructions, splitting the download instruction into local instructions for the DCP file, remote instructions for the DCP file, local instructions for the KDM file, remote instructions for the KDM file, local instructions for the non-essential file, and remote instructions for the non-essential file.

[0018] In some embodiments, determining the number of tasks for each download subtask to be executed in parallel by the thread pool includes: determining the task priority of each download subtask; and determining the number of tasks for each thread pool to be executed in parallel based on the task priority.

[0019] In some embodiments, determining the task priority of each download subtask includes: when the download subtask includes local instructions for a DCP file, local instructions for a KDM file, and local instructions for a non-essential file, the task priority is: local instructions for the DCP file > local instructions for the KDM file ≥ local instructions for the non-essential file; when the download subtask includes remote instructions for a DCP file, remote instructions for a KDM file, and remote instructions for a non-essential file, the task priority is: remote instructions for the DCP file > remote instructions for a KDM file ≥ remote instructions for the non-essential file; when the download subtask includes local instructions for a DCP file, remote instructions for a DCP file, local instructions for a KDM file, remote instructions for a KDM file, local instructions for a non-essential file, and remote instructions for a non-essential file, the task priority is: local instructions for a DCP file ≥ remote instructions for a DCP file > local instructions for a KDM file ≥ remote instructions for a KDM file ≥ local instructions for a non-essential file ≥ remote instructions for a non-essential file.

[0020] In some embodiments, after determining the number of tasks for each thread pool to execute download subtasks in parallel based on task priority, the method further includes: obtaining the current network speed and adjusting the number of tasks corresponding to each thread pool in real time based on the network speed.

[0021] In some embodiments, adjusting the number of tasks corresponding to each thread pool in real time according to network speed includes: when the network speed is less than a first threshold, reducing the number of tasks corresponding to each thread pool to an integer value corresponding to a first percentage of the number of tasks; when the network speed is greater than a second threshold, increasing the number of tasks corresponding to each thread pool to an integer value corresponding to a second percentage of the number of tasks; the second threshold is greater than the first threshold.

[0022] In some embodiments, the instruction categories include remote instructions and local instructions; placing each download subtask into its corresponding thread pool includes: for the target subtask, obtaining the current number of download subtasks in the target thread pool; the target thread pool is the thread pool corresponding to the target subtask, and the target subtask is any download subtask; when it is determined that the target thread pool is not full based on the current number, placing the target subtask into the target thread pool; when it is determined that the target thread pool is full based on the current number, and the target subtask belongs to the category of local instructions, displaying a prompt message; the prompt message is used to indicate that the current download queue is full; when it is determined that the target thread pool is full based on the current number, and the target subtask belongs to the category of remote instructions, waiting for one download subtask in the target thread pool to complete before placing the target subtask into the target thread pool.

[0023] In some embodiments, the instruction categories include remote instructions and local instructions; after controlling the thread pool to download the movie file in parallel according to the corresponding number of tasks, the method further includes: when the download instruction includes a local instruction, displaying the download progress of the movie file corresponding to the target movie; the target movie is the movie requested to be downloaded by the local instruction.

[0024] Thirdly, this application provides a computer-readable storage medium, including: storing a computer program on the computer-readable storage medium, which, when executed by a computing device, causes the computing device to perform a video download management method as provided in any embodiment of the second aspect.

[0025] Fourthly, this application provides a computer program product that, when run on a computer, causes the computer to execute a video download management method as provided in any embodiment of the second aspect.

[0026] The technical solution provided in this application has the following advantages compared with the prior art: First, it receives at least one download instruction and determines the instruction category of each download instruction. A download instruction instructs the download of multiple video files corresponding to a single video. Then, based on the instruction category and the file category of the video files, the download instruction is divided into multiple download sub-tasks, and the number of tasks to be executed concurrently in a thread pool corresponding to each download sub-task is determined. Each download sub-task corresponds to one file category. Finally, each download sub-task is placed into its corresponding thread pool, and the thread pool is controlled to execute the download sub-tasks concurrently according to the corresponding number of tasks to download the video files. In this way, by dividing the received download instructions into corresponding thread pools based on the instruction category and the file category of the video files, and controlling the number of concurrent processing tasks for each type of download sub-task in the thread pool, the download sub-tasks can be processed according to the specific circumstances of the download instructions and video files. This avoids the problem of the download progress of one side stalling due to a large number of download instructions received first, thus improving the user experience. Attached Figure Description

[0027] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0028] 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, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0029] Figure 1 A schematic diagram of the application scenario architecture for a video download management method provided in this application embodiment;

[0030] Figure 2 A schematic diagram of a hardware configuration of an electronic device provided in an embodiment of this application;

[0031] Figure 3 A schematic diagram of the software configuration of an electronic device provided in an embodiment of this application;

[0032] Figure 4 One of the flowcharts illustrating the video download management method provided in this application embodiment;

[0033] Figure 5 A schematic diagram illustrating an application scenario of a video download management method provided in this application embodiment;

[0034] Figure 6A second schematic flowchart illustrating the video download management method provided in this application embodiment;

[0035] Figure 7 The third flowchart illustrating the video download management method provided in this application embodiment;

[0036] Figure 8 The fourth flowchart illustrating the video download management method provided in this application embodiment;

[0037] Figure 9 Fifth flowchart illustrating the video download management method provided in this application embodiment;

[0038] Figure 10 A flowchart illustrating the video download management method provided in this application embodiment is shown in Figure 6.

[0039] Figure 11 The seventh flowchart illustrating the video download management method provided in this application embodiment;

[0040] Figure 12 This is one of the schematic diagrams of the display interface provided in the embodiments of this application;

[0041] Figure 13 This is a second schematic diagram of the display interface provided in the embodiments of this application;

[0042] Figure 14 This is the third schematic diagram of the display interface provided in the embodiments of this application;

[0043] Figure 15 This is the fourth schematic diagram of the display interface provided in the embodiments of this application;

[0044] Figure 16 This is a schematic diagram of a chip system provided in an embodiment of this application. Detailed Implementation

[0045] To make the objectives and implementation methods of this application clearer, the exemplary implementation methods of this application will be clearly and completely described below with reference to the accompanying drawings of the exemplary embodiments of this application. Obviously, the exemplary embodiments described are only some embodiments of this application, and not all embodiments.

[0046] It should be noted that the brief descriptions of terms in this application are only for the convenience of understanding the embodiments described below, and are not intended to limit the embodiments of this application. Unless otherwise stated, these terms should be understood in their ordinary and common meaning.

[0047] The terms "first," "second," "third," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar or related objects or entities, and do not necessarily imply a specific order or sequence, unless otherwise specified. It should be understood that such terms are interchangeable where appropriate.

[0048] The terms “comprising” and “having”, and any variations thereof, are intended to cover but not exclude inclusion, for example, a product or device that includes a range of components is not necessarily limited to all of the components that are clearly listed, but may include other components that are not clearly listed or that are inherent to such product or device.

[0049] The electronic device provided in this application embodiment can act as a proxy terminal to establish a communication connection with a remote broadcasting platform and server to realize the method of downloading and managing movies. The electronic device can have various implementation forms, such as a projector, laser movie player, mobile phone, computer, tablet computer, television, smart TV, laser projection equipment, monitor, electronic bulletin board, electronic table, etc.

[0050] Figure 1 This is a schematic diagram illustrating the application scenario architecture of the video download management method provided in this application embodiment. For example... Figure 1 As shown, it includes a server 100, an electronic device 200, and a remote broadcasting platform 300.

[0051] In some embodiments, electronic device 200 can communicate with server 100 and remote broadcasting platform 300. Electronic device 200 may communicate with server 100 and remote broadcasting platform 300 via local area network (LAN), wireless local area network (WLAN), and other networks. Server 100 and remote broadcasting platform 300 can provide various content and interactive features to electronic device 200. For example, server 100 can provide various movie files for electronic device 200 to download. As another example, remote broadcasting platform 300 can control electronic device 200 to download movie files from server 100 by sending remote commands to electronic device 200. Server 100 can be a cluster or multiple clusters, and may include one or more types of servers.

[0052] The video download management method provided in this application embodiment can be executed by the aforementioned electronic device 200. The electronic device 200 receives at least one download instruction and determines the instruction category of each download instruction; one download instruction is used to instruct the download of multiple video files corresponding to a video; according to the instruction category and the file category of the video files, the download instruction is split into multiple download sub-tasks; one download sub-task corresponds to one file category; the number of tasks for parallel execution of each download sub-task in the corresponding thread pool is determined; each download sub-task is placed in its corresponding thread pool, and the thread pool is controlled to execute the download sub-tasks in parallel according to the corresponding number of tasks to download the video files. This method can classify and process download sub-tasks according to the specific circumstances of the download instructions and video files, avoiding the problem of the download progress of one side stalling due to receiving a large number of download instructions from the other side, thus improving the user experience.

[0053] Figure 2 This is a schematic diagram of the software configuration of an electronic device 200 provided in an embodiment of this application, such as... Figure 2 As shown, the electronic device 200 includes at least one of the following: a tuner / demodulator 210, a communicator 220, a detector 230, an external device interface 240, a controller 250, a display 260, an audio output interface 270, a memory, a power supply, and a user interface.

[0054] The display 260 includes a display screen assembly for presenting images, a driving assembly for driving image display, a component for receiving image signals from the controller output, and a user control UI interface for displaying video content, image content, menu control interface, and user control UI interface.

[0055] The display 260 can be an LCD display, an OLED display, or a projection display, and can also be a projection device and a projection screen.

[0056] The communicator 220 is a component used to communicate with external devices or servers according to various communication protocol types. For example, the communicator may include at least one of the following: a Wi-Fi module, a Bluetooth module, a wired Ethernet module, other network communication protocol chips or near-field communication protocol chips, and an infrared receiver. The electronic device 200 can establish the transmission and reception of control signals and data signals with the remote broadcasting platform 300 or the server 100 through the communicator 220.

[0057] The user interface can be used to receive control signals input by the user through a control device (such as an infrared remote control) or by touch or gesture.

[0058] Detector 230 is used to collect signals from the external environment or to interact with the external environment. For example, detector 230 includes a sound collector, such as a microphone, for receiving external sounds; or, detector 230 includes a light receiver, such as a sensor for collecting ambient light intensity; or, detector 230 includes an image collector, such as a camera, which can be used to collect external environmental scenes, user attributes, or user interaction gestures.

[0059] The external device interface 240 may include, but is not limited to, one or more of the following: High Definition Multimedia Interface (HDMI), analog or high-definition component input interface (component), composite video input interface (CVBS), USB input interface (USB), RGB port, etc. It may also be a composite input / output interface formed by multiple interfaces mentioned above.

[0060] The tuner / demodulator 210 receives broadcast television signals via wired or wireless means, and demodulates audio and video signals, such as EPG data signals, from multiple wireless or wired broadcast television signals.

[0061] In some embodiments, the controller 250 and the tuner 210 may be located in different separate devices, that is, the tuner 210 may also be located in an external device of the main device where the controller 250 is located, such as an external set-top box.

[0062] The controller 250 controls the operation of the electronic device 200 and responds to user operations through various software control programs stored in the memory. The controller 250 controls the overall operation of the electronic device 200. For example, in response to receiving a user command to select a UI object to display on the display 260, the controller 250 can execute operations related to the object selected by the user command.

[0063] In some embodiments, the controller 250 includes at least one of a central processing unit (CPU), a video processor, an audio processor, a graphics processing unit (GPU), RAM (random access memory), ROM (read-only memory), a first to an nth interface for input / output, a communication bus, etc.

[0064] Users can input commands through a graphical user interface (GUI) displayed on the monitor 260, and the user input interface receives the user input commands through the GUI. Alternatively, users can input commands by entering specific sounds or gestures, and the user input interface receives the user input commands by recognizing the sounds or gestures through sensors.

[0065] The audio output interface 270 is used to output audio signals externally. For example, the audio output interface 270 can be connected to an internal speaker to play audio from the electronic device 200; or, the audio output interface 270 can also be connected to an external speaker output terminal to play audio from the electronic device 200.

[0066] See Figure 3 In some embodiments, the operating system of the electronic device 200 is divided into four layers, from top to bottom: the Applications layer (hereinafter referred to as the "Application Layer"), the Application Framework layer (hereinafter referred to as the "Framework Layer"), the Android runtime and system library layer (hereinafter referred to as the "System Runtime Library Layer"), and the kernel layer.

[0067] In some embodiments, at least one application runs in the application layer. These applications may be Windows programs, system settings programs, or clock programs that come with the operating system; they may also be applications developed by third-party developers. In specific implementations, the application packages in the application layer are not limited to the examples above.

[0068] The framework layer provides application programming interfaces (APIs) and a programming framework for applications. The application framework layer includes predefined functions. It acts as a central processing unit, determining the actions taken by applications within the application layer. Through the API, applications can access system resources and obtain system services during execution.

[0069] like Figure 3 As shown, the application framework layer in this embodiment includes managers, content providers, etc., wherein the managers include at least one of the following modules: ActivityManager, which interacts with all activities running in the system; LocationManager, which provides access to system location services for system services or applications; PackageManager, which retrieves various information related to applications currently installed on the device; NotificationManager, which controls the display and clearing of notification messages; and WindowManager, which manages icons, windows, toolbars, wallpapers, and desktop widgets on the user interface.

[0070] In some embodiments, the Activity Manager manages the lifecycle of individual applications and common navigation and back functions, such as controlling application exit, opening, and back actions. The Window Manager manages all window programs, such as obtaining the screen size, determining if a status bar is present, locking the screen, capturing the screen, and controlling display window changes (e.g., shrinking the display window, shaking the display, distorting the display, etc.).

[0071] In some embodiments, the system runtime library layer provides support for the upper layer, namely the framework layer. When the framework layer is used, the Android operating system runs the C / C++ libraries contained in the system runtime library layer to implement the functions that the framework layer needs to perform.

[0072] In some embodiments, the kernel layer is a layer between hardware and software. For example... Figure 3 As shown, the kernel layer includes at least one of the following drivers: audio driver, display driver, Bluetooth driver, camera driver, WIFI driver, USB driver, HDMI driver, sensor driver (such as fingerprint sensor, temperature sensor, pressure sensor, etc.), and power driver.

[0073] In some embodiments, the communicator 220 of the electronic device 200 receives at least one download instruction. The processor of the electronic device 200 determines the instruction category of each download instruction received by the communicator 220, and splits the download instruction into multiple download subtasks according to the instruction category and the file category of the video file; one download instruction is used to instruct the download of multiple video files corresponding to a video; one download subtask corresponds to one file category; a thread pool corresponding to each download subtask is determined, the number of tasks to be executed in parallel for each download subtask is determined, and each download subtask is placed into its corresponding thread pool; the controller 250 of the electronic device 200 controls the thread pool to execute the download subtasks in parallel according to the number of tasks determined by the processor, so as to download the video file. In this way, the download subtasks can be classified and processed according to the specific circumstances of the download instruction and the video file, avoiding the problem that the download progress of the other party will be stalled when a large number of download instructions are received from one party first, thus improving the user experience.

[0074] In some embodiments, the processor of the electronic device 200 determines the download instruction type as a local instruction when the download instruction originates from a local front-end, and as a remote instruction when the download instruction originates from a remote network. This allows for the categorization and processing of download subtasks based on the source of the download instruction, avoiding the problem of download progress stalling on one side due to a large number of download instructions received from the other side, thus improving the user experience.

[0075] In some embodiments, the instruction categories include remote instructions and local instructions; the file categories include Digital Cinema Data Package (DCP) files, Key Transfer Message (KDM) files, and non-essential files; when the download instruction only includes local instructions, the processor of the electronic device 200 splits the download instruction into local instructions for DCP files, local instructions for KDM files, and local instructions for non-essential files; when the download instruction only includes remote instructions, it splits the download instruction into remote instructions for DCP files, remote instructions for KDM files, and remote instructions for non-essential files; when the download instruction includes both remote and local instructions, it splits the download instruction into local instructions for DCP files, remote instructions for DCP files, local instructions for KDM files, remote instructions for KDM files, local instructions for non-essential files, and remote instructions for non-essential files. This allows for the classification and processing of download subtasks based on the importance of the movie files, avoiding the problem of the download progress of one side stalling due to receiving a large number of download instructions from the other side, thus improving the user experience.

[0076] In some embodiments, the processor of the electronic device 200 determines the task priority of each download subtask; and determines the number of download subtasks to be executed in parallel by each thread pool based on the task priority. This allows the number of tasks to be executed in parallel by the corresponding thread pool to be determined based on the task priority of the download subtasks, making the determined number of tasks in the thread pool more realistic. This helps optimize the allocation of download resources, ensures that critical download subtasks are processed first, thereby improving download efficiency and indirectly improving the user experience.

[0077] In some embodiments, when the processor of the electronic device 200 downloads subtasks including local instructions for a DCP file, local instructions for a KDM file, and local instructions for non-essential files, the task priority is: local instructions for DCP files > local instructions for KDM files ≥ local instructions for non-essential files; when the processor downloads subtasks including remote instructions for DCP files, remote instruction files for KDM files, and remote instructions for non-essential files, the task priority is: remote instructions for DCP files > remote instructions for KDM files ≥ remote instructions for non-essential files; when the processor downloads subtasks including local instructions for DCP files, remote instructions for DCP files, local instructions for KDM files, remote instructions for KDM files, local instructions for non-essential files, and remote instructions for non-essential files, the task priority is: local instructions for DCP files ≥ remote instructions for DCP files > local instructions for KDM files ≥ remote instruction files for KDM files ≥ local instructions for non-essential files ≥ remote instructions for non-essential files. Firstly, since the DCP file contains the most important video data, and the KDM file contains data to verify the playability of the DCP file, both are essential files with high importance. Other files are non-essential for playback and have relatively lower importance. Furthermore, because KDM files are usually smaller, they download relatively quickly. Therefore, the priority of the DCP file is higher than that of the KDM file, and the priority of the KDM file is greater than or equal to that of the non-essential files. Thus, the priority of download subtasks can be determined based on the importance and size of the video files, ensuring that more important download subtasks are processed first, avoiding the waste of time and resources caused by downloading a large number of non-essential files, thereby improving the systematic and orderly nature of the work. Secondly, since local commands are commands passed from the local front-end, which provides a visual interface for the user, giving local commands a higher or equal priority to remote commands provides a better experience for local users. Thirdly, it can determine the priority of each download subtask based on the importance of the video file, the size of the video file, and the source of the download instruction, thus avoiding the problem of the download progress of the other party being stalled when a large number of download instructions are received from one party first, thereby improving the user experience.

[0078] In some embodiments, the processor of the electronic device 200 obtains the current network speed and adjusts the number of tasks corresponding to each thread pool in real time according to the network speed. This allows for flexible adjustment of the number of tasks based on network speed, improving the flexibility of the electronic device when implementing video download management methods.

[0079] In some embodiments, when the network speed is less than a first threshold, the processor of the electronic device 200 reduces the number of tasks corresponding to each thread pool to an integer value corresponding to a first percentage of the number of tasks; when the network speed is greater than a second threshold, it increases the number of tasks corresponding to each thread pool to an integer value corresponding to a second percentage of the number of tasks; the second threshold is greater than the first threshold. This allows the number of tasks corresponding to each thread pool to be adjusted in real time according to the current network speed, ensuring that the maximum number of download subtasks are executed within the allowed network speed without affecting the operation of other applications on the electronic device.

[0080] In some embodiments, the instruction categories include remote instructions and local instructions; the communicator 220 of the electronic device 200 obtains the current number of download subtasks in the target thread pool for the target subtask; the target thread pool is the thread pool corresponding to the target subtask, and the target subtask is any download subtask; when the processor of the electronic device 200 determines that the target thread pool is not full based on the current number, it puts the target subtask into the target thread pool; when the controller 250 of the electronic device 200 determines that the target thread pool is full based on the current number, and the target subtask is a category under local instructions, it controls the display 260 to display a prompt message; the prompt message is used to indicate that the current download queue is full; when the processor of the electronic device 200 determines that the target thread pool is full based on the current number, and the target subtask is a category under remote instructions, it waits for a download subtask in the target thread pool to complete before putting the target subtask into the target thread pool. This allows the system to alert the user in a visual interface when the thread pool is full, or to automatically wait for a download subtask to complete before placing the target subtask into the target thread pool. This not only enables the user to understand the current system status in a timely manner, but also ensures that download subtasks are executed in order and efficiently, avoiding problems such as download subtask execution failure or excessive delays caused by thread pool overflow, thus improving the user experience.

[0081] In some embodiments, the instruction categories include remote instructions and local instructions; when the download instruction includes a local instruction, the display 260 of the electronic device 200 displays the download progress of the video file corresponding to the target video after the controller 250 controls the thread pool to execute download subtasks in parallel according to the number of tasks determined by the processor; the target video is the video requested for download by the local instruction. This provides a visual interface for the user, allowing them to promptly understand the download progress of the video, thereby improving the user experience.

[0082] Figure 4 A flowchart illustrating a video download management method provided in this application embodiment is shown below. Figure 4 As shown, the method for managing video downloads includes the following steps:

[0083] S11. Receive at least one download instruction and determine the instruction category of each download instruction.

[0084] One download instruction is used to instruct the download of multiple video files corresponding to a video, which are used to support the playback of the video on an electronic device; the instruction categories include local instructions and remote instructions.

[0085] Specifically, the download of video files is usually controlled by local instructions issued by local staff or remote instructions issued by the broadcasting center. Therefore, the method to determine the type of download instruction can be based on the source of the download instruction.

[0086] S12. Based on the instruction type and the file type of the video file, split the download instruction into multiple download subtasks.

[0087] First, the file categories for movie files include Digital Cinema Package (DCP) files, Key Delivery Message (KDM) files, and optional files. Each movie file corresponds to at least one DCP file and one valid KDM file; in some embodiments, each movie file also corresponds to one optional file.

[0088] Specifically, a DCP file is a data packet containing digital film content and related information transmitted from the distributor to the digital cinema. It is formed by the digital cinema distribution master (DCDM) through image compression, encryption, and packaging. In other words, digital footage shot on location or scanned from film cannot be directly used for digital cinema projection; it must undergo digital post-production, image format conversion, image compression, encryption, compositing, and packaging to form a DCP file for distribution. A DCP file consists of digital film content files (including image, sound, and subtitle track files) as well as a Composition Playlist (CPL), Packing List (PKL), Asset Mapping table, and Volume Index file.

[0089] The KDM file is responsible for transmitting the key and mainly contains three types of information: the content decryption key; key parameters, primarily the key's time window (valid period), i.e., the film's screening schedule; and the Trusted Device List (TDL), i.e., a list of authorized and legitimate devices. After compression, encryption, and packaging, the digital cinema generates encrypted film content and its key. The encrypted film content and related information form a DCP file and are sent to the cinema; the key, after further encryption, is digitally signed along with other relevant information to form the KDM file, which is then sent to authorized cinemas by the distributor or its authorized production company. Cinemas can only decrypt and play the encrypted digital film after receiving the KDM file and correctly extracting the content decryption key. In addition to the key, the KDM file also includes information such as the key's valid period and a list of devices that can use the key. Therefore, the distributor can use this information to control the film's screening schedule and the screening equipment. Furthermore, the KDM file is structurally divided into three parts: the public part, the private part, and the signature part. The public part is visible to all recipients; the encrypted part has the highest security requirements in the KDM file, and it can only be decrypted by a specific recipient. Important information such as the movie key is contained in this part; the signature part is the signature value after digitally signing the first two parts, which the recipient can use to verify the integrity and authenticity of the first two parts.

[0090] Non-essential files include files in the film file other than the DCP and KDM files, such as additional badges and icons; film-related information, such as production date, director, and cast list; and poster and promotional material files, including movie posters, stills, and other promotional images. Since these files are not required for playing the film, they are collectively referred to as non-essential files.

[0091] Secondly, based on the instruction type and the file type of the video file, the download instruction is broken down into multiple download subtasks, with each download subtask corresponding to a file type.

[0092] Specifically, since the instruction categories include local and remote instructions, and the file categories include DCP files, KDM files, and non-essential files, a download instruction with the instruction category of local can be split into local instructions for DCP files, local instructions for KDM files, and local instructions for non-essential files; similarly, a download instruction with the instruction category of remote can be split into remote instructions for DCP files, remote instructions for KDM files, and remote instructions for non-essential files. Therefore, download instructions can be split into multiple download subtasks using the above splitting method.

[0093] S13. Determine the number of tasks that the thread pool corresponding to each download subtask will execute in parallel.

[0094] Specifically, the method for determining the thread pool corresponding to each download subtask and the number of tasks to execute the download subtask in parallel can be as follows: directly calling the number of tasks corresponding to each thread pool pre-set by the user from the first preset interface; obtaining the number of tasks corresponding to each thread pool based on the priority of the download subtask; or calculating the number of tasks corresponding to each thread pool based on the priority of the download subtask and the real-time network speed.

[0095] S14. Place each download subtask into the corresponding thread pool, and control the thread pool to execute the download subtasks in parallel according to the corresponding number of tasks, so as to download the movie file.

[0096] Specifically, each download subtask corresponds to a pre-defined thread pool, and each thread pool includes a preset number of threads for executing the corresponding download subtask. The number of threads simultaneously executing download subtasks within a thread pool is the number of tasks corresponding to that thread pool.

[0097] For example, in such Figure 5 In the scenario shown, the first thread pool 51 stores local instructions for DCP files, with 5 threads simultaneously executing download subtasks; the second thread pool 52 stores local instructions for KDM files, with 1 thread simultaneously executing download subtasks; the third thread pool 53 stores local instructions for non-essential files, with 1 thread simultaneously executing download subtasks; the fourth thread pool 54 stores remote instructions for DCP files, with 2 threads simultaneously executing download subtasks; the fifth thread pool 55 stores remote instructions for KDM files, with 1 thread simultaneously executing download subtasks; and the sixth thread pool 56 stores remote instructions for non-essential files, with 5 threads simultaneously executing download subtasks.

[0098] In the above scheme, firstly, at least one download instruction is received, and the instruction category of each download instruction is determined. A download instruction instructs the download of multiple video files corresponding to a single video. Next, based on the instruction category and the file categories of the video files, the download instruction is broken down into multiple download subtasks, and the number of tasks to be executed concurrently in a thread pool for each subtask is determined. Each download subtask corresponds to one file category. Finally, each download subtask is placed into its corresponding thread pool, and the thread pool is controlled to execute the subtasks concurrently according to the corresponding number of tasks to download the video files. In this way, by breaking down the received download instructions into corresponding thread pools based on their instruction category and the file categories of the video files, and controlling the number of concurrent processing subtasks of each type within the thread pools, the download subtasks can be processed according to the specific circumstances of the download instructions and video files. This avoids the problem of download progress stalling when a large number of download instructions are received from one side, thus improving the user experience.

[0099] In some embodiments, such as Figure 6 As shown, determining the instruction category of a download instruction based on its source can include the following steps:

[0100] S111. Determine whether the download command is from the local frontend. If the download command is from the local frontend, execute step S112; if the download command is not from the local frontend, execute step S113.

[0101] Specifically, determining whether a download command originated from a local frontend can be done in several ways. First, by examining the port number used in the download command (e.g., internal ports like local service ports). Second, by analyzing the protocol used in the download command (e.g., internal protocols like local file system protocols). Finally, the format of the download command can also be a reliable indicator of its origin.

[0102] S112. Determine that the download command is a local command.

[0103] S113. Determine that the download command is transmitted from a remote network, and determine that the command type of the download command is a remote command.

[0104] The above solution can classify and process download subtasks according to the source of the download instructions, avoiding the problem that the download progress of the other party will be stalled when a large number of download instructions are received from one party first, thus improving the user experience.

[0105] In some embodiments, instruction categories include remote instructions and local instructions; file categories include Digital Cinema Package (DCP) files, Key Transfer Message (KDM) files, and non-essential files. For example... Figure 7 As shown, the method of splitting a download instruction into multiple download subtasks based on the instruction type and the file type of the video file can include the following steps:

[0106] S121. Determine whether the download command only includes local commands. If the download command only includes local commands, proceed to step S122; if the download command does not only include local commands, proceed to step S123.

[0107] S122. Split the download instructions into local instructions for DCP files, local instructions for KDM files, and local instructions for non-essential files.

[0108] S123. Determine whether the download instruction contains only remote instructions. If the download instruction contains only remote instructions, proceed to step S125; if the download instruction does not contain only remote instructions, proceed to step S124.

[0109] S124. Split the download command into remote commands for DCP files, remote commands for KDM files, and remote commands for non-essential files.

[0110] S125. Split the download instructions into local instructions for the DCP file, remote instructions for the DCP file, local instructions for the KDM file, remote instructions for the KDM file, local instructions for non-essential files, and remote instructions for non-essential files.

[0111] Specifically, if the download command does not include only local commands or only remote commands, it means that the download command includes both local and remote commands. In this case, the download command is split into local commands for DCP files, remote commands for DCP files, local commands for KDM files, remote commands for KDM files, local commands for non-essential files, and remote commands for non-essential files.

[0112] The above solution can classify and process download subtasks according to the importance of the video files, avoiding the problem that the download progress of the other party will be stalled when a large number of download instructions are received from one party first, thus improving the user experience.

[0113] In some embodiments, such as Figure 8 As shown, determining the number of tasks for each download subtask to be executed concurrently by the thread pool can include the following steps:

[0114] S131. Determine the task priority of each download subtask.

[0115] Specifically, the method to determine the task priority of each download subtask can be to first obtain the task priorities of all download subtasks, and then obtain the task priority of each download subtask from the task priorities of all download subtasks.

[0116] The method for obtaining the task priority of all download subtasks can be either to directly call the task priority of all download subtasks preset by the user from the second preset interface, or to determine the task priority of the download subtasks based on the importance of the download movie file corresponding to the download subtask.

[0117] S132. Determine the number of tasks for each thread pool to execute download subtasks in parallel based on task priority.

[0118] Specifically, the method for determining the number of download subtasks to be executed in parallel by each thread pool based on task priority can be that the number of tasks corresponding to the thread pool with higher task priority is greater than the number of tasks corresponding to the thread pool with lower task priority.

[0119] For example, if the priority of the local instructions in the DCP file is greater than the priority of the local instructions in the KDM file, and the number of tasks in the thread pool corresponding to the local instructions in the DCP file is M, and the number of tasks in the thread pool corresponding to the local instructions in the KDM file is N, then M > N.

[0120] For example, when the task priority of the local instruction in the DCP file is greater than or equal to the task priority of the remote instruction in the DCP file, the number of tasks in the thread pool corresponding to the local instruction in the DCP file is M, and the number of tasks in the thread pool corresponding to the remote instruction in the DCP file is P, then M≥P is determined.

[0121] The above solution can determine the number of tasks to be executed in parallel by the corresponding thread pool based on the task priority of the download subtasks. This makes the determined number of tasks in the thread pool more consistent with the actual situation, which helps to optimize the allocation of download resources, ensure that critical download subtasks are processed first, thereby improving download efficiency and indirectly improving user experience.

[0122] In some embodiments, the method for determining the task priority of each download subtask may be:

[0123] When the download subtask includes local instructions for DCP files, local instructions for KDM files, and local instructions for non-essential files, the task priority is: local instructions for DCP files > local instructions for KDM files ≥ local instructions for non-essential files.

[0124] When the download subtask includes remote instructions for DCP files, remote instructions for KDM files, and remote instructions for non-essential files, the task priority is: remote instructions for DCP files > remote instructions for KDM files ≥ remote instructions for non-essential files.

[0125] When the download subtask includes local instructions for DCP files, remote instructions for DCP files, local instructions for KDM files, remote instructions for KDM files, local instructions for non-essential files, and remote instructions for non-essential files, the task priority is as follows: local instructions for DCP files ≥ remote instructions for DCP files > local instructions for KDM files ≥ remote instructions for KDM files ≥ local instructions for non-essential files ≥ remote instructions for non-essential files.

[0126] In the above scheme, firstly, since the DCP file contains the most important video data, and the KDM file contains data that verifies the playability of the DCP file, both are essential files with high importance. Other files are non-essential for playback and have relatively lower importance. Furthermore, since KDM files are usually smaller, they download relatively quickly. Therefore, the priority of the DCP file is higher than that of the KDM file, and the priority of the KDM file is greater than or equal to that of the non-essential files. Thus, the priority of download subtasks can be determined based on the importance and size of the video files, ensuring that more important download subtasks are processed first, avoiding the waste of time and resources caused by downloading a large number of non-essential files, thereby improving the systematic and orderly nature of the work. Secondly, since local commands are commands passed from the local front-end, which provides a visual interface for the user, giving local commands a priority greater than or equal to that of remote commands provides a better experience for local visual users. Thirdly, it can determine the priority of each download subtask based on the importance of the video file, the size of the video file, and the source of the download instruction, thus avoiding the problem of the download progress of the other party being stalled when a large number of download instructions are received from one party first, thereby improving the user experience.

[0127] In some embodiments, such as Figure 9 As shown, after step S132, the video download management method further includes the following step S133.

[0128] S133. Obtain the current network speed and adjust the number of tasks corresponding to each thread pool in real time according to the network speed.

[0129] First, obtain the current network speed.

[0130] Specifically, the current network speed can be obtained through network testing tools or network detection software. This application does not limit this.

[0131] Secondly, the number of tasks in each thread pool is adjusted in real time based on network speed.

[0132] Specifically, such as Figure 10 As shown, adjusting the number of tasks for each thread pool in real time based on network speed can include the following steps:

[0133] S1331. Determine whether the network speed is less than the first threshold. If the network speed is less than the first threshold, execute step S1332. If the network speed is greater than or equal to the first threshold, execute step S1333.

[0134] The first threshold is preset; for example, it can be a default value or a value set by relevant personnel according to the actual situation.

[0135] S1332. Reduce the number of tasks corresponding to each thread pool to the integer value corresponding to the first percentage of the number of tasks.

[0136] First, before reducing the number of tasks corresponding to each thread pool to an integer value corresponding to the first percentage of the total task count, the video download management method also includes: stopping the reduction of the task count when the number of tasks corresponding to any thread pool is 1. In other words, as long as the number of tasks corresponding to a thread pool is 1, even if the network speed is less than the first threshold, the number of tasks corresponding to that thread pool will not be reduced. This ensures that each thread pool has at least one download subtask being executed, avoiding situations where download subtasks stall.

[0137] Subsequently, when the number of tasks corresponding to any thread pool is greater than 1 but less than the first threshold, the number of tasks corresponding to each thread pool is reduced to an integer value corresponding to a first percentage of the total number of tasks. Here, the first percentage is preset; for example, it can be a default value or a value set by relevant personnel based on actual circumstances.

[0138] In some embodiments, when the reduced adjusted number of tasks is a decimal, rounding can be used to round the reduced adjusted number of tasks to an integer. For example, when the reduced adjusted number of tasks is 4.3, the reduced adjusted number of tasks is rounded to an integer of 4; when the reduced adjusted number of tasks is 4.8, the reduced adjusted number of tasks is rounded to an integer of 5.

[0139] In some embodiments, when the reduced adjusted number of tasks is a decimal, the integer before the decimal point can be determined as the integer corresponding to the reduced adjusted number of tasks. For example, when the reduced adjusted number of tasks is 4.3, the reduced adjusted number of tasks is taken as the integer before the decimal point as 4; when the reduced adjusted number of tasks is 4.8, the reduced adjusted number of tasks is also taken as the integer before the decimal point as 4.

[0140] S1333. Determine whether the network speed is greater than the second threshold. If the network speed is greater than the second threshold, execute step S1334. If the network speed is less than or equal to the second threshold, execute step S1335.

[0141] The second threshold is greater than the first threshold, and the second threshold is preset. For example, it can be a default value or a value set by relevant personnel according to the actual situation.

[0142] S1334. Increase the number of tasks corresponding to each thread pool by the integer value corresponding to the second percentage of the number of tasks.

[0143] In some embodiments, when the increased adjusted number of tasks is a decimal, rounding can be used to round the increased adjusted number of tasks to an integer. For example, when the increased adjusted number of tasks is 4.3, the increased adjusted number of tasks is rounded to an integer of 4; when the increased adjusted number of tasks is 4.8, the increased adjusted number of tasks is rounded to an integer of 5.

[0144] In some embodiments, when the increased and adjusted number of tasks is a decimal, the integer before the decimal point can be added by one to determine the integer corresponding to the increased and adjusted number of tasks. For example, when the increased and adjusted number of tasks is 4.3, the integer before the decimal point of the increased and adjusted number of tasks is added by one to get 5; when the increased and adjusted number of tasks is 4.8, the integer before the decimal point of the increased and adjusted number of tasks is also added by one to get 5.

[0145] S1335, Do not adjust the number of tasks.

[0146] Specifically, the number of tasks will not be adjusted when the network speed is between the first and second thresholds.

[0147] In some embodiments, for the same batch of download instructions, the number of adjustments to reduce the number of tasks can be limited to a first range, for example, once. Similarly, for the same batch of download instructions, the number of adjustments to increase the number of tasks can be limited to a second range, for example, once. That is, for the same batch of download instructions, the adjustment of the number of tasks, whether decreasing or increasing, should be controlled within a reasonable range to avoid program deadlock caused by unlimited increases or decreases.

[0148] The above solution can adjust the number of tasks in each thread pool in real time according to the current network speed, ensuring that the maximum number of download subtasks are executed within the allowed network speed without affecting the operation of other applications on the electronic device; at the same time, it improves the flexibility of the electronic device in implementing video download management methods.

[0149] In some embodiments, such as Figure 11 As shown, the instruction categories include remote instructions and local instructions. Placing each download subtask into its corresponding thread pool can include the following steps:

[0150] S141. For the target subtask, obtain the current number of download subtasks in the target thread pool.

[0151] The target thread pool is the thread pool corresponding to the target subtask, and the target subtask is any download subtask.

[0152] Specifically, the current number of download subtasks in the target thread pool can be obtained either by directly reading the current number of download subtasks in the target thread pool through the relevant interface, or by calculating the current number of download subtasks in the target thread pool based on the total number of download subtasks put into the target thread pool and the number of download subtasks that have been executed.

[0153] S142. Determine whether the target thread pool is not full based on the current number. If the target thread pool is not full, execute step S143; if the target thread pool is full, execute step S144.

[0154] Specifically, determining whether the target thread pool is not full based on the current number can be done as follows: if the current number is less than the total number the target thread pool can hold, the target thread pool is considered not full; if the current number is equal to the total number the target thread pool can hold, the target thread pool is considered full. The total number the target thread pool can hold can be pre-configured or calculated based on the space pre-allocated to the thread pool and the space occupied by the target subtask during execution.

[0155] S143. Place the target subtask into the target thread pool.

[0156] S144. Determine whether the target subtask is a category under local instructions. If the target subtask is a category under local instructions, execute step S145. If the target subtask is not a category under local instructions, execute step S146.

[0157] Specifically, one way to determine whether a target subtask belongs to a category under a local command is to identify the various download subtasks after splitting the download command. This way, the target subtask can be directly determined to belong to a category under a local command based on the identification.

[0158] S145. Display a prompt message.

[0159] The notification message indicates that the current download queue is full.

[0160] Specifically, when the target thread pool is full and the target subtask is a category under a local command, it means that the target subtask is a download command issued by a local user. At this time, the download queue corresponding to the download subtask under the download command triggered by the local user is displayed as full and cannot be added, so that the user can understand the progress of the movie download in real time.

[0161] S146. Determine that the target subtask is classified under a remote command, wait for a download subtask in the target thread pool to complete, and then put the target subtask into the target thread pool.

[0162] The above solution can prompt the user in a visual interface when the thread pool is full, or automatically wait for a download subtask to complete before putting the target subtask into the target thread pool. This not only allows the user to understand the current system status in a timely manner, but also ensures that the download subtasks are executed in order and efficiently, avoiding the problem of download subtasks failing or being delayed too much due to thread pool overflow, thus improving the user experience.

[0163] In some embodiments, the instruction categories include remote instructions and local instructions. After step S14, the video download management method further includes: when the download instruction includes a local instruction, displaying the download progress of the video file corresponding to the target video. The target video is the video requested for download by the local instruction.

[0164] In some embodiments, since the DCP file contains all the content of the movie itself, the download progress of the target movie corresponding to the DCP file is also the download progress of the target movie itself. For example, Figure 12 As shown, the download progress of the DCP file corresponding to video 1 is 50%; the download progress of the DCP file corresponding to video 2 is 20%; the download progress of the DCP file corresponding to video 3 is 60%; the download progress of the DCP file corresponding to video 4 is 30%; the download progress of the DCP file corresponding to video 5 is 20%; the download progress of the DCP file corresponding to video 6 has not yet started, so no download progress is displayed.

[0165] In some embodiments, the download progress of the target video file can be displayed as a percentage, such as... Figure 12 As shown, the download progress of the target movie's corresponding DCP file is displayed as a percentage; it can also be displayed as the length of a progress bar, for example, as shown. Figure 13 As shown, the download progress of the KDM file is displayed in the form of a progress bar, or, as... Figure 14 As shown, the download progress of non-essential files is displayed in the form of a progress bar.

[0166] In some embodiments, a user can pause the download of a movie's corresponding DCP file by triggering a movie's download control, thus pausing the download of that movie. For example, such as... Figure 15 As shown, users can pause the download of the DCP file corresponding to Movie 4 by triggering the download control for Movie 4, thus pausing the download of Movie 4.

[0167] The above solution provides users with a visual interface, allowing them to track the download progress of videos in a timely manner, thereby improving the user experience.

[0168] like Figure 16 As shown, this application embodiment also provides a chip system that can be applied to the electronic device 200 in the foregoing embodiments. The chip system includes at least one processor 1201 and at least one interface circuit 1202. The processor 1201 may be the processor in the aforementioned electronic device 200. The processor 1201 and the interface circuit 1202 can be interconnected via a line. The processor 1201 can receive and execute computer instructions from the memory of the aforementioned electronic device 200 through the interface circuit 1202. When the computer instructions are executed by the processor 1201, the electronic device 200 can perform the various steps performed by the electronic device 200 in the foregoing embodiments. Of course, the chip system may also include other discrete devices, which are not specifically limited in this application embodiment.

[0169] This application also provides a computer-readable storage medium for storing computer instructions executed by the above-described electronic device 200.

[0170] This application also provides a computer program product, which stores a computer program. When the computer program is executed by a processor, it implements the various processes of the video download management method in the above-described method embodiments and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0171] The above description is merely a specific embodiment of this application, enabling those skilled in the art to understand or implement this application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this application. Therefore, this application is not to be limited to the embodiments described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. An electronic device, characterized in that, include: The communicator is configured to receive at least one download command; The processor is configured as follows: The instruction category of each download instruction received by the communicator is determined, and the download instruction is split into multiple download subtasks according to the instruction category and the file category of the video file; A download command is used to instruct the download of multiple video files corresponding to a single video. One download subtask corresponds to one file category; Determine the thread pool corresponding to each download subtask, the number of download subtasks to be executed in parallel, and put each download subtask into the corresponding thread pool; The controller is configured to control the thread pool to execute the download subtasks in parallel according to the number of tasks determined by the processor, in order to download the movie file.

2. The electronic device according to claim 1, characterized in that, The instruction categories include remote instructions and local instructions; the file categories include Digital Cinema Data Package (DCP) files, Key Transfer Message (KDM) files, and non-essential files. The processor is specifically configured to, when the download instruction includes both remote and local instructions, split the download instruction into local instructions for the DCP file, remote instructions for the DCP file, local instructions for the KDM file, remote instructions for the KDM file, local instructions for non-essential files, and remote instructions for non-essential files.

3. The electronic device according to claim 2, characterized in that, The processor is specifically configured as follows: Determine the task priority for each download subtask; The number of download subtasks to be executed in parallel in each thread pool is determined based on the task priority.

4. The electronic device according to claim 3, characterized in that, The processor is specifically configured such that, when the download subtask includes local instructions for a DCP file, remote instructions for a DCP file, local instructions for a KDM file, remote instructions for a KDM file, local instructions for a non-essential file, and remote instructions for a non-essential file, the task priority is: local instructions for a DCP file ≥ remote instructions for a DCP file > local instructions for a KDM file ≥ remote instructions for a KDM file ≥ local instructions for a non-essential file ≥ remote instructions for a non-essential file.

5. The electronic device according to claim 3, characterized in that, The processor is also configured to: acquire the current network speed and adjust the number of tasks corresponding to each thread pool in real time based on the network speed.

6. The electronic device according to claim 5, characterized in that, The processor is specifically configured as follows: When the network speed is less than a first threshold, the number of tasks corresponding to each thread pool is reduced to an integer value corresponding to a first percentage of the number of tasks; When the network speed is greater than the second threshold, the number of tasks corresponding to each thread pool is increased by an integer value corresponding to the second percentage of the number of tasks; the second threshold is greater than the first threshold.

7. The electronic device according to claim 1, characterized in that, The electronic device also includes a display; the instruction categories include remote instructions and local instructions; The communicator is also configured to obtain the current number of download subtasks in the target thread pool for the target subtask; the target thread pool is the thread pool corresponding to the target subtask, and the target subtask is any download subtask; The processor is specifically configured to place the target subtask into the target thread pool when it is determined from the current quantity that the target thread pool is not full; The controller is further configured to control the display to show a prompt message when it is determined based on the current quantity that the target thread pool is full and the target subtask is a category under the local instruction; the prompt message is used to indicate that the current download queue is full. Specifically, the processor is configured to, when determining that the target thread pool is full based on the current quantity and the target subtask is a category under the remote instruction, wait for a download subtask in the target thread pool to complete before putting the target subtask into the target thread pool.

8. The electronic device according to claim 1, characterized in that, The electronic device also includes a display; the instruction categories include remote instructions and local instructions; The display is configured to: when the download instruction includes a local instruction, after the controller controls the thread pool to execute the download subtasks in parallel according to the number of tasks determined by the processor, display the download progress of the movie file corresponding to the target movie; the target movie is the movie requested for download by the local instruction.

9. A method for managing video downloads, characterized in that, include: Receive at least one download instruction and determine the instruction category of each download instruction; A download command is used to instruct the download of multiple video files corresponding to a single video. Based on the instruction category and the file category of the video file, the download instruction is divided into multiple download sub-tasks; One download subtask corresponds to one file category; Determine the number of tasks that the thread pool corresponding to each download subtask will execute in parallel. Each download subtask is placed into a corresponding thread pool, and the thread pool is controlled to execute the download subtasks in parallel according to the corresponding number of tasks to download the movie file.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a computing device, causes the computing device to implement the video download management method of claim 9.

Citation Information

Patent Citations

  • File downloading system and method

    CN103905501A

  • Task processing method and device based on thread pool

    CN109992414A

  • File downloading control method and device

    CN110430279A

  • Distributed file downloading method and system, electronic equipment and storage medium

    CN116760821A