Cover frame determination method and device, equipment, storage medium and program product

By receiving the sliding operation and sliding speed information of the playback progress bar, a portion of the video frames are selected for decoding to determine the cover frame, which solves the problem of slow response in the existing technology and improves the user experience.

CN121665089APending Publication Date: 2026-03-13SWEET POTATO TECHNOLOGY (SHANGHAI) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-28
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing technology suffers from slow response when users slide a progress bar to select a video cover, resulting in a poor user experience.

Method used

By receiving the sliding operation and sliding speed information of the playback progress bar, multiple target video frames are determined from multiple video frames of the target video, and the cover frame is determined based on these frames, instead of decoding all video frames.

Benefits of technology

This improves the user experience and avoids the slow response problem caused by decoding all video frames in existing technologies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121665089A_ABST
    Figure CN121665089A_ABST
Patent Text Reader

Abstract

The invention relates to a cover frame determination method and device, computer equipment, a computer readable storage medium and a computer program product. The method comprises the following steps: receiving a sliding operation for a playing progress bar of a target video; based on the sliding operation and sliding speed information, multiple target video frames are determined from multiple video frames included in the target video, and the sliding speed information is used for representing the sliding speed of the sliding operation on different progress bar areas of the playing progress bar; and determining a cover frame of the target video based on the plurality of target video frames. By adopting the method, the problem of slow response can be avoided, so that the user experience is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a method, apparatus, computer device, computer-readable storage medium, and computer program product for determining a cover frame. Background Technology

[0002] Video covers are mostly static frames manually selected by the user from the video. The video cover editing page displays a progress bar corresponding to the video, allowing users to slide the progress bar to select a static frame as the video cover.

[0003] In existing technologies, when a user slides a progress bar to select a video cover, each frame of the video is usually decoded to allow the user to choose a video cover.

[0004] However, existing methods suffer from slow response times, resulting in a poor user experience. Summary of the Invention

[0005] Therefore, it is necessary to provide a cover frame determination method, apparatus, computer device, computer-readable storage medium, and computer program product to address the aforementioned technical problems, thereby avoiding slow response issues and improving the user experience.

[0006] Firstly, this application provides a method for determining a cover frame, including:

[0007] Receive swipe gestures on the playback progress bar of the target video;

[0008] Based on the sliding operation and sliding speed information, multiple target video frames are determined from the multiple video frames included in the target video. The sliding speed information is used to characterize the sliding speed of the sliding operation in different progress bar areas of the playback progress bar.

[0009] The cover frame of the target video is determined based on multiple target video frames.

[0010] In one embodiment, determining multiple target video frames from multiple video frames included in the target video based on the sliding operation and sliding speed information includes: determining multiple playback progress points of the target video based on the sliding operation; determining multiple target progress points from the multiple playback progress points according to the sliding speed information; and taking the video frames corresponding to the multiple target progress points as multiple target video frames.

[0011] In one embodiment, the method further includes: for every two adjacent playback progress points, obtaining the time interval between the two playback progress points; and using the obtained time intervals as sliding speed information.

[0012] In one embodiment, determining multiple target progress points from multiple playback progress points based on sliding speed information includes: determining multiple target progress regions based on sliding speed information, each target progress region corresponding to a different sliding speed; and determining a target progress point based on the playback progress points included in each target progress region, wherein the method of determining the target progress point differs in different target progress regions.

[0013] In one embodiment, determining multiple target progress regions based on sliding speed information includes: for every two adjacent playback progress points, determining the sliding speed type corresponding to the progress bar region between the two playback progress points based on the time interval between the two playback progress points; determining multiple target progress regions based on the sliding speed type corresponding to the progress bar region between every two adjacent playback progress points, wherein each target progress region includes at least one progress bar region, and the sliding speed type corresponding to each of the included progress bar regions is the same.

[0014] In one embodiment, the target progress area includes a first progress area, and the sliding speed type corresponding to the first progress area is a high-speed sliding type. Based on the playback progress points included in each target progress area, the target progress point is determined, including: from the playback progress points included in the first progress area, determining the playback progress points that satisfy the first preset condition in order, and using them as the target progress points.

[0015] In one embodiment, the target progress region includes a second progress region, and the sliding speed type corresponding to the second progress region is a slow sliding type. Determining a target progress point based on the playback progress points included in each target progress region includes: determining candidate progress points from the playback progress points included in the second progress region; for each candidate progress point, determining whether the time interval between the candidate progress point and the reference progress point satisfies a second preset condition; if satisfied, the candidate progress point is used as the target progress point, and the candidate progress point is used as the reference progress point for the next candidate progress point; if not satisfied, a new progress position is determined based on the progress position corresponding to the candidate progress point, and the progress point corresponding to the new progress position is used as the target progress point, and the progress point corresponding to the new progress position is used as the reference progress point for the next candidate progress point.

[0016] In one embodiment, determining the cover frame of a target video based on multiple target video frames includes: determining candidate cache frames from cached frames of the target video based on multiple target video frames; determining candidate cover frames based on multiple target video frames and candidate cache frames; and determining the cover frame from the candidate cover frames.

[0017] In one embodiment, determining candidate cache frames from cached frames of target video based on multiple target video frames includes: for each target video frame, determining whether there is a cache frame in the cache that satisfies a third preset condition in terms of the time interval between the target video frame and the target video frame; if so, the cache frame that satisfies the third preset condition is taken as a candidate cache frame.

[0018] In one embodiment, a candidate cover frame is determined based on multiple target video frames and candidate cache frames, including: for each candidate cache frame, determining whether the candidate cache frame has been displayed; if not, the candidate cache frame is used as a candidate cover frame; if it has been displayed, any video frame located after the target video frame corresponding to the candidate cache frame is used as a candidate cover frame.

[0019] In one embodiment, determining a cover frame from candidate cover frames includes: displaying candidate cover frames; and, in response to a selection operation on a candidate cover frame, determining the candidate cover frame indicated by the selection operation as the cover frame.

[0020] Secondly, this application also provides a cover frame determining device, comprising:

[0021] The receiving module is used to receive sliding operations on the playback progress bar of the target video;

[0022] The execution module is used to determine multiple target video frames from multiple video frames included in the target video based on the sliding operation and sliding speed information. The sliding speed information is used to characterize the sliding speed of the sliding operation in different progress bar areas of the playback progress bar.

[0023] The determination module is used to determine the cover frame of a target video based on multiple target video frames.

[0024] Thirdly, this application also provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the method described in any of the embodiments of the first aspect above.

[0025] Fourthly, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method described in any of the embodiments of the first aspect above.

[0026] Fifthly, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the method described in any of the embodiments of the first aspect above.

[0027] The aforementioned cover frame determination method, apparatus, computer device, computer-readable storage medium, and computer program product first receive a sliding operation on the playback progress bar of a target video. Then, based on the sliding operation and sliding speed information, multiple target video frames are determined from multiple video frames included in the target video. The sliding speed information is used to characterize the sliding speed of the sliding operation on different progress bar areas. Finally, based on the multiple target video frames, the cover frame of the target video is determined. The cover frame determination method provided in this application determines multiple target video frames from multiple video frames of the target video according to the sliding operation and sliding speed information on the playback progress bar of the target video. Then, by decoding the target video frames, the user can select the cover frame of the target video. Since not all video frames are decoded, but only a portion of video frames are decoded for user selection, the response lag problem caused by decoding all video frames in the prior art can be avoided, thereby improving the user experience. Attached Figure Description

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

[0029] Figure 1 This is an application environment diagram of the cover frame determination method in one embodiment;

[0030] Figure 2 This is a flowchart illustrating a method for determining the cover frame in one embodiment;

[0031] Figure 3 This is a flowchart illustrating a method for determining multiple target video frames in one embodiment;

[0032] Figure 4 This is a schematic diagram of playback progress points in one embodiment;

[0033] Figure 5 This is a flowchart illustrating a method for determining sliding speed information in one embodiment;

[0034] Figure 6 This is a flowchart illustrating a method for determining multiple target progress points in one embodiment;

