Methods and systems for video playback control

By using a video playback control method based on Hermite interpolation function, control points and playback speed are obtained, the variable speed time period and curve are determined, and video frame images are rendered. This solves the problems of complex calculations and uneven splicing points in existing technologies, and enables user-defined video curve variable speed playback.

CN116456152BActive Publication Date: 2025-10-31SHANGHAI BILIBILI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310491462.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-04
Publication Date
2025-10-31
Estimated Expiration
2043-05-04

AI Technical Summary

Technical Problem

Existing video curve speed-changing schemes are computationally complex, have insufficiently smooth splicing points, and cannot achieve user-defined curve speed-changing.

Method used

A video playback control method based on the third-order Hermite interpolation function is adopted. By obtaining the time points and playback speed of multiple control points, the variable speed time period and variable speed curve are determined, and video frames are rendered to achieve variable speed playback.

Benefits of technology

It provides a more natural and efficient curve-based speed playback function, solving the problems of complex Bézier curve calculation and uneven splicing points, and realizing user-customized curve-based speed effects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116456152B_ABST
    Figure CN116456152B_ABST
Patent Text Reader

Abstract

This application provides a method and system for video playback control. The method includes: acquiring multiple control points corresponding to the video to be played; each control point having a one-to-one corresponding time point and playback speed; determining multiple variable speed time periods and a variable speed curve corresponding to each variable speed time period based on the time points and playback speeds corresponding to the multiple control points; determining a video frame corresponding to each time point based on the variable speed curve corresponding to each variable speed time period; and rendering the video frame corresponding to each time point to control the playback of the video to be played on the client side using a variable speed curve. This achieves variable speed playback of the video by fitting a variable speed curve using the time points and playback speeds of the control points, solving problems such as complex calculations and insufficient smoothness of splicing points based on Bézier curves, and providing users with a more natural and efficient variable speed playback function in video editing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of multimedia playback technology, and in particular to a method, system, computer device, and computer-readable storage medium for video playback control. Background Technology

[0002] With the development of internet technology, audio and video, as important information carriers, can be quickly and conveniently disseminated through the network. In order to cater to users' viewing habits, video editing functions are becoming more and more diversified. Among them, video editing also supports video speed adjustment, allowing users to adjust the speed of video materials so that the video plays at the adjusted speed.

[0003] In existing technologies, video speed-up solutions typically include traditional uniform speed-up schemes and video curve speed-up schemes. Traditional video previews or edits use uniform speed-up schemes to provide previews at 2x, 4x, etc. Curve speed-up schemes, on the other hand, use interpolation functions to calculate the actual video frames played for each preview frame, thus achieving a curve-like speed change in the preview. The curve function represents the playback speed; an upward curve indicates a faster playback speed, and a downward curve indicates a slower playback speed. A steeper curve slope indicates a faster change in playback speed, while a gentler slope indicates a slower change in playback speed. Existing video curve speed-up schemes are generally based on Bézier curves to implement the preview speed-up preview.

[0004] However, traditional uniform speed-changing schemes cannot achieve curve changes in video previews, nor can they adjust speed based on user-defined curves, which limits their application in video editing. Curve speed-changing schemes based on Bézier curves suffer from problems such as increasing curve complexity and Bézier order, leading to more complex calculations and slower processing speeds. Furthermore, curve speed-changing schemes based on Bézier splicing suffer from issues such as insufficiently smooth splicing points. Summary of the Invention

[0005] The purpose of this application is to provide a method, system, computer device, and computer-readable storage medium for video playback control, in order to solve the following problems: existing video curve speed-changing schemes are computationally complex and the splicing points are not smooth enough.

[0006] One aspect of this application provides a method for video playback control, the method comprising:

[0007] Obtain multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed;

[0008] Multiple speed-changing time periods are determined based on the time points and playback speeds corresponding to the multiple control points, and a speed-changing curve is determined for each of the speed-changing time periods.

[0009] The video frame corresponding to each time point is determined based on the speed change curve corresponding to each speed change time period.

[0010] The video frame corresponding to each time point is rendered to control the playback speed of the video to be played on the client side.

[0011] Optionally, obtaining multiple control points corresponding to the video to be played includes:

[0012] Display the curve settings interface corresponding to the video to be played;

[0013] The system receives setting operations applied to the curve setting interface and determines multiple control points corresponding to the video to be played based on the setting operations.