[0035] Figure 7 This is a flowchart illustrating a method for determining multiple target progress regions in one embodiment;

[0036] Figure 8This is a flowchart illustrating a method for determining a target progress point in one embodiment;

[0037] Figure 9 This is a flowchart illustrating a method for determining the cover frame of a target video in one embodiment.

[0038] Figure 10 This is a flowchart illustrating a method for determining candidate cover frames in one embodiment;

[0039] Figure 11 A flowchart illustrating the method for determining a cover frame from candidate cover frames in one embodiment;

[0040] Figure 12 This is a flowchart illustrating the cover frame determination method in another embodiment;

[0041] Figure 13 This is a structural block diagram of a cover frame determining device in one embodiment;

[0042] Figure 14 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0043] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0044] In the video content production and distribution chain, the video cover serves as a core visual entry point that determines users' willingness to click, and its selection directly impacts the content's exposure and conversion efficiency. Video covers are mostly static frames manually selected by users from the video. Specifically, the video cover editing page displays a progress bar corresponding to the video, allowing users to select a static frame from the video as the cover by sliding the progress bar.

[0045] In existing technologies, when a user slides a progress bar to select a video cover, each frame of the video is typically decoded to allow the user to choose a cover. However, this method of decoding each frame does not take into account the performance of the decoding device, which can easily lead to slow response times and negatively impact the user experience.

[0046] In view of this, this application provides a cover frame determination method. First, it receives a sliding operation on the playback progress bar of a target video. Then, based on the sliding operation and sliding speed information, it determines multiple target video frames from multiple video frames included in the target video. The sliding speed information is used to characterize the sliding speed of the sliding operation on different areas of the playback progress bar. Finally, based on the multiple target video frames, it determines the cover frame of the target video. The cover frame determination method provided in this application determines multiple target video frames from multiple video frames of the target video according to the sliding operation and sliding speed information on the playback progress bar of the target video. Then, it decodes the target video frames to allow the user to select the cover frame of the target video. Since it does not decode all video frames but selects a portion of them for user selection, it avoids the response lag problem caused by decoding all video frames in the prior art, thereby improving the user experience.

[0047] Before describing the embodiments of this application, it should be noted that the terms "first," "second," etc., used in this application can be used to describe various elements, but these elements are not limited by these terms. These terms are only used to distinguish the first element from the second element. The terms "comprising" and "having," and any variations thereof, used in this application, are intended to cover non-exclusive inclusion. The term "multiple" used in this application refers to two or more. The term "and / or" used in this application refers to one of the solutions, or any combination of multiple solutions.

[0048] The cover frame determination method provided in this application embodiment can be applied to, for example, Figure 1 In the application environment shown, terminal 102 may have at least one target application with video editing capabilities installed. Users can use the target application to edit videos. During video editing, the user needs to decode the video frames for display. When decoding video frames, terminal 102 can send the video to server 104 for decoding, or terminal 102 can decode the video frames to meet the user's video editing needs.

[0049] Furthermore, this application does not limit the form of the target application; it can be a parent application running on the operating system, or a sub-application running within the parent application, such as a mini-program, or it can be a webpage.

[0050] Terminal 102 can communicate with server 104 via a communication network. A data storage system can store the data that server 104 needs to process. The data storage system can be integrated onto server 104 or located in the cloud or on other network servers. Terminal 102 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, and portable wearable devices, such as smartwatches, smart bracelets, and head-mounted devices. Server 104 can be implemented using a standalone server or a server cluster consisting of multiple servers.

[0051] In one exemplary embodiment, such as Figure 2 As shown, a method for determining a cover frame is provided, which is applied to... Figure 1 Taking the terminal in the example, the explanation includes the following steps:

[0052] Step 201: Receive the sliding operation of the playback progress bar for the target video.

[0053] The video is a series of rapidly displayed static image frames, and the target video refers to the video for which video cover editing is to be performed. For example, the target video could be a video shot by the user, a video synchronized from another application or platform, or a video downloaded from a server.

[0054] A playback progress bar is a control synchronized with the timeline of the target video, used to reflect the playback progress and adjust the playback flow. For example, in a video cover editing scenario, by sliding the playback progress bar, one can quickly locate any static image frame corresponding to any timestamp within the target video to select a video cover.

[0055] The swipe operation can be an indirect operation performed by the user on the playback progress bar of the target video through an intermediate device, such as a mouse or stylus; or it can be a direct operation performed by the user on the playback progress bar of the target video.

[0056] For example, the swipe operation can be a forward swipe or a reverse swipe. A forward swipe is a swipe along the playback progress bar from left to right, moving from the beginning to the end of the target video. A reverse swipe is a swipe along the playback progress bar from right to left, moving from the end to the beginning of the target video.

[0057] The swipe operation can be continuous or discontinuous. A continuous swipe operation is an uninterrupted swipe on the playback progress bar, while a discontinuous swipe operation is a selective swipe on a portion of the playback progress bar.

[0058] In some exemplary embodiments, the terminal can receive the input target video and, if the user has a need to edit the video cover of the target video, display a video editing page, and display a preview area and a playback progress bar on the video editing page. The preview area can be used to display the target video.

[0059] Furthermore, users can slide the playback progress bar to display video frames of the target video corresponding to the current slide position of the progress bar in the preview area, allowing users to select the video cover of the target video. In response to the user's sliding action, the terminal can receive the user's sliding action on the playback progress bar for the target video on the video editing page.

[0060] Step 202: Based on the sliding operation and sliding speed information, determine multiple target video frames from the multiple video frames included in the target video.

[0061] Among them, the sliding speed information is used to characterize the sliding speed of the sliding operation in different areas of the playback progress bar.

[0062] Optionally, the target video frame is the cover frame used by the user to select a video cover from among the multiple video frames included in the target video. Optionally, the number of target video frames may be less than the number of multiple video frames included in the target video.

[0063] In some exemplary embodiments, after receiving a sliding operation on the playback progress bar of the target video, the terminal can obtain the sliding speed information.

[0064] In one possible implementation, for the playback progress bar, a listener for the playback progress bar is pre-deployed. The listener captures the movement data of the sliding operation in different areas of the playback progress bar in real time and outputs the sliding speed information.

[0065] Furthermore, after acquiring the sliding speed information, the terminal can determine multiple target video frames from the multiple video frames included in the target video based on the sliding operation and the sliding speed information.

[0066] In one possible implementation, the playback progress bar can be divided into different regions of interest and other regions based on the swiping operation and swiping speed information. The region of interest is the progress bar region where the user lingers for a long time, swips slowly, or has a back-and-forth swiping trajectory during the swiping operation of the target video; the other regions are the progress bar regions where the user lingers for a short time, swips quickly, or only passes through briefly in one direction during the swiping operation of the target video.

[0067] Based on the region of interest (ROI) and other regions in the playback progress bar, the ROI and other regions in the target video are determined. For video frames within the ROI, a first frame extraction rule is used to select a first target video frame. For video frames within other regions of the target video, a second frame extraction rule is used to select a second target video frame. Both the first and second target video frames are then designated as the target video frames. The extraction density indicated by the first frame extraction rule is greater than the extraction density indicated by the second frame extraction rule.

[0068] Step 203: Determine the cover frame of the target video based on multiple target video frames.

[0069] Optionally, the cover frame refers to the video frame used as the video cover of the target video among the multiple video frames included in the target video.

[0070] In some exemplary embodiments, after determining multiple target video frames from multiple video frames included in the target video based on the sliding operation and sliding speed information, the terminal can determine the cover frame of the target video based on the multiple target video frames.

[0071] In one possible implementation, multiple target video frames can be decoded and rendered for the user to select the cover frame of the target video from the multiple target video frames, and the target video frame selected by the user can be used as the cover frame of the target video.

[0072] In another possible implementation, the cover frame of the target video can be determined from multiple target video frames according to preset selection rules. These preset selection rules can be rules pre-set by technicians based on actual needs. For example, the preset selection rules could instruct the determination of the cover frame from multiple target video frames based on their resolution parameters. Alternatively, the preset selection rules could instruct the determination of the cover frame from multiple target video frames based on the proportion of the core object in the frame.