[0014] Optionally, the curve setting interface includes a two-dimensional coordinate system; the X-axis of the two-dimensional coordinate system is used to set the time point for variable speed playback, and the Y-axis of the two-dimensional coordinate system is used to set the playback speed corresponding to the time point for variable speed playback.

[0015] Optionally, the length of the X-axis of the two-dimensional coordinate system is a preset value; the interface for displaying the curve settings corresponding to the video to be played includes:

[0016] The playback time of the video to be played is normalized according to the preset value;

[0017] Based on the playback time of the video to be played after normalization, the curve setting interface corresponding to the video to be played is displayed.

[0018] Optionally, determining multiple speed-changing time periods based on the time points corresponding to the multiple control points and the playback speed, and the speed-changing curve corresponding to each of the speed-changing time periods, includes:

[0019] Based on the time points and playback speeds corresponding to the multiple control points, a speed-changing time period is determined for every two adjacent control points.

[0020] Based on the Hermite interpolation function, the speed change curve corresponding to each of the speed change time periods is determined.

[0021] Optionally, the client has a computing engine and a rendering engine; determining the video frame corresponding to each time point based on the speed change curve corresponding to each of the speed change time periods includes:

[0022] The calculation engine determines the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period, and transmits the video frame corresponding to each time point to the rendering engine.

[0023] Optionally, the client further includes a surface view manager, wherein rendering the video frame corresponding to each time point includes:

[0024] The rendering engine decodes the video frame corresponding to each time point.

[0025] The video frames corresponding to each time point are rendered in chronological order and output to the surface view manager of the client.

[0026] One aspect of this application provides a video playback control system, the system comprising:

[0027] The control point acquisition module is used to acquire multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed;

[0028] The speed curve determination module is used to determine multiple speed change time periods and the speed change curve corresponding to each of the multiple control points and the playback speed.

[0029] The video frame determination module is used to determine the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period.

[0030] The video playback control module is used to render the video frame corresponding to each time point in order to control the playback of the video to be played on the client at varying speeds.

[0031] One aspect of this application provides a computer device, the computer device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of the video playback control method described above.

[0032] One aspect of this application provides a computer-readable storage medium storing a computer program that can be executed by at least one processor to implement the steps of the video playback control method described above when the at least one processor executes the computer program.

[0033] The video playback control method, system, device, and computer-readable storage medium provided in this application embodiment acquire multiple control points corresponding to the video to be played. Each control point has a one-to-one corresponding time point and playback speed. Then, multiple variable speed time periods and a variable speed curve corresponding to each variable speed time period are determined based on the time point and playback speed corresponding to the control point. The video frame corresponding to each time point is determined based on the variable speed curve corresponding to each variable speed time period, and the video frame corresponding to each time point is rendered to control the playback of the video to be played on the client side at a variable speed. Thus, by using the time point and playback speed of the control points to fit and generate a variable speed curve, the variable speed playback of the video is achieved, solving the problems of complex calculation and insufficient smoothness of splicing points based on Bézier curves, and providing users with a more natural and efficient variable speed playback function in video editing. Attached Figure Description

[0034] Figure 1 This diagram schematically illustrates an application environment of a video playback control method according to an embodiment of this application.

[0035] Figure 2 A flowchart illustrating a video playback control method according to Embodiment 1 of this application is shown schematically.

[0036] Figure 3 The diagram illustrates a curve setting interface according to Embodiment 1 of this application;

[0037] Figure 4 The diagram schematically illustrates a block diagram of a method for performing video playback control according to Embodiment 1 of this application;

[0038] Figure 5 A block diagram schematically illustrates a video playback control device according to Embodiment 2 of this application; and

[0039] Figure 6 The illustration shows a schematic diagram of the hardware architecture of a computer device suitable for implementing a video playback control method according to Embodiment 3 of this application. Detailed Implementation

[0040] 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. All other embodiments obtained by those skilled in the art based on the embodiments in this application without inventive effort are within the scope of protection of this application.

[0041] It should be noted that the descriptions involving "first," "second," etc., in the embodiments of this application are for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined with "first" or "second" may explicitly or implicitly include at least one of that feature. Furthermore, the technical solutions of the various embodiments can be combined with each other, but this must be based on the ability of those skilled in the art to implement them. If the combination of technical solutions is contradictory or impossible to implement, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection claimed in this application.

[0042] In existing technologies, video speed-up solutions typically include traditional uniform speed-up schemes and video curve speed-up schemes. Traditional video previews or edits use uniform speed-up schemes to provide previews at 2x, 4x, etc. Curve speed-up schemes, on the other hand, use interpolation functions to calculate the actual video frames played for each preview frame, thus achieving a curve-like speed change in the preview. The curve function represents the playback speed; an upward curve indicates a faster playback speed, and a downward curve indicates a slower playback speed. A steeper curve slope indicates a faster change in playback speed, while a gentler slope indicates a slower change in playback speed. Existing video curve speed-up schemes are generally based on Bézier curves to implement the preview speed-up preview.

[0043] However, traditional uniform speed-changing schemes cannot achieve curve changes in video previews, nor can they adjust speed based on user-defined curves, which limits their application in video editing. Curve speed-changing schemes based on Bézier curves suffer from problems such as increasing curve complexity and Bézier order, leading to more complex calculations and slower processing speeds. Furthermore, curve speed-changing schemes based on Bézier splicing suffer from issues such as insufficiently smooth splicing points.

[0044] In view of this, this application aims to propose a video playback control method based on a third-order Hermite interpolation function, comprising: obtaining multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed; determining multiple variable speed time periods and a variable speed curve corresponding to each variable speed time period based on the time points and playback speeds corresponding to the multiple control points; determining the video frame corresponding to each time point based on the variable speed curve corresponding to each variable speed time period; and rendering the video frame corresponding to each time point to control the playback of the video to be played on the client side by variable speed curve. Thus, by using the time points and playback speeds of the control points to fit and generate variable speed curves, variable speed playback of the video is achieved, solving problems such as the complexity of calculation and insufficient smoothness of splicing points based on Bézier curves, and providing users with a more natural and efficient variable speed playback function in video editing.

[0045] This application provides several embodiments to further illustrate the video playback control scheme, as detailed below.

[0046] In the description of this application, it should be understood that the numerical labels before the steps do not indicate the order of the steps, but are only used to facilitate the description of this application and to distinguish each step, and therefore should not be construed as a limitation of this application.

[0047] The following is a definition of the terminology used in this application:

[0048] Curve speed adjustment: By using a series of control points and based on a piecewise third-order Hermite interpolation function, the video can be previewed and played at varying speeds.

[0049] Hermite interpolation function: For an analytic function on a region, the integral expression of the Lagrange interpolation polynomial is such that, at a given node, not only are the function values ​​of the interpolation polynomial the same as the original function values, but also, at the node, the first-order to specified-order derivatives of the interpolation polynomial are equal to the corresponding-order derivatives of the interpolated function.

[0050] Figure 1 A schematic diagram illustrating an environmental application according to an embodiment of this application is provided. Figure 1 As shown:

[0051] Computer device 10000 can connect to client 30000 via network 20000.

[0052] Computer device 10000 can provide services such as network debugging or returning video playback control results data to client 30000.

[0053] Computer equipment 10000 may be located in a data center, such as a single site, or distributed across different geographical locations (e.g., multiple sites). Computer equipment 10000 may provide services via one or more networks 20000. Network 20000 includes various network devices, such as routers, switches, multiplexers, hubs, modems, bridges, repeaters, firewalls, agent devices, and / or similar devices. Network 20000 may include physical links, such as coaxial cable links, twisted-pair cable links, fiber optic links, combinations thereof, etc. Network 20000 may include wireless links, such as cellular links, satellite links, Wi-Fi links, etc.

[0054] Computer device 10000 can be implemented by one or more compute nodes. One or more compute nodes can include virtualized compute instances. Virtualized compute instances can include virtual machines, such as emulations of computer systems, operating systems, servers, etc. Compute nodes can load virtual machines based on virtual images and / or other data defining specific software used for emulation (e.g., operating systems, dedicated applications, servers). As the demand for different types of processing services changes, different virtual machines can be loaded and / or terminated on one or more compute nodes. A hypervisor can be implemented to manage the use of different virtual machines on the same compute node.

[0055] Client 30000 can be configured to access the content and services of computer device 10000. Client 30000 can include any type of electronic device, such as mobile devices, tablets, laptops, workstations, virtual reality devices, gaming devices, set-top boxes, digital streaming media devices, vehicle terminals, smart TVs, etc.