[0073] The aforementioned cover frame determination method first receives a sliding operation on the playback progress bar of the target video. Then, based on the sliding operation and sliding speed information, it determines multiple target video frames from the multiple video frames included in the target video. The sliding speed information is used to characterize the sliding speed of the sliding operation on different areas of the playback progress bar. Finally, based on the multiple target video frames, it determines the cover frame of the target video. The cover frame determination method provided in this application determines multiple target video frames from the multiple video frames of the target video according to the sliding operation and sliding speed information on the playback progress bar of the target video. Then, it decodes the target video frames to allow the user to select the cover frame of the target video. Since it does not decode all video frames but selects a portion of video frames for user selection, it avoids the response lag problem caused by decoding all video frames in the prior art, thereby improving the user experience.

[0074] In one exemplary embodiment, such as Figure 3 As shown, based on the sliding operation and sliding speed information, multiple target video frames are determined from the multiple video frames included in the target video, including the following steps:

[0075] Step 301: Based on the sliding operation, determine multiple playback progress points of the target video.

[0076] Optionally, a playback progress point, also known as a seek point, refers to a specific time node on the playback timeline that is triggered by the user's swipe gesture and used to accurately locate the target video.

[0077] For example, each playback progress point corresponds to a timestamp on the playback progress bar of the target video, such as... Figure 4 As shown, in Figure 4 In the diagram, S represents the playback progress point, and t represents the timestamp.

[0078] The timestamp on the playback progress bar corresponds to the time of a specific video frame among the multiple video frames included in the target video. In other words, each playback progress point can correspond to a single video frame among the multiple video frames included in the target video.

[0079] In some exemplary embodiments, after receiving a sliding operation on the playback progress bar of the target video, the terminal can determine multiple playback progress points of the target video based on the sliding operation.

[0080] In one possible implementation, when the user swipes the playback progress bar, a pre-deployed listener for the playback progress bar will start listening for the swipe operation and generate multiple playback progress points according to preset rules.

[0081] For example, the preset rule could be to generate multiple playback progress points based on the position and duration of the swipe gesture on the playback progress bar. Specifically, when a user swipes the playback progress bar, if the duration of the swipe at a certain position exceeds a preset time threshold, a playback progress point can be generated at that position.

[0082] For example, the preset rule could also generate multiple playback progress points based on the sliding speed of the user on the playback progress bar. Specifically, when the user slides the playback progress bar, if the sliding speed suddenly decreases from fast to slow, a playback progress point can be generated at the instant of deceleration.

[0083] In an optional embodiment of this application, after determining multiple playback progress points of the target video based on the sliding operation, the multiple playback progress points can be stored one by one in the playback progress point queue, and then the multiple playback progress points can be filtered. That is, the step of determining multiple target progress points from the multiple playback progress points based on the sliding speed information is performed.

[0084] Step 302: Based on the sliding speed information, determine multiple target progress points from multiple playback progress points.

[0085] Optionally, the target progress point is the playback progress point used to determine the target video frame among multiple playback progress points. Optionally, the number of target progress points can be less than the number of multiple playback progress points of the target video.

[0086] In some exemplary embodiments, after determining multiple playback progress points of the target video based on the swiping operation, the terminal can determine multiple target progress points from the multiple playback progress points according to the swiping speed information.

[0087] In one possible implementation, the sliding speed of different progress bar areas can be determined based on the sliding speed information. The progress bar areas can be divided into regions of interest and other regions based on the sliding speed of different progress bar areas. The sliding speed of the region of interest is less than the preset speed, while the sliding speed of other regions is greater than or equal to the preset speed. The preset speed can be pre-set by technicians according to actual needs.

[0088] Then, the position of each of the multiple playback progress points in the playback progress bar can be determined. Playback progress points within the region of interest are identified as target progress points, while those within other regions are not identified as target progress points.

[0089] Step 303: Take the video frames corresponding to the multiple target progress points as multiple target video frames.

[0090] In some exemplary embodiments, after determining multiple target progress points from multiple playback progress points based on the sliding speed information, the terminal can use the video frames corresponding to the multiple target progress points as multiple target video frames.

[0091] In one possible implementation, the corresponding video frame for each target progress point among the multiple video frames included in the target video can be determined first, and then these video frames can be identified as the target video frames.

[0092] The above method, based on a sliding operation, first determines multiple playback progress points of the target video, then determines multiple target progress points from these multiple playback progress points based on the sliding speed information, and finally uses the video frames corresponding to the multiple target progress points as multiple target video frames. By using the sliding speed information to select target video frames from the multiple video frames included in the target video, the accuracy and reliability of target video frame determination are improved.

[0093] In one exemplary embodiment, such as Figure 5 As shown, determining the sliding speed information includes the following steps:

[0094] Step 501: For every two adjacent playback progress points, obtain the time interval between the two playback progress points.

[0095] In some exemplary embodiments, during the process of determining the sliding speed information, the terminal may first obtain the time interval between every two adjacent playback progress points among multiple playback progress points.

[0096] In one possible implementation, each playback progress point corresponds to a timestamp on the playback progress bar of the target video. Therefore, the timestamp corresponding to each playback progress point can be obtained first, and then the time interval between each two adjacent playback progress points can be determined based on the timestamps corresponding to each two adjacent playback progress points.

[0097] For example, if the first and second playback progress points are adjacent among multiple playback progress points, and the timestamp corresponding to the first playback progress point is T1 and the timestamp corresponding to the second playback progress point is T2, then the time interval between the first and second playback progress points is T2-T1.

[0098] Furthermore, assuming that the multiple playback progress points include multiple sequentially adjacent first playback progress points, second playback progress points, third playback progress points, fourth playback progress points, fifth playback progress points, and sixth playback progress points, and the timestamp corresponding to the first playback progress point is T1, the timestamp corresponding to the second playback progress point is T2, the timestamp corresponding to the third playback progress point is T3, the timestamp corresponding to the fourth playback progress point is T4, the timestamp corresponding to the fifth playback progress point is T5, and the timestamp corresponding to the sixth playback progress point is T6, then the time interval between any two adjacent playback progress points is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5, respectively.

[0099] Step 502: Use the obtained time intervals as sliding speed information.

[0100] In some exemplary embodiments, after determining the time interval between every two adjacent playback progress points, the terminal can use the obtained time intervals as sliding speed information.

[0101] In one possible implementation, the time interval between any two adjacent playback progress points can be determined as the sliding speed information.

[0102] For example, suppose multiple playback progress points include a first playback progress point, a second playback progress point, a third playback progress point, a fourth playback progress point, a fifth playback progress point, and a sixth playback progress point, and the timestamp corresponding to the first playback progress point is T1, the timestamp corresponding to the second playback progress point is T2, the timestamp corresponding to the third playback progress point is T3, the timestamp corresponding to the fourth playback progress point is T4, the timestamp corresponding to the fifth playback progress point is T5, and the timestamp corresponding to the sixth playback progress point is T6. Then, the time interval between any two adjacent playback progress points is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5, respectively. The sliding speed information is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5.

[0103] The method described above, which first obtains the time interval between two adjacent playback progress points and then uses the obtained time intervals as sliding speed information, can effectively improve the accuracy of the determined sliding speed information.

[0104] In one exemplary embodiment, such as Figure 6 As shown, based on the sliding speed information, multiple target progress points are determined from multiple playback progress points, including the following steps:

[0105] Step 601: Determine multiple target progress areas based on the sliding speed information.

[0106] The sliding speeds corresponding to each target progress area are different; that is, the target progress areas are the progress bar areas with different sliding speeds in the playback progress bar.

[0107] In some exemplary embodiments, after determining the sliding speed information, the terminal can determine multiple target progress areas based on the sliding speed information.

[0108] In one possible implementation, the sliding speed information is the time interval between every two adjacent playback progress points. Each playback progress point corresponds to a timestamp on the playback progress bar of the target video. Thus, two adjacent playback progress points can determine two timestamps on the playback progress bar, and a progress bar area can be determined based on these two timestamps.