[0056] The client 30000 can output (e.g., display, render, present) the results of video playback control to the user.

[0057] The following will describe a network debugging solution through several embodiments. This solution can be implemented using computer equipment 10000.

[0058] Example 1

[0059] Figure 2 A flowchart illustrating a video playback control method according to Embodiment 1 of this application is shown schematically. The video playback control method is applied to a client and includes steps S202-S208, wherein...

[0060] Step S202: Obtain multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed;

[0061] In this embodiment, control points are used to indicate the time points when video playback speed needs to be adjusted and the playback speed at those time points. Users can independently set multiple control points corresponding to the video to be played through the client. The client has a user data acquisition module. After the user sets the video curve speed adjustment through the graphical user interface provided by the client, the user data acquisition module collects the data set by the user to determine the control points set by the user. Specifically, control points can be represented in the form of coordinate points, where the horizontal axis coordinates can represent the time points of speed adjustment playback, and the vertical axis coordinates can represent the playback speed corresponding to those time points.

[0062] Step S204: Determine multiple speed-changing time periods and speed-changing curves corresponding to each of the multiple control points based on the time points and playback speeds.

[0063] In this embodiment, a speed change time period can be determined for every two adjacent control points, and a speed change curve corresponding to each speed change time period can be generated, meaning that each speed change time period has a one-to-one corresponding speed change curve. Specifically, the speed change curve corresponding to each speed change time period can be generated by fitting the speed change curve based on the Hermite interpolation function.

[0064] Step S206: Determine the video frame corresponding to each time point based on the speed change curve corresponding to each of the speed change time periods.

[0065] In this embodiment, after fitting and generating the speed curve corresponding to each of the speed-changing time periods, the video frame corresponding to each time point can be further determined based on the speed curve corresponding to each of the speed-changing time periods for rendering and display on the client.

[0066] Step S208: Render the video frame corresponding to each time point to control the playback of the video to be played on the client at varying speeds.

[0067] Specifically, the client can have a SurafceView surface view manager, which renders the video frame corresponding to each time point and outputs it to the client's SurafceView. SurafceView is then used to play the video in real time after speed adjustment, providing users with a more natural and efficient curve speed adjustment playback function in video editing.

[0068] The following are several optional embodiments for optimizing the video playback control method, as detailed below:

[0069] In a preferred embodiment of this application, step S202 may include the following steps:

[0070] Display the curve setting interface corresponding to the video to be played; receive setting operations applied to the curve setting interface, and determine multiple control points corresponding to the video to be played based on the setting operations.

[0071] In this embodiment, by displaying the curve setting interface corresponding to the video to be played in the graphical user interface provided by the client, the user can set the video's speed curve on the curve setting interface. For example, five time points for speed-changing playback and the corresponding playback speeds for these five time points can be set. After the client collects the user's setting operations on the curve setting interface, it can determine multiple control points corresponding to the video to be played based on these setting operations. The setting operations can be click operations, double-click operations, etc., and this embodiment does not impose specific limitations on them.

[0072] In a preferred embodiment of this application, the curve setting interface includes a two-dimensional coordinate system; the X-axis of the two-dimensional coordinate system is used to set the time point of variable speed playback, and the Y-axis of the two-dimensional coordinate system is used to set the playback speed corresponding to the time point of variable speed playback.

[0073] In a preferred embodiment of this application, the length of the X-axis of the two-dimensional coordinate system is a preset value; the interface for displaying the curve settings corresponding to the video to be played includes:

[0074] The playback time of the video to be played is normalized according to the preset value; based on the playback time of the video to be played after normalization, the curve setting interface corresponding to the video to be played is displayed.

[0075] In this embodiment, the length of the X-axis of the two-dimensional coordinate system is a preset value, meaning the length of time in the two-dimensional coordinate system is fixed. For example, if the preset value is 5, the video duration can be set to 5. To adapt to videos of different lengths, the playback time of the video can be normalized to the interval [0, 5]. Specifically, when controlling the client to display the curve setting interface, the playback time of the video to be played is normalized according to the preset value, and then the curve setting interface corresponding to the video to be played is displayed on the client based on the normalized playback time of the video to be played.

[0076] As an example, such as Figure 3 A schematic diagram of a curve settings interface is shown, where the X-axis represents the time direction, with a value range of [0, 5], meaning the minimum time point for variable speed playback is 0 and the maximum time point is 5; the Y-axis represents the playback speed, with a value range of [0.1, 4], meaning the minimum speed is 0.1x and the maximum speed is 4x. Furthermore, Figure 3 In the diagram, P0 to P4 are control points set by the user. The user controls the shape of the speed change curve by setting these control points.

[0077] In a preferred embodiment of this application, step S204 may include the following steps:

[0078] Based on the time points and playback speeds corresponding to the multiple control points, a speed-changing time period is determined for every two adjacent control points; and a speed-changing curve is determined for each of the speed-changing time periods based on the Hermite interpolation function.

[0079] Specifically, taking points P0(x0,y0) and P1(x1,y1) as examples, the Hermite interpolation function can be expressed as follows:

[0080]

[0081] Here, x0 and x1 are the positions of two adjacent points to be interpolated, and y0 and y1 are the dependent variables corresponding to the independent variables x0 and x1. x0, x1, y0, and y1 are known information, and y′0 and y′1 are the derivatives of y0 and y1, respectively. y′0 and y′1 need to be estimated based on the known points.

[0082] Substituting P0(x0,y0) and P1(x1,y1) into the above formula, we can calculate the interpolation function H3(x) between P0 and P1. Based on H3(x), we can calculate the playback speed corresponding to the other time points between P0 and P1.

[0083] In a preferred embodiment of this application, the client has a computing engine and a rendering engine; step S206 may include the following steps:

[0084] The calculation engine determines the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period, and transmits the video frame corresponding to each time point to the rendering engine.

[0085] In this embodiment, the client may have a computing engine and a rendering engine. During the calculation, the computing engine determines the video frame corresponding to each time point based on the speed change curve corresponding to each of the speed change time periods, and transmits the video frame corresponding to each time point to the rendering engine.

[0086] In a preferred embodiment of this application, the client further includes a surface view manager, and step S208 may include the following steps:

[0087] The rendering engine decodes the video frame corresponding to each time point; renders the video frame corresponding to each time point in chronological order, and outputs it to the surface view manager of the client.

[0088] In this embodiment, the client can have a SurafceView surface view manager, which decodes the video frame corresponding to each time point through the rendering engine, then renders the video frame corresponding to each time point in chronological order, and outputs it to the SurafceView on the client to control the playback of the video to be played on the client at varying speeds.

[0089] As an example, such as Figure 4 A block diagram of a method for performing video playback control is shown, comprising three modules: an application layer, a computation engine, and a rendering engine.

[0090] Application Layer: Responsible for video preview and user interaction. Located on the client side, the application layer allows users to set their desired speed curve through a curve settings interface displayed on the client. The application layer then transmits the user-defined control point information to the calculation engine. Additionally, the application layer includes SurafceView, which enables real-time playback of the speed-adjusted video.

[0091] The calculation engine is responsible for calculating the curve. Based on the piecewise third-order Hermite interpolation function, the calculation engine calculates the video frame corresponding to each time point within the variable speed time interval and passes the calculation results to the rendering engine.

[0092] Rendering engine: Responsible for decoding video frames and rendering the images. Based on the results calculated by the computing engine, the rendering engine decodes the corresponding video frames, renders them in chronological order, and outputs them to the SurfaceView in the application layer.

[0093] Example 2

[0094] Figure 5 The diagram illustrates a block diagram of a video playback control system according to Embodiment 2 of this application. This video playback control system can be divided into one or more program modules. One or more program modules are stored in a storage medium and executed by one or more processors to complete the embodiments of this application. The program modules referred to in the embodiments of this application are a series of computer program instruction segments capable of performing specific functions. The following description will specifically introduce the functions of each program module in the embodiments of this application.

[0095] like Figure 5 As shown, the video playback control system 500 may include the following modules:

[0096] The control point acquisition module 510 is used to acquire multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed;

[0097] The speed curve determination module 520 is used to determine multiple speed change time periods and the speed change curve corresponding to each of the multiple control points based on the time points and playback speed.

[0098] The video frame determination module 530 is used to determine the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period.

[0099] The video playback control module 540 is used to render the video frame corresponding to each time point in order to control the playback of the video to be played on the client at varying speeds.