[0109] Furthermore, after determining multiple progress bar areas in the playback progress bar based on the sliding speed information, progress bar areas with the same sliding speed information, or whose sliding speed information is within the same preset threshold range and are adjacent, can be determined as a target progress area.

[0110] For example, suppose multiple playback progress points include a first playback progress point, a second playback progress point, a third playback progress point, a fourth playback progress point, a fifth playback progress point, and a sixth playback progress point, and the timestamp corresponding to the first playback progress point is T1, the timestamp corresponding to the second playback progress point is T2, the timestamp corresponding to the third playback progress point is T3, the timestamp corresponding to the fourth playback progress point is T4, the timestamp corresponding to the fifth playback progress point is T5, and the timestamp corresponding to the sixth playback progress point is T6. Then, the time interval between any two adjacent playback progress points is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5, respectively. The sliding speed information is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5.

[0111] Furthermore, the progress bar area corresponding to the sliding speed information T2-T1 is C1, the progress bar area corresponding to the sliding speed information T3-T2 is C2, the progress bar area corresponding to the sliding speed information T4-T3 is C3, the progress bar area corresponding to the sliding speed information T5-T4 is C4, and the progress bar area corresponding to the sliding speed information T6-T5 is C5. C1 and C2 have the same sliding speed information, or their sliding speed information is within the same preset threshold range; therefore, C1 and C2 can be identified as a single target progress area. C4 has the same sliding speed information as C1 and C2, or its sliding speed information is within the same preset threshold range, but since it is not adjacent to C2, C4 can also be identified as a target progress area. C3 and C5 have the same sliding speed information, or their sliding speed information is within the same preset threshold range, but since they are not adjacent, they are each two separate target progress areas.

[0112] Step 602: Determine the target progress point based on the playback progress points included in each target progress area.

[0113] The methods for determining target progress points differ in different target progress zones.

[0114] In some exemplary embodiments, after determining multiple target progress areas based on the sliding speed information, the terminal can determine the target progress point at the playback progress point included in each target progress area.

[0115] In one possible implementation, for any target schedule region among the target schedule regions, the method for determining the target schedule point of that target schedule region can be determined first, and the target schedule point can be determined in that target schedule region according to that method.

[0116] The above method first determines multiple target progress areas based on the sliding speed information, and then determines the target progress point based on the playback progress points included in each target progress area. Furthermore, the method of determining the target progress point is different in different target progress areas. Since different target progress point determination methods are used for different target progress areas, the accuracy of target progress point determination is improved.

[0117] In one exemplary embodiment, such as Figure 7 As shown, based on the sliding speed information, multiple target progress zones are determined, including the following steps:

[0118] Step 701: For every two adjacent playback progress points, determine the sliding speed type of the progress bar area between the two playback progress points based on the time interval between the two playback progress points.

[0119] For example, the sliding speed type may include two sliding speed types, namely a first sliding speed type and a second sliding speed type. The first sliding speed type indicates a first sliding speed that is greater than the second sliding speed indicated by the second sliding speed type.

[0120] Furthermore, the sliding speed type can also include two or more sliding speed types, namely, the first sliding speed type, the second sliding speed type, ..., the Nth sliding speed type. Among them, if sorted in descending order of sliding speed, the first sliding speed indicated by the first sliding speed type > the second sliding speed indicated by the second sliding speed type > ... > the Nth sliding speed indicated by the Nth sliding speed type.

[0121] In some exemplary embodiments, after determining the sliding speed information, the terminal determines the sliding speed type corresponding to the progress bar area between two adjacent playback progress points based on the time interval between the two playback progress points.

[0122] In one possible implementation, the sliding speed information is the time interval between every two adjacent playback progress points. Therefore, the time interval between every two adjacent playback progress points can be determined first based on the sliding speed information, and then the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points can be determined based on the time interval between every two adjacent playback progress points.

[0123] Specifically, a preset time threshold can be obtained, and the sliding speed type of the progress bar area between each two adjacent playback progress points can be determined based on the time interval between each two adjacent playback progress points and the preset time threshold. The preset time threshold can be pre-set by technicians according to actual needs. In one optional approach, the preset time threshold can be 100 milliseconds.

[0124] For example, assuming the sliding speed type includes the first sliding speed type and the second sliding speed type mentioned above, and assuming the multiple playback progress points include multiple sequentially adjacent first playback progress points, second playback progress points, third playback progress points, fourth playback progress points, fifth playback progress points, and sixth playback progress points, and the timestamp corresponding to the first playback progress point is T1, the timestamp corresponding to the second playback progress point is T2, the timestamp corresponding to the third playback progress point is T3, the timestamp corresponding to the fourth playback progress point is T4, the timestamp corresponding to the fifth playback progress point is T5, and the timestamp corresponding to the sixth playback progress point is T6, then the time interval between each two adjacent playback progress points is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5, respectively, and the sliding speed information is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5.

[0125] Furthermore, the relationship between the time interval between any two adjacent playback progress points and a preset time threshold can be determined. If the time interval between any two adjacent playback progress points is greater than the preset time threshold, the sliding speed type corresponding to the progress bar area between the two adjacent playback progress points can be determined as the first sliding speed type; if the time interval between any two adjacent playback progress points is less than or equal to the preset time threshold, the sliding speed type corresponding to the progress bar area between the two adjacent playback progress points can be determined as the second sliding speed type.

[0126] If the progress bar area corresponding to sliding speed information T2-T1 is C1, the progress bar area corresponding to sliding speed information T3-T2 is C2, the progress bar area corresponding to sliding speed information T4-T3 is C3, the progress bar area corresponding to sliding speed information T5-T4 is C4, and the progress bar area corresponding to sliding speed information T6-T5 is C5, and if T2-T1 is greater than the preset time threshold, then the sliding speed type corresponding to the progress bar area C1 between the first playback progress point and the second playback progress point can be determined to be the first sliding speed type; if T3-T2 is also greater than the preset time threshold, then the sliding speed type between the third playback progress point and the second playback progress point can be determined to be the first sliding speed type. The sliding speed type corresponding to the progress bar area C2 is also the first sliding speed type; if T4-T3 is less than the preset time threshold, then the sliding speed type corresponding to the progress bar area C3 between the fourth playback progress point and the third playback progress point can be determined to be the second sliding speed type; if T5-T4 is equal to the preset time threshold, then the sliding speed type corresponding to the progress bar area C4 between the fifth playback progress point and the fourth playback progress point can also be determined to be the second sliding speed type; if T6-T5 is greater than the preset time threshold, then the sliding speed type corresponding to the progress bar area C5 between the sixth playback progress point and the fifth playback progress point can be determined to be the first sliding speed type.

[0127] Step 702: Determine multiple target progress areas based on the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points.

[0128] Each target progress area includes at least one progress bar area, and the sliding speed types corresponding to each progress bar area are the same.

[0129] In some exemplary embodiments, after determining the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points, the terminal can determine multiple target progress areas based on the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points.

[0130] In one possible implementation, progress bar areas with the same sliding speed type can be identified first. Then, it can be determined whether the progress bar areas with the same sliding speed type are adjacent. If they are adjacent, multiple adjacent progress bar areas with the same sliding speed type are identified as a target progress area. If they are not adjacent, then one progress bar area is identified as a target progress area.

[0131] For example, assuming the sliding speed type includes the first sliding speed type and the second sliding speed type mentioned above, and assuming the multiple playback progress points include multiple sequentially adjacent first playback progress points, second playback progress points, third playback progress points, fourth playback progress points, fifth playback progress points, and sixth playback progress points, and the timestamp corresponding to the first playback progress point is T1, the timestamp corresponding to the second playback progress point is T2, the timestamp corresponding to the third playback progress point is T3, the timestamp corresponding to the fourth playback progress point is T4, the timestamp corresponding to the fifth playback progress point is T5, and the timestamp corresponding to the sixth playback progress point is T6, then the time interval between each two adjacent playback progress points is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5, respectively, and the sliding speed information is T2-T1, T3-T2, T4-T3, T5-T4, and T6-T5.