[0100] In a preferred embodiment of this application, the control point acquisition module 510 includes:

[0101] The curve settings interface display submodule is used to display the curve settings interface corresponding to the video to be played;

[0102] The control point determination submodule is used to receive setting operations applied to the curve setting interface and determine multiple control points corresponding to the video to be played based on the setting operations.

[0103] In a preferred embodiment of this application, the curve setting interface includes a two-dimensional coordinate system; the X-axis of the two-dimensional coordinate system is used to set the time point of variable speed playback, and the Y-axis of the two-dimensional coordinate system is used to set the playback speed corresponding to the time point of variable speed playback.

[0104] In a preferred embodiment of this application, the length of the X-axis of the two-dimensional coordinate system is a preset value; the curve setting interface display submodule includes:

[0105] A normalization processing unit is used to normalize the playback time of the video to be played according to the preset value.

[0106] The curve setting interface display unit is used to display the curve setting interface corresponding to the video to be played based on the playback time of the video to be played after normalization processing.

[0107] In a preferred embodiment of this application, the gear shift curve determination module 520 includes:

[0108] The variable speed time period determination submodule is used to determine a variable speed time period for every two adjacent control points based on the time points and playback speed corresponding to the multiple control points.

[0109] The speed change curve determination submodule is used to determine the speed change curve corresponding to each speed change time period based on the Hermite interpolation function.

[0110] In a preferred embodiment of this application, the client has a computing engine and a rendering engine; the video frame determination module 530 includes:

[0111] The video frame determination submodule is used to determine the video frame corresponding to each time point through the calculation engine based on the speed change curve corresponding to each speed change time period, and to pass the video frame corresponding to each time point to the rendering engine.

[0112] In a preferred embodiment of this application, the client further includes a surface view manager, and the video playback control module 540 includes:

[0113] The video frame decoding submodule is used to decode the video frame corresponding to each time point through the rendering engine;

[0114] The video playback control submodule is used to render the video frame corresponding to each time point in chronological order and output it to the surface view manager of the client.

[0115] Example 3

[0116] Figure 6 This illustration schematically shows a hardware architecture diagram of a computer device 10000 suitable for implementing a video playback control method according to Embodiment 3 of this application. In this embodiment, the computer device 10000 is a device capable of automatically performing numerical calculations and / or information processing according to pre-set or stored instructions. For example, it may be a smartphone, tablet computer, laptop computer, desktop computer, rack server, blade server, tower server, or cabinet server (including independent FEN servers, or server clusters composed of multiple servers), etc. Figure 6 As shown, the computer device 10000 includes, but is not limited to, at least the following: a memory 10010, a processor 10020, and a network interface 10030 that can communicate and be linked to each other via a system bus. Wherein:

[0117] The memory 10010 includes at least one type of computer-readable storage medium, including flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the memory 10010 may be an internal storage module of the computer device 10000, such as the hard disk or memory of the computer device 10000. In other embodiments, the memory 10010 may also be an external storage device of the computer device 10000, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the computer device 10000. Of course, the memory 10010 may also include both the internal storage module and the external storage device of the computer device 10000. In this embodiment, the memory 10010 is typically used to store the operating system and various application software installed on the computer device 10000, such as program code for video playback control methods. In addition, the memory 10010 can also be used to temporarily store various types of data that have been output or will be output.

[0118] In some embodiments, processor 10020 may be a central processing unit (CPU), controller, microcontroller, microprocessor, or other data processing chip. Processor 10020 is typically used to control the overall operation of computer device 10000, such as performing control and processing related to data interaction or communication with computer device 10000. In this embodiment, processor 10020 is used to run program code stored in memory 10010 or process data.

[0119] Network interface 10030 may include a wireless network interface or a wired network interface, which is typically used to establish a communication link between computer device 10000 and other computer devices. For example, network interface 10030 is used to connect computer device 10000 to an external terminal via a network, establishing a data transmission channel and communication link between computer device 10000 and the external terminal. The network may be an intranet, the Internet, Global System for Mobile Communication (GSM), Wideband Code Division Multiple Access (WCDMA), 4G network, 5G network, Bluetooth, Wi-Fi, or other wireless or wired networks.

[0120] It should be pointed out that, Figure 6 Only computer devices with components 10010-10030 are shown; however, it should be understood that it is not required to implement all of the shown components, and more or fewer components may be implemented instead.