[0132] If the progress bar area corresponding to sliding speed information T2-T1 is C1, the progress bar area corresponding to sliding speed information T3-T2 is C2, the progress bar area corresponding to sliding speed information T4-T3 is C3, the progress bar area corresponding to sliding speed information T5-T4 is C4, and the progress bar area corresponding to sliding speed information T6-T5 is C5, and the progress bar area C1 is the first sliding speed type, the progress bar area C2 is the first sliding speed type, the progress bar area C3 is the second sliding speed type, the progress bar area C4 is the second sliding speed type, and the progress bar area C5 is the first sliding speed type, then it can be determined that the sliding speed types are the same for C1, C2, and C5, and for C3 and C4.

[0133] Furthermore, determine whether C1, C2, and C5 are adjacent, and whether C3 and C4 are adjacent. If the result is that C1 and C2 are adjacent, and C3 and C4 are adjacent, then the target progress areas can be determined as C1+C2, C3+C4, and C5, respectively.

[0134] In another possible implementation, it can be first determined whether the sliding speed type of each two adjacent progress bar areas is the same. If they are the same, then each two adjacent progress bar areas are merged, and after merging, the step of determining whether the sliding speed type of each two adjacent progress bar areas is the same is continued until the sliding speed type of each two adjacent progress bar areas is the same. Then, the target progress bar area is determined based on the current progress bar area.

[0135] The method described above, which first determines the sliding speed type of the progress bar area between two adjacent playback progress points based on the time interval between the two playback progress points, and then determines multiple target progress areas based on the sliding speed type of the progress bar area between each pair of adjacent playback progress points, wherein each target progress area includes at least one progress bar area and the sliding speed type of each included progress bar area is the same, and merges adjacent progress bar areas with the same sliding speed type to obtain the target progress bar area, can improve the efficiency of extracting target progress points from the target progress bar area.

[0136] In an exemplary embodiment, the target progress area includes a first progress area, and the sliding speed type corresponding to the first progress area is a high-speed sliding type. Based on the playback progress points included in each target progress area, the target progress point is determined, including: from the playback progress points included in the first progress area, determining the playback progress points that satisfy the first preset condition in order, and using them as the target progress points.

[0137] Optionally, the first preset condition can be pre-set by technicians according to actual needs. In one optional approach, the first preset condition can be to determine the playback progress points within the preset range of the starting position and the playback progress points within the preset range of the ending position in the first progress region as target progress points. For example, the playback progress points ordered as first, last, and second to last in the first progress region can be determined as target progress points.

[0138] In some exemplary embodiments, the target progress area may include at least one first progress area, and the sliding speed type corresponding to the first progress area is all high-speed sliding type. For the first progress area, the terminal can determine the playback progress points that meet the first preset conditions from the playback progress points included in the first progress area, and use them as the target progress points.

[0139] In one possible implementation, the terminal can first determine the order of the playback progress points included in the first progress area, and then determine the playback progress points that are ordered as first, last, and second to last as the target progress points.

[0140] The aforementioned target progress area includes a first progress area, and the sliding speed type corresponding to the first progress area is a high-speed sliding type. From the playback progress points included in the first progress area, the method of determining and sorting playback progress points that meet the first preset condition as target progress points is as follows: In the first progress area of ​​the high sliding type, that is, in the area where the user's interest level is low, only a portion of the playback progress points are retained as target progress points, so that the number of target video frames determined based on the target progress points can be greatly reduced, ensuring smoothness while taking into account decoding performance.

[0141] In one exemplary embodiment, such as Figure 8 As shown, the target progress area includes a second progress area, and the sliding speed type corresponding to the second progress area is slow sliding. Based on the playback progress points included in each target progress area, the target progress point is determined, including the following steps:

[0142] Step 801: Determine candidate progress points from the playback progress points included in the second progress area.

[0143] Optionally, the slow swipe type indicates a swipe speed that is less than the fast swipe type indicates.

[0144] In some exemplary embodiments, the target progress area may include at least one second progress area, and the sliding speed type of the second progress area is all slow sliding type. For the second progress area, the terminal may first determine the candidate progress point from the playback progress points included in the second progress area.

[0145] In one possible implementation, the playback progress points included in the second progress region can be selected as candidate progress points sequentially. In an alternative implementation, the first and last playback progress points in the second progress region are not selected as candidate progress points.

[0146] Step 802: For each candidate progress point, determine whether the time interval between the candidate progress point and the reference progress point meets the second preset condition.

[0147] For example, a reference progress point can be used to determine whether there are any instances of high repetition or identical frames among the video frames corresponding to the playback progress points included in the second progress region. Optionally, the reference progress point can be a playback progress point located before the candidate progress point, or an adjusted playback progress point located before the candidate progress point. For instance, if the current candidate progress point is the third playback progress point in the second progress region, the reference progress point can be the second playback progress point in the second progress region, or the adjusted second playback progress point.

[0148] For example, the second preset condition could be determining whether the time interval between the candidate progress point and the reference progress point is greater than the frame interval between video frames of the target video. This frame interval could be 1 / 2fps*1000, where fps is the frame rate of the target video, that is, the number of video frames contained in one second of the target video.

[0149] In some exemplary embodiments, after determining candidate progress points from the playback progress points included in the second progress area, the terminal can determine whether the time interval between the candidate progress point and the reference progress point satisfies a second preset condition for each candidate progress point.

[0150] In one possible implementation, for each candidate progress point, a reference progress point can be determined first, and the timestamps of both the candidate progress point and its reference progress point can be obtained. Then, the time interval between the candidate progress point and its reference progress point is determined based on their timestamps. Finally, it is determined whether the time interval between the candidate progress point and its reference progress point is greater than the frame interval between video frames in the target video.

[0151] For example, if the second progress area includes the first, second, third, fourth, fifth, and sixth playback progress points in sequence, then the second playback progress point can be identified as a candidate progress point. It can also be determined whether the time interval between the second and first playback progress points is greater than the frame interval between the video frames of the target video, so as to determine whether the video frames corresponding to the second and third playback progress points have a high degree of repetition or are the same.

[0152] Step 803: If satisfied, the candidate progress point is taken as the target progress point, and the candidate progress point is taken as the reference progress point for the next candidate progress point.

[0153] In some exemplary embodiments, if the terminal determines that the time interval between the candidate progress point and the reference progress point of the candidate progress point is greater than the frame interval between video frames of the target video, it can determine whether the time interval between the candidate progress point and the reference progress point satisfies the second preset condition.

[0154] Furthermore, the terminal can use the candidate progress point as the target progress point and the candidate progress point as the reference progress point for the next candidate progress point.

[0155] In one possible implementation, a candidate progress point can be determined as the target progress point, and the candidate progress point can be used as the reference progress point for the next candidate progress point. Then, the step of determining whether the time interval between the next candidate progress point and the reference progress point meets the second preset condition can be performed.

[0156] For example, if the second progress region includes playback progress points sequentially as the first, second, third, fourth, fifth, and sixth playback progress points, then the second playback progress point can be first identified as a candidate progress point. It can then be determined whether the time interval between the second and first playback progress points is greater than the frame interval between the target video frames. If it is determined that the time interval between the second and first playback progress points is greater than the frame interval between the target video frames, meaning the video frames corresponding to the second and first playback progress points have low repetition, then the second playback progress point can be identified as the target progress point, and used as a reference progress point for the third playback progress point.

[0157] Step 804: If not satisfied, determine a new progress position based on the progress position corresponding to the candidate progress point, and take the progress point corresponding to the new progress position as the target progress point, and take the progress point corresponding to the new progress position as the reference progress point for the next candidate progress point.

[0158] In some exemplary embodiments, if the terminal determines that the time interval between the candidate progress point and the reference progress point of the candidate progress point is less than or equal to the frame interval between video frames of the target video, it can determine that the time interval between the candidate progress point and the reference progress point does not meet the second preset condition.

[0159] Furthermore, the terminal can determine a new progress position based on the progress position corresponding to the candidate progress point, and use the progress point corresponding to the new progress position as the target progress point, and use the progress point corresponding to the new progress position as the reference progress point for the next candidate progress point.