[0121] In this embodiment, the video playback control method stored in memory 10010 can be further divided into one or more program modules and executed by one or more processors (processor 10020 in this embodiment) to complete the embodiment of this application.

[0122] Example 4

[0123] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of the video playback control method in the embodiments.

[0124] In this embodiment, the computer-readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the computer-readable storage medium may be an internal storage unit of a computer device, such as the hard disk or memory of the computer device. In other embodiments, the computer-readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the computer device. Of course, the computer-readable storage medium may include both the internal storage unit and the external storage device of the computer device. In this embodiment, the computer-readable storage medium is typically used to store the operating system and various application software installed on the computer device, such as the program code of the video playback control method in this embodiment. In addition, the computer-readable storage medium can also be used to temporarily store various types of data that have been output or will be output.

[0125] Obviously, those skilled in the art should understand that the modules or steps of the embodiments of this application described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. Optionally, they can be implemented using computer-executable program code, thereby storing them in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the embodiments of this application are not limited to any particular combination of hardware and software.

[0126] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. A method for controlling video playback, characterized in that, The method includes: Obtain multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed; Multiple speed-changing time periods are determined based on the time points and playback speeds corresponding to the multiple control points, and a speed-changing curve is determined for each of the speed-changing time periods. The video frame corresponding to each time point is determined based on the speed change curve corresponding to each speed change time period. The video frame corresponding to each time point is rendered in order to control the playback speed of the video to be played on the client. The step of determining multiple speed-changing time periods based on the time points and playback speeds corresponding to the multiple control points, and the speed-changing curve corresponding to each of the speed-changing time periods, includes: Based on the time points and playback speeds corresponding to the multiple control points, a speed-changing time period is determined for every two adjacent control points. Based on the Hermite interpolation function, the speed change curve corresponding to each of the speed change time periods is determined.

2. The video playback control method according to claim 1, characterized in that, The acquisition of multiple control points corresponding to the video to be played includes: Display the curve settings interface corresponding to the video to be played; The system receives setting operations applied to the curve setting interface and determines multiple control points corresponding to the video to be played based on the setting operations.

3. The video playback control method according to claim 2, characterized in that, The curve setting interface includes a two-dimensional coordinate system; the X-axis of the two-dimensional coordinate system is used to set the time point for variable speed playback, and the Y-axis of the two-dimensional coordinate system is used to set the playback speed corresponding to the time point for variable speed playback.

4. The video playback control method according to claim 3, characterized in that, The length of the X-axis of the two-dimensional coordinate system is a preset value; the interface for displaying the curve settings corresponding to the video to be played includes: The playback time of the video to be played is normalized according to the preset value; Based on the playback time of the video to be played after normalization, the curve setting interface corresponding to the video to be played is displayed.

5. The video playback control method according to claim 1, characterized in that, The client has a computing engine and a rendering engine; determining the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period includes: The calculation engine determines the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period, and transmits the video frame corresponding to each time point to the rendering engine.

6. The video playback control method according to claim 5, characterized in that, The client also has a surface view manager, and the rendering of the video frame corresponding to each time point includes: The rendering engine decodes the video frame corresponding to each time point. The video frames corresponding to each time point are rendered in chronological order and output to the surface view manager of the client.

7. A video playback control system, characterized in that, The system includes: The control point acquisition module is used to acquire multiple control points corresponding to the video to be played; wherein each control point has a one-to-one corresponding time point and playback speed; The speed curve determination module is used to determine multiple speed change time periods and the speed change curve corresponding to each of the multiple control points and the playback speed. The video frame determination module is used to determine the video frame corresponding to each time point based on the speed change curve corresponding to each speed change time period. The video playback control module is used to render the video frame corresponding to each time point so as to control the playback of the video to be played on the client at a variable speed. The speed change curve determination module is also used for: Based on the time points and playback speeds corresponding to the multiple control points, a speed-changing time period is determined for every two adjacent control points. Based on the Hermite interpolation function, the speed change curve corresponding to each of the speed change time periods is determined.

8. A computer device, the computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it performs the steps of the video playback control method according to any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that can be executed by at least one processor to cause the at least one processor to perform the steps of the video playback control method according to any one of claims 1 to 6.

10. 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 video playback control method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Play control method and device

    CN112738627A