[0160] In one possible implementation, the difference between the time interval between the candidate progress point and the reference progress point of the candidate progress point and the frame interval between the video frames of the target video can be determined first. Then, a new progress position is determined based on the progress position corresponding to the candidate progress point and the difference. Then, the progress point corresponding to the new progress position is taken as the target progress point, and the progress point corresponding to the new progress position is taken as the reference progress point of the next candidate progress point. Then, the step of determining whether the time interval between the next candidate progress point and the reference progress point meets the second preset condition is executed.

[0161] For example, if the second progress region includes playback progress points sequentially as the first, second, third, fourth, fifth, and sixth playback progress points, then the second playback progress point can be first identified as a candidate progress point. It can then be determined whether the time interval between the second and first playback progress points is greater than the frame interval between the target video frames. If it is determined that the time interval between the second and first playback progress points is greater than the frame interval between the target video frames, then the second playback progress point can be identified as the target progress point, and used as a reference progress point for the third playback progress point.

[0162] Next, the third playback progress point is determined as a candidate progress point, and it is determined whether the time interval between the third playback progress point and the second playback progress point is greater than the frame interval between the video frames of the target video. If it is determined that the time interval between the third playback progress point and the second playback progress point is less than the frame interval between the video frames of the target video, then the difference between the time interval between the third playback progress point and the second playback progress point and the frame interval between the video frames of the target video is determined. Based on the progress position corresponding to the third playback progress point and this difference, a new progress position is determined. The progress point corresponding to the new progress position is taken as the target playback progress point, and the progress point corresponding to the new progress position is taken as the reference progress point for the next candidate progress point, which is also the reference progress point for the fourth playback progress point.

[0163] Then, it is determined whether the time interval between the fourth playback progress point and the progress point corresponding to the new progress position is greater than the frame interval between the video frames of the target video. If it is determined that the time interval between the fourth playback progress point and the progress point corresponding to the new progress position is equal to the frame interval between the video frames of the target video, then the difference between the time interval between the fourth playback progress point and the progress point corresponding to the new progress position and the frame interval between the video frames of the target video is determined. Based on the progress position corresponding to the fourth playback progress point and this difference, a new progress position is determined. The progress point corresponding to the new progress position is taken as the target playback progress point, and the progress point corresponding to the new progress position is taken as the reference progress point for the next candidate progress point, which is also the reference progress point for the fifth playback progress point. Then, the step of determining whether the time interval between the fifth playback progress point and the progress point corresponding to the new progress position is greater than the frame interval between the video frames of the target video is executed.

[0164] The above method first determines candidate progress points from the playback progress points included in the second progress area. For each candidate progress point, it determines whether the time interval between the candidate progress point and the reference progress point meets the second preset condition. If it meets the condition, the candidate progress point is used as the target progress point and the candidate progress point is used as the reference progress point for the next candidate progress point. If it does not meet the condition, a new progress position is determined based on the progress position corresponding to the candidate progress point, and the progress point corresponding to the new progress position is used as the target progress point and the progress point corresponding to the new progress position is used as the reference progress point for the next candidate progress point. This method can avoid the determined target video frames being the same video frames or video frames with high repetition.

[0165] In one exemplary embodiment, such as Figure 9 As shown, determining the cover frame of a target video based on multiple target video frames includes the following steps:

[0166] Step 901: Based on multiple target video frames, determine candidate cache frames from the cache frames of the target video.

[0167] Optionally, the cached frames of the target video refer to the video frames that have already been decoded among the multiple video frames of the target video. For example, when the terminal receives the input target video, it can pre-decode the video frames among the multiple video frames of the target video and temporarily store these decoded video frames to form the cached frames of the target video.

[0168] In some exemplary embodiments, after determining multiple target video frames, the terminal can determine candidate cache frames from the cached frames of the target video based on the multiple target video frames.

[0169] In one possible implementation, a cache frame that is identical to any one of the multiple target video frames can be identified as a candidate cache frame. In another possible implementation, a cache frame whose similarity to any one of the multiple target video frames is greater than a preset similarity threshold can also be identified as a candidate cache frame.

[0170] Step 902: Determine the candidate cover frame based on multiple target video frames and candidate buffer frames.

[0171] In some exemplary embodiments, after determining candidate cache frames from the cached frames of the target video based on multiple target video frames, the terminal can determine candidate cover frames based on the multiple target video frames and candidate cache frames.

[0172] In one possible implementation, a candidate cover frame can be determined from candidate cache frames and multiple target video frames that are different from the candidate cache frames, or target video frames with a similarity less than a preset similarity threshold.

[0173] For example, assuming the target video frames include target video frame F1, target video frame F2, target video frame F3, target video frame F4, and target video frame F5, in the process of determining candidate buffer frames from the buffer frames of the target video based on the target video frames, if candidate buffer frames F1' and F3' are determined based on target video frames F1 and F3, then the candidate cover frames can be determined as target video frames F2, F4, F5, F1', and F3'.

[0174] Step 903: Determine the cover frame from the candidate cover frames.

[0175] In some exemplary embodiments, after determining candidate cover frames based on multiple target video frames and candidate cache frames, the terminal can determine the cover frame from the candidate cover frames.

[0176] In one possible implementation, candidate cover frames can be decoded and rendered for the user to select the cover frame of the target video from the candidate cover frames, and the candidate video frame selected by the user can be used as the cover frame of the target video.

[0177] In another possible implementation, the cover frame of the target video can be determined from the candidate cover frames according to preset selection rules. These preset selection rules can be rules pre-set by technicians based on actual needs. For example, the preset selection rules could instruct the determination of the target video's cover frame from the candidate cover frames based on their resolution parameters. Alternatively, the preset selection rules could instruct the determination of the target video's cover frame from the candidate cover frames based on the proportion of the core object in the frame.

[0178] The method described above first determines candidate buffer frames from the buffer frames of the target video based on multiple target video frames, then determines candidate cover frames based on multiple target video frames and candidate buffer frames, and finally determines the cover frame from the candidate cover frames. After determining the target video frames, it does not directly decode multiple target video frames, but first determines whether there are candidate buffer frames that can replace the target video frames in the already decoded buffer frames, thus avoiding the problem of repeatedly decoding the target video frames.

[0179] In an exemplary embodiment, determining candidate cache frames from cached frames of target video based on multiple target video frames includes: for each target video frame, determining whether there is a cache frame in the cache that satisfies a third preset condition in terms of the time interval between the target video frame and the target video frame; if so, then using the cache frame that satisfies the third preset condition as a candidate cache frame.

[0180] For example, the third preset condition could be determining whether there exists a cached frame in the cached frame whose time interval with the target video frame is less than or equal to the frame interval between video frames of the target video. This frame interval could be 1 / 2fps*1000, where fps is the frame rate of the target video, that is, the number of video frames contained in 1 second of the target video.

[0181] In some exemplary embodiments, after determining multiple target video frames, the terminal can determine, for each target video frame, whether there is a cached frame in the cached frames whose time interval with the target video frame satisfies a third preset condition.

[0182] In one possible implementation, for each target video frame, the time interval between the target video frame and the cached frames of the target video is first determined, and then it is determined whether the time interval is less than or equal to the frame interval between the video frames of the target video. If so, it is determined that there is a cached frame in the cache whose time interval with the target video frame satisfies the third preset condition.

[0183] Furthermore, after determining that there is a cached frame in the cached frame that satisfies the third preset condition in terms of the time interval between it and the target video frame, the terminal can use the cached frame that satisfies the third preset condition as a candidate cached frame.

[0184] The above method, which determines whether there is a cache frame in the cache that satisfies the third preset condition in terms of the time interval between each target video frame and the target video frame, and if so, uses the cache frame that satisfies the third preset condition as a candidate cache frame, improves the accuracy of candidate cache frame determination by judging whether the time interval between each cache frame and each target video frame satisfies the third preset condition.

[0185] In one exemplary embodiment, such as Figure 10 As shown, the candidate cover frame is determined based on multiple target video frames and candidate buffer frames, including the following steps:

[0186] Step 1001: For each candidate cache frame, determine whether the candidate cache frame has been displayed.

[0187] In some exemplary embodiments, after determining the candidate cache frames, the terminal may first determine whether each candidate cache frame has been displayed.

[0188] In some exemplary embodiments, for each candidate cached frame, it can be determined whether the candidate cached frame has been rendered onto the screen, and based on the determination result, it can be determined whether the candidate cached frame has been displayed.

[0189] Step 1002: If not, then use the candidate buffer frame as the candidate cover frame.

[0190] In some exemplary embodiments, for each candidate cache frame, if it is determined that the candidate cache frame has not been displayed, the candidate cache frame can be used as a candidate cover frame.

[0191] In one possible implementation, for each candidate cached frame, if it is determined that the candidate cached frame has not been rendered onto the screen, then it can be determined that the candidate cached frame has not been displayed, and thus the candidate cached frame can be used as a candidate cover frame.

[0192] Step 1003: If it has been displayed, then any video frame following the target video frame corresponding to the candidate cache frame shall be used as the candidate cover frame.

[0193] In some exemplary embodiments, for each candidate cache frame, if it is determined that the candidate cache frame has already been displayed, any video frame located after the target video frame corresponding to the candidate cache frame can be used as a candidate cover frame.

[0194] In one possible implementation, for each candidate buffer frame, if it is determined that the candidate buffer frame has been rendered onto the screen, then it can be determined that the candidate buffer frame has been displayed, and any video frame after the target video frame corresponding to the candidate buffer frame can be used as the candidate cover frame.

[0195] For example, in the process of determining candidate buffer frames from the buffer frames of the target video based on the target video frame, if candidate buffer frames F1' and F3' are determined based on the target video frame F1 and F3, then target video frame F1 can be determined as the target video frame corresponding to candidate buffer frame F1', and target video frame F3 can be determined as the target video frame corresponding to candidate buffer frame F3'. If it is determined that candidate buffer frame F1' has already been displayed, then any video frame following target video frame F1 can be used as a candidate cover frame. In an alternative approach, the first video frame following target video frame F1 can be used as a candidate cover frame.

[0196] In an optional embodiment of this application, in order to ensure the accuracy of the user stopping the frame preview, the last frame in the target video frame does not perform the above steps. That is, the last frame in the target video frame must be a candidate cover frame, and there is no need to determine whether there is a candidate cache frame in the cache frame that can replace it.

[0197] The method described above, which determines whether a candidate cache frame has been displayed before, and if not, uses it as a candidate cover frame; if it has been displayed before, uses any video frame following the target video frame corresponding to the candidate cache frame as a candidate cover frame, can improve the accuracy of candidate cover frames.

[0198] In an optional embodiment of this application, the above method can be used to determine candidate cover frames for both the first progress region and the second progress region. However, for the second progress region, since there are many target progress points, there are also many target video frames to be determined. Therefore, in order to ensure the decoding speed, it is necessary to filter the target video frames corresponding to the target progress points.

[0199] In one possible implementation, for the second progress region, it is determined whether the number of target video frames corresponding to the second progress region is greater than a preset number threshold. If it is greater, the target video frames located in the middle position of the target video frames corresponding to the second progress region are discarded. The preset number threshold can be determined based on the decoding performance of the decoding device.

[0200] In one exemplary embodiment, such as Figure 11 As shown, determining the cover frame from the candidate cover frames includes the following steps:

[0201] Step 1101: Display candidate cover frames.

[0202] In some exemplary embodiments, after determining the candidate cover frames, the terminal sequentially decodes the candidate cover frames that have not been decoded, and renders the decoded candidate cover frames and the decoded candidate cover frames onto the screen for display.

[0203] Step 1102: In response to the selection operation for the candidate cover frame, determine the candidate cover frame indicated by the selection operation as the cover frame.

[0204] In some exemplary embodiments, after the terminal displays candidate cover frames, the user can select the candidate cover frames according to actual needs.

[0205] Furthermore, in response to the selection operation for the candidate cover frame, the terminal can determine the candidate cover frame indicated by the selection operation as the cover frame.

[0206] The method described above, which first displays candidate cover frames and then, in response to a selection operation on a candidate cover frame, determines the candidate cover frame indicated by the selection operation as the cover frame, improves the accuracy of the determined cover frame.

[0207] In one exemplary embodiment, such as Figure 12 As shown, another method for determining the cover frame is provided, which includes the following steps:

[0208] Step 1201: Receive the sliding operation of the playback progress bar for the target video; based on the sliding operation, determine multiple playback progress points of the target video; for every two adjacent playback progress points, obtain the time interval between the two playback progress points; use the obtained time intervals as sliding speed information.

[0209] Step 1202: For every two adjacent playback progress points, determine the sliding speed type of the progress bar area between the two playback progress points based on the time interval between the two playback progress points.

[0210] Step 1203: Based on the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points, determine multiple target progress areas; the target progress areas include a first progress area and a second progress area, the sliding speed type corresponding to the first progress area is a high-speed sliding type, and the sliding speed type corresponding to the second progress area is a slow sliding type.

[0211] Step 1204: From the playback progress points included in the first progress area, determine the playback progress points that meet the first preset conditions and use them as target progress points.

[0212] Step 1205: Determine candidate progress points from the playback progress points included in the second progress area; for each candidate progress point, determine whether the time interval between the candidate progress point and the reference progress point meets the second preset condition.

[0213] Step 1206: If satisfied, the candidate progress point is taken as the target progress point and the candidate progress point is taken as the reference progress point for the next candidate progress point; if not satisfied, a new progress position is determined based on the progress position corresponding to the candidate progress point, and the progress point corresponding to the new progress position is taken as the target progress point and the progress point corresponding to the new progress position is taken as the reference progress point for the next candidate progress point.

[0214] Step 1207: Take the video frames corresponding to the multiple target progress points as multiple target video frames; for each target video frame, determine whether there is a cache frame in the cache that satisfies the third preset condition in terms of the time interval between the target video frame and the cache frame. If there is, take the cache frame that satisfies the third preset condition as a candidate cache frame.

[0215] Step 1208: For each candidate buffer frame, determine whether the candidate buffer frame has been displayed; if not, use the candidate buffer frame as the candidate cover frame; if it has been displayed, use any video frame after the target video frame corresponding to the candidate buffer frame as the candidate cover frame.

[0216] Step 1209: Display candidate cover frames; in response to the selection operation for candidate cover frames, determine the candidate cover frame indicated by the selection operation as the cover frame.

[0217] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps. It is understood that the steps in different embodiments can be freely combined as needed, and all non-contradictory solutions formed by such combinations are within the scope of protection of this application.

[0218] Based on the same inventive concept, this application also provides a cover frame determining device for implementing the cover frame determining method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations in one or more cover frame determining device embodiments provided below can be found in the limitations of the cover frame determining method described above, and will not be repeated here.

[0219] In one exemplary embodiment, such as Figure 13 As shown, a cover frame determining device is provided, including: a receiving module 1301, an execution module 1302, and a determining module 1303, wherein:

[0220] The receiving module 1301 is used to receive the sliding operation of the playback progress bar of the target video;

[0221] The execution module 1302 is used to determine multiple target video frames from multiple video frames included in the target video based on the sliding operation and sliding speed information. The sliding speed information is used to characterize the sliding speed of the sliding operation in different progress bar areas of the playback progress bar.

[0222] The determination module 1303 is used to determine the cover frame of the target video based on multiple target video frames.

[0223] In one embodiment, the execution module 1302 is specifically used to determine multiple playback progress points of the target video based on the sliding operation; determine multiple target progress points from the multiple playback progress points according to the sliding speed information; and take the video frames corresponding to the multiple target progress points as multiple target video frames.

[0224] In one embodiment, the execution module 1302 is specifically used to obtain the time interval between two adjacent playback progress points and use the obtained time intervals as sliding speed information.

[0225] In one embodiment, the execution module 1302 is specifically used to determine multiple target progress regions based on the sliding speed information, wherein the sliding speed corresponding to each target progress region is different; and to determine a target progress point based on the playback progress points included in each target progress region, wherein the method of determining the target progress point is different in different target progress regions.

[0226] In one embodiment, the execution module 1302 is specifically configured to, for every two adjacent playback progress points, determine the sliding speed type corresponding to the progress bar area between the two playback progress points based on the time interval between the two playback progress points; and determine multiple target progress areas based on the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points, wherein each target progress area includes at least one progress bar area, and the sliding speed type corresponding to each of the included progress bar areas is the same.

[0227] In one embodiment, the target progress area includes a first progress area, and the sliding speed type corresponding to the first progress area is a high-speed sliding type. The execution module 1302 is specifically used to determine, sort, the playback progress points that meet the first preset conditions from the playback progress points included in the first progress area, as the target progress points.

[0228] In one embodiment, the target progress region includes a second progress region, and the sliding speed type corresponding to the second progress region is a slow sliding type. The execution module 1302 is specifically used to determine candidate progress points from the playback progress points included in the second progress region; for each candidate progress point, determine whether the time interval between the candidate progress point and the reference progress point meets a second preset condition; if it meets the condition, then the candidate progress point is used as the target progress point, and the candidate progress point is used as the reference progress point for the next candidate progress point; if it does not meet the condition, then a new progress position is determined based on the progress position corresponding to the candidate progress point, and the progress point corresponding to the new progress position is used as the target progress point, and the progress point corresponding to the new progress position is used as the reference progress point for the next candidate progress point.

[0229] In one embodiment, the determining module 1303 is specifically configured to determine candidate cache frames from cache frames of target video based on multiple target video frames; determine candidate cover frames based on multiple target video frames and candidate cache frames; and determine cover frames from candidate cover frames.

[0230] In one embodiment, the determining module 1303 is specifically used to determine, for each target video frame, whether there is a cache frame in the cache that satisfies a third preset condition in terms of the time interval between the cache frame and the target video frame; if so, the cache frame that satisfies the third preset condition is taken as a candidate cache frame.

[0231] In one embodiment, the determining module 1303 is specifically used to determine whether each candidate cache frame has been displayed; if not, the candidate cache frame is used as a candidate cover frame; if it has been displayed, any video frame following the target video frame corresponding to the candidate cache frame is used as a candidate cover frame.

[0232] In one embodiment, the determining module 1303 is specifically used to display candidate cover frames; in response to a selection operation for a candidate cover frame, the candidate cover frame indicated by the selection operation is determined as the cover frame.

[0233] Each module in the aforementioned cover frame determining device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can call and execute the operations corresponding to each module.

[0234] In one exemplary embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 14As shown, the computer device includes a processor, memory, input / output interfaces, a communication interface, a display unit, and an input device. The processor, memory, and input / output interfaces are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interfaces. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The input / output interfaces are used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, Near Field Communication (NFC), or other technologies. When executed by the processor, the computer program implements a cover frame determination method. The display unit is used to form a visually visible image and can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The input device of the computer device can be a touch layer covering the display screen, or buttons, trackballs, or touchpads set on the casing of the computer device, or external keyboards, touchpads, or mice, etc.

[0235] Those skilled in the art will understand that Figure 14 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0236] In one exemplary embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the cover frame determination method described in any of the above embodiments.

[0237] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps of the cover frame determination method described in any of the above embodiments.

[0238] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps of the cover frame determination method described in any of the above embodiments.

[0239] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.

[0240] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0241] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A method for determining a cover frame, characterized in that, The method includes: Receive swipe gestures on the playback progress bar of the target video; Based on the sliding operation and sliding speed information, multiple target video frames are determined from the multiple video frames included in the target video. The sliding speed information is used to characterize the sliding speed of the sliding operation on different progress bar areas of the playback progress bar. Based on the multiple target video frames, the cover frame of the target video is determined.

2. The method according to claim 1, characterized in that, The step of determining multiple target video frames from multiple video frames included in the target video based on the sliding operation and sliding speed information includes: Based on the sliding operation, multiple playback progress points of the target video are determined; Based on the sliding speed information, multiple target progress points are determined from the multiple playback progress points; The video frames corresponding to the multiple target progress points are taken as the multiple target video frames.

3. The method according to claim 2, characterized in that, The method further includes: For every two adjacent playback progress points, obtain the time interval between the two playback progress points; The obtained time intervals are used as the sliding speed information.

4. The method according to claim 3, characterized in that, The step of determining multiple target progress points from the multiple playback progress points based on the sliding speed information includes: Based on the sliding speed information, multiple target progress regions are determined, and each target progress region corresponds to a different sliding speed. The target progress point is determined based on the playback progress points included in each target progress region, wherein the method of determining the target progress point is different in different target progress regions.

5. The method according to claim 4, characterized in that, The step of determining multiple target progress regions based on the sliding speed information includes: For every two adjacent playback progress points, the sliding speed type corresponding to the progress bar area between the two playback progress points is determined based on the time interval between the two playback progress points. Based on the sliding speed type corresponding to the progress bar area between every two adjacent playback progress points, the plurality of target progress areas are determined, wherein each target progress area includes at least one progress bar area, and the sliding speed type corresponding to each of the included progress bar areas is the same.

6. The method according to claim 5, characterized in that, The target progress area includes a first progress area, and the sliding speed type corresponding to the first progress area is a high-speed sliding type. Determining the target progress point based on the playback progress points included in each of the target progress areas includes: From the playback progress points included in the first progress area, determine the playback progress points that satisfy the first preset condition and use them as the target progress points.

7. The method according to claim 5, characterized in that, The target progress region includes a second progress region, and the sliding speed type corresponding to the second progress region is a slow sliding type. Determining the target progress point based on the playback progress points included in each of the target progress regions includes: Candidate progress points are determined from the playback progress points included in the second progress area; For each candidate progress point, determine whether the time interval between the candidate progress point and the reference progress point satisfies the second preset condition; If the conditions are met, the candidate progress point is taken as the target progress point, and the candidate progress point is taken as the reference progress point for the next candidate progress point. If the conditions are not met, a new progress position is determined based on the progress position corresponding to the candidate progress point, and the progress point corresponding to the new progress position is taken as the target progress point, and the progress point corresponding to the new progress position is taken as the reference progress point for the next candidate progress point.

8. The method according to any one of claims 1 to 7, characterized in that, Determining the cover frame of the target video based on the plurality of target video frames includes: Based on the plurality of target video frames, candidate cache frames are determined from the cache frames of the target video; Based on the multiple target video frames and the candidate cached frames, a candidate cover frame is determined; The cover frame is determined from the candidate cover frames.

9. The method according to claim 8, characterized in that, The step of determining candidate cache frames from the cache frames of the target video based on the plurality of target video frames includes: For each target video frame, determine whether there is a cache frame in the cache that satisfies a third preset condition in terms of the time interval between the target video frame and the cache frame. If there is, then the cache frame that satisfies the third preset condition is taken as the candidate cache frame.

10. The method according to claim 8, characterized in that, The step of determining the candidate cover frame based on the plurality of target video frames and the candidate cached frames includes: For each of the candidate cache frames, determine whether the candidate cache frame has been displayed. If not, the candidate cache frame is used as the candidate cover frame; If it has been displayed before, then any video frame following the target video frame corresponding to the candidate cache frame will be used as the candidate cover frame.

11. The method according to claim 8, characterized in that, Determining the cover frame from the candidate cover frames includes: Display the candidate cover frame; In response to the selection operation for the candidate cover frame, the candidate cover frame indicated by the selection operation is determined as the cover frame.

12. A cover frame determining device, characterized in that, The device includes: The receiving module is used to receive sliding operations on the playback progress bar of the target video; An execution module is used to determine multiple target video frames from multiple video frames included in the target video based on the sliding operation and sliding speed information, wherein the sliding speed information is used to characterize the sliding speed of the sliding operation on different progress bar areas of the playback progress bar; The determining module is used to determine the cover frame of the target video based on the plurality of target video frames.

13. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 11.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 11.

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