A display device and a method for playing videos at double speed.

By adjusting the display timestamps of keyframes during video playback at different speeds, the problem of mismatch between video playback progress and actual playback speed was solved, achieving proportional display and resource optimization, thus improving the user experience.

CN119520907BActive Publication Date: 2025-10-28HISENSE VISUAL TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411648852.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-18
Publication Date
2025-10-28
Estimated Expiration
2044-11-18

AI Technical Summary

Technical Problem

When playing videos at double speed, the displayed playback progress does not match the actual set video speed, resulting in a degraded user experience.

Method used

By acquiring the playback speed and the current playback time, the second playback time is calculated, the keyframe closest to this time is extracted, and its display timestamp is set as the second playback time. The video playback progress is controlled based on the display timestamp of the target keyframe.

Benefits of technology

This feature enables the display of video playback progress to be proportional to the actual set playback speed, improving user experience and reducing resource waste and storage space.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119520907B_ABST
    Figure CN119520907B_ABST
Patent Text Reader

Abstract

This application provides a display device and a method for playing video at double speed. The method, when playing a target video, responds to a video speed-up playback command by acquiring the speed-up rate and a first playback time point, where the first playback time point is the current playback time point of the target video. Then, a second playback time point is calculated based on the speed-up rate and the first playback time point. The second playback time point is either the playback time point before or after the first playback time point when the target video is played at double speed. Target keyframes are extracted from the target video, and their display timestamps are set as the second playback time point. The target keyframe is the keyframe closest to the second playback time point. Finally, the target video is played at double speed based on the target keyframes, and the display is controlled to show the video playback progress based on the display timestamps of the target keyframes. This method optimizes the display of video playback progress by adjusting the display timestamps of the keyframes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of display device technology, and in particular to a display device and a method for playing videos at double speed. Background Technology

[0002] Display devices refer to terminal devices capable of outputting specific display images, such as smart TVs, communication terminals, smart advertising screens, and projectors. Taking smart TVs as an example, smart TVs are television products based on Internet application technologies, possessing open operating systems and chips, and having open application platforms. They enable two-way human-computer interaction and integrate multiple functions such as audio-visual, entertainment, and data to meet diverse and personalized user needs.

[0003] When a display device plays a video, it can adjust the playback speed to achieve the desired playback speed. However, in scenarios where video playback is sped up, the playback progress is displayed based on the timestamps of keyframes in the video stream. This can lead to a mismatch between the displayed timestamps and the actual playback progress, resulting in a significant difference between the displayed playback progress and the actual set playback speed, thus degrading the user experience. Summary of the Invention

[0004] This application provides a display device and a method for playing videos at different speeds to solve the problem of mismatch between the displayed video playback progress and the actual set video playback speed.

[0005] In a first aspect, this application provides a display device, including a display and a controller. The display is configured to display a user interface; the controller is configured to:

[0006] When playing the target video, in response to the video speed playback command, the speed rate and the first playback time point are obtained. The first playback time point is the current playback time point of the target video.

[0007] The second playback time point is calculated based on the speed multiplier and the first playback time point. The second playback time point is the playback time point before or after the first playback time point when the target video is played at the speed multiplier.

[0008] Extract the target keyframe from the target video. The target keyframe is the keyframe that is closest to the second playback time point.

[0009] Set the display timestamp of the target keyframe to the second playback time point;

[0010] The target video is played at different speeds based on the target keyframes, and the display of the video playback progress is controlled based on the display timestamps of the target keyframes.

[0011] The above technical solution has the following advantages or beneficial effects: by adjusting the distribution of key frames, the display timestamps of the key frames correspond to the actual playback positions when the video is sped up, so that the display of the video playback progress is proportional to the actual set speed.

[0012] In an optional implementation, after the controller performs the step of calculating the second playback time point based on the speed multiplier and the first playback time point, it is further configured to:

[0013] Obtain the playback time range of the target video;

[0014] If the second playback time exceeds the playback time range, the playback of the target video will end.

[0015] If the second playback time point does not exceed the playback time range, extract the target keyframe from the target video.

[0016] The above technical solution has the following advantages or beneficial effects: after calculating the second playback time point, it checks whether it exceeds the playback time range. When the second playback time point exceeds the playback time range, the video playback ends, avoiding invalid operations and resource waste.

[0017] In an optional implementation, after the controller performs the step of setting the display timestamp of the target keyframe to the second playback time point, it is further configured to:

[0018] Store the target keyframes in the cache queue;

[0019] Play the target video at the target keyframes in the cache queue at the specified speed.

[0020] The above technical solution has the following advantages or beneficial effects: storing the target keyframes in a cache queue and playing them at different speeds according to the target keyframes in the cache queue can improve the smoothness and continuity of video playback. The use of a cache queue can reduce the burden of real-time keyframe extraction and processing, thus improving the efficiency of video playback.

[0021] In an optional implementation, the controller performs the storage of the target keyframe to a buffer queue and is further configured to:

[0022] Obtain the initial display timestamp of the target keyframe and the initial display timestamp of the historical keyframe. The historical keyframe is the keyframe corresponding to the initial display timestamp closest to the first playback time point; the initial display timestamp is the display timestamp of the keyframe when the target video is played at normal speed.

[0023] If the initial display timestamp of the historical keyframe is different from the initial display timestamp of the target keyframe, the target keyframe is stored in the cache queue.

[0024] The above technical solution has the following advantages or beneficial effects: by comparing the initial display timestamps of the target keyframe and historical keyframes, it avoids repeatedly storing the same keyframes, saving storage space and processing resources. Furthermore, when playing the video at a faster speed based on the keyframes stored in the cache queue, it can reduce the resource consumption of decoding the same keyframes.

[0025] In an optional implementation, the controller is further configured to:

[0026] In response to the playback command of the target video, a video playback window and a playback progress control are created. The display level of the playback progress control is higher than that of the video playback window.

[0027] Controls the display of the video playback window and playback progress controls on the monitor;

[0028] Play the target video through the video playback window, and display the video playback progress of the target video through the playback progress control.

[0029] The above technical solution has the following advantages or beneficial effects: It creates a video playback window and a playback progress control, and displays the video playback progress through the playback progress control, providing an intuitive user interface that allows users to easily understand the video playback progress. The playback progress control is displayed above the video playback window, ensuring that users can clearly see the playback progress and improving the user experience.

[0030] In an optional implementation, the controller performs playback of the target video at a multiplied speed based on the target keyframes, specifically configured as follows:

[0031] Decode the target keyframe;

[0032] Control the monitor to display the decoded target keyframes through the video playback window.

[0033] The above technical solution has the following advantages or beneficial effects: by decoding the target keyframe and displaying the decoded keyframe, smooth picture output can be achieved when the video is played at double speed.

[0034] In an optional implementation, the controller controls the display to show the video playback progress of the target video based on the display timestamp of the target keyframe, specifically configured as follows:

[0035] Read the display timestamp of the target keyframe;

[0036] Update the video playback progress of the target video according to the displayed timestamp;

[0037] The monitor displays the updated playback progress of the target video using a playback progress control.

[0038] The above technical solution has the following advantages or beneficial effects: by reading the display timestamp of the target key frame and updating the video playback progress, the real-time performance and accuracy of the video playback progress are ensured, providing users with accurate playback progress information.

[0039] In an optional implementation, the controller is further configured to calculate the second playback time point based on the speed multiplier and the first playback time point, and is also configured to:

[0040] Detect video speed adjustment type;

[0041] If the video speed type is set to rewind, the second playback time point is the playback time point before the first playback time point when the target video is played at the speed rate.

[0042] If the video speed type is set to fast forward playback, the second playback time point is the playback time point after the first playback time point when the target video is played at the double speed rate.

[0043] The above technical solution has the following advantages or beneficial effects: by detecting the video speed type, the direction of the second playback time point is determined, achieving precise control over the playback speed direction. Simultaneously, the corresponding target keyframes are extracted based on the second playback time point to ensure the correctness of the video playback progress.

[0044] In an optional implementation, after the controller performs the step of calculating the second playback time point based on the speed multiplier and the first playback time point, it is further configured to:

[0045] The target video is separated into audio and video streams to generate audio and video streams;

[0046] Extract target keyframes from the video stream;

[0047] Play the video stream at a faster speed based on the target keyframe, but do not play the audio stream.

[0048] The above technical solution has the following advantages or beneficial effects: it separates the target video into audio and video, and plays the video stream at double speed according to the target key frame, without playing the audio stream, thus avoiding the problem of significant changes in the speech rate and tone of the audio data after the playback speed changes, which reduces the listening effect.

[0049] Secondly, this application also provides a method for playing video at increased speed, applied to the aforementioned display device, the method comprising:

[0050] When playing the target video, in response to the video speed playback command, the speed rate and the first playback time point are obtained. The first playback time point is the current playback time point of the target video.

[0051] The second playback time point is calculated based on the speed multiplier and the first playback time point. The second playback time point is the playback time point before or after the first playback time point when the target video is played at the speed multiplier.

[0052] Extract the target keyframe from the target video. The target keyframe is the keyframe that is closest to the second playback time point.

[0053] Set the display timestamp of the target keyframe to the second playback time point;

[0054] The target video is played at different speeds based on the target keyframes, and the display of the video playback progress is controlled based on the display timestamps of the target keyframes.

[0055] As can be seen from the above technical solutions, this application provides a display device and a method for playing videos at double speed. The method, when playing a target video, responds to a video speed-up playback command, acquires the speed-up rate and a first playback time point, where the first playback time point is the current playback time point of the target video. Then, a second playback time point is calculated based on the speed-up rate and the first playback time point, where the second playback time point is either the previous or next playback time point of the first playback time point when the target video is played at double speed. Target keyframes are extracted from the target video, and their display timestamps are set as the second playback time point. The target keyframe is the keyframe closest to the second playback time point. Finally, the target video is played at double speed based on the target keyframes, and the display is controlled to show the video playback progress based on the display timestamps of the target keyframes. This method, by adjusting the display timestamps of the keyframes, achieves a direct proportional display of video playback progress and video speed-up rate. Attached Figure Description

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

[0057] Figure 1 This is a schematic diagram illustrating an operational scenario between a display device and a control device provided in some embodiments of this application;

[0058] Figure 2 This is a schematic diagram of the hardware configuration of a display device provided in some embodiments of this application;

[0059] Figure 3 This is a schematic diagram of the software configuration of a display device provided in some embodiments of this application;

[0060] Figure 4 A schematic diagram of the video playback architecture provided for some embodiments of this application;

[0061] Figure 5 This is a schematic diagram illustrating the distribution of video frame types in a video stream provided in some embodiments of this application;

[0062] Figure 6 This application provides schematic diagrams of the video playback interface for target videos in some embodiments.

[0063] Figure 7 A schematic diagram illustrating the distribution of keyframes provided in some embodiments of this application;

[0064] Figure 8 A schematic diagram illustrating the changes in video playback progress according to the initial distribution of keyframes, provided for some embodiments of this application;

[0065] Figure 9 A flowchart illustrating a video speed-up playback method provided in some embodiments of this application;

[0066] Figure 10 A schematic diagram of a speed selection menu provided for some embodiments of this application;

[0067] Figure 11 A schematic diagram illustrating the distribution of adjusted keyframes provided for some embodiments of this application;

[0068] Figure 12 A schematic diagram illustrating the changes in video playback progress according to the adjusted keyframe distribution, provided for some embodiments of this application;

[0069] Figure 13 A schematic diagram illustrating keyframe deduplication filtering provided for some embodiments of this application;

[0070] Figure 14 A schematic diagram of the architecture for video speed-up playback provided in some embodiments of this application;

[0071] Figure 15 This is a schematic diagram illustrating a video speed-up playback process provided in some embodiments of this application. Detailed Implementation

[0072] The embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described below do not represent all embodiments consistent with this application. They are merely examples of systems and methods consistent with some aspects of this application as detailed in the claims.

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

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

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

[0076] The term "module" refers to any known or subsequently developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code that is capable of performing the functions associated with that element.

[0077] In this embodiment, the display device 200 generally refers to a device with screen display and data processing capabilities. For example, the display device 200 includes, but is not limited to, smart TVs, mobile terminals, computers, monitors, advertising screens, wearable devices, virtual reality devices, augmented reality devices, etc.

[0078] Figure 1 This is a schematic diagram illustrating an operational scenario between a display device and a control device provided in some embodiments of this application. For example... Figure 1 As shown, a user can operate the display device 200 via touch operation, a mobile terminal 300, and a control device 100. The control device 100 receives user input commands and converts them into control commands that the display device 200 can recognize and respond to. For example, the control device 100 can be a remote control, a stylus, a gamepad, etc.

[0079] The mobile terminal 300 can function as a control device for human-computer interaction between the user and the display device 200. It can also function as a communication device for establishing a communication connection with the display device 200 and exchanging data. In some embodiments, the mobile terminal 300 can have software applications installed on it and communicate with the display device 200 via network communication protocols to achieve one-to-one control and data communication. Furthermore, it can transmit audio and video content displayed on the mobile terminal 300 to the display device 200 for synchronized display.

[0080] In some embodiments, the mobile terminal 300 or other electronic devices may also simulate the functions of the control device 100 by running an application that controls the display device 200.

[0081] like Figure 1 The diagram also shows that the display device 200 communicates with the server 400 via various communication methods. This allows the display device 200 to communicate via a local area network (LAN), a wireless local area network (WLAN), and other networks.

[0082] Display device 200 can provide broadcast television reception function, and can also be equipped with intelligent network television function that provides computer support, including but not limited to network television, smart television, Internet Protocol television (IPTV), etc.

[0083] Figure 2 Provided for some embodiments of this application Figure 1 Hardware configuration block diagram of display device 200.

[0084] In some embodiments, the display device 200 may include at least one of a tuner 210, a communication device 220, a detector 230, a device interface 240, a controller 250, a display 260, an audio output device 270, a memory, a power supply, and a user input interface.

[0085] In some embodiments, detector 230 is used to acquire signals from the external environment or to interact with the outside world. For example, detector 230 includes a light receiver, a sensor for acquiring ambient light intensity; or, detector 230 includes an image acquisition device, such as a camera, which can be used to acquire external environmental scenes, user attributes, or user interaction gestures; or, detector 230 includes a sound acquisition device, such as a microphone, for receiving external sounds.

[0086] In some embodiments, the display 260 includes display function components for presenting images and driving components for driving image display. The display 260 is used to receive and display image signals output from the controller 250. For example, the display 260 can be used to display video content, image content, menu control interface components, and user control UI interfaces, etc.

[0087] In some embodiments, the communication device 220 is a component used to communicate with external devices or the server 400 according to various communication protocol types. The display device 200 may have multiple communication devices 220 depending on the supported communication methods. For example, when the display device 200 supports wireless network communication, it may have a communication device 220 with WiFi functionality. When the display device 200 supports Bluetooth connectivity, it needs to have a communication device 220 with Bluetooth functionality.

[0088] The communication device 220 enables the display device 200 to communicate with external devices or the server 400 via wireless or wired connections. Wired connections utilize data cables, interfaces, or other components to connect the display device 200 to external devices. Wireless connections utilize wireless signals or wireless networks. The display device 200 can directly establish a connection with external devices or indirectly through gateways, routers, or other connection devices.

[0089] In some embodiments, the controller 250 may include at least one of a central processing unit, a video processor, an audio processor, a graphics processor, and a power processor, and a first to an nth interface for input / output. The controller 250 controls the operation of the display device and responds to user operations through various software control programs stored in memory. The controller 250 controls the overall operation of the display device 200.

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

[0091] In some embodiments, a user can input user commands through a graphical user interface (GUI) displayed on a display 260, and the user input interface receives user input commands through the graphical user interface (GUI).

[0092] In some embodiments, the audio output device 270 can be a built-in speaker of the display device 200 or an external audio output device connected to the display device 200. For the external audio output device connected to the display device 200, the display device 200 may also be provided with an external audio output terminal, through which the audio output device can be connected to the display device 200 to output sound from the display device 200.

[0093] In some embodiments, the user input interface 280 can be used to receive instructions from user input.

[0094] To enable user interaction, in some embodiments, the display device 200 may run an operating system. The operating system is a computer program used to manage and control the hardware and software resources of the display device 200. The operating system can control the display device to provide a user interface; for example, the operating system can directly control the display device to provide a user interface, or it can provide a user interface by running an application. The operating system also allows users to interact with the display device 200.

[0095] It should be noted that the operating system can be a native operating system based on a specific operating platform, a third-party operating system that is deeply customized based on a specific operating platform, or an independent operating system specifically developed for display devices.

[0096] An operating system can be divided into different modules or levels based on the functions it implements, for example... Figure 3 As shown, in some embodiments, the system is divided into four layers, from top to bottom: the Applications layer (referred to as the "Application Layer"), the Application Framework layer (referred to as the "Framework Layer"), the System Library layer, and the Kernel layer.

[0097] In some embodiments, the application layer provides services and interfaces for applications, enabling the display device 200 to run applications and interact with the user based on the applications. The application layer may contain at least one application, which may be a built-in Windows program, system settings program, or clock program of the operating system; or it may be an application developed by a third-party developer. In specific implementations, the application packages in the application layer are not limited to the examples above.

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

[0099] like Figure 3As shown, the application framework layer in this embodiment includes a view system, managers, and content providers. The view system designs and implements the application's interface and interactions, and includes lists, grids, textboxes, buttons, etc. The managers include at least one of the following modules: an activity manager for interacting with all running activities in the system; a location manager for providing system services or applications with access to system location services; a package manager for retrieving various information related to application packages currently installed on the device; a notification manager for controlling the display and clearing of notification messages; and a window manager for managing icons, windows, toolbars, wallpapers, and desktop widgets on the user interface.

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

[0101] In some embodiments, the system runtime library layer can provide support for the framework layer. When the framework layer is used, the operating system runs the instruction library contained in the system runtime library layer, such as the C / C++ instruction library, to implement the functions to be performed by the framework layer.

[0102] In some embodiments, the kernel layer is a functional layer situated between the hardware and software of the display device 200. The kernel layer can implement functions such as hardware abstraction, multitasking, and memory management. For example, ... Figure 3 As shown, hardware drivers can be configured in the kernel layer. The drivers included in the kernel layer can be at least one of the following: audio driver, display driver, Bluetooth driver, camera driver, WIFI driver, USB driver, HDMI driver, sensor driver (such as fingerprint sensor, temperature sensor, pressure sensor, etc.), and power driver, etc.

[0103] It should be noted that the above examples are merely a simple division of operating system functions and do not limit the specific form of the operating system of the display device 200 in this application embodiment. Depending on the function of the display device, the type of operating system, and other factors, the number of levels and the specific level type of the operating system may be expressed in other forms.

[0104] The display device 200 can display specific images, such as playback screens, control interfaces, and other application interfaces. Depending on the application developer or operator, the applications installed on the display device 200 can take many forms, such as system applications and third-party applications. When the display 260 shows a list of applications, the user can select one application and control the display device 200 to run that application to achieve its functions.

[0105] In some embodiments, the display device 200 may install a player application, which can play corresponding video files based on the video player in the framework layer to achieve functions such as local video playback, online on-demand, and live TV broadcasts. Figure 4 The diagram shown is a schematic representation of the video playback architecture provided in this application embodiment. During video playback, the video player of the display device 200 includes multiple modules, namely a parsing module, a data caching module, a video decoding module, an audio decoding module, an audio-visual synchronization control module, a video rendering module, and an audio rendering module. These modules perform a series of tasks, such as obtaining video data from the media source, parsing, decoding, and audio-visual synchronization.

[0106] The parsing module is used to obtain video files (source videos), separate the video data and audio data in the video files, and also obtain the encoding information of the video files, such as duration, resolution, bit rate, and sampling rate, for subsequent playback.

[0107] The data caching module is used to cache the video and audio data separated from the parsing module. At this time, the video and audio data are undecoded elementary stream (es) data.

[0108] The video decoding module is used to obtain undecoded video eSupport data from the data cache module, decode the video eSupport data, and output the decoded video data, such as data in YUV format, RGB format, etc.

[0109] The audio decoding module is used to obtain undecoded audio es data from the data buffer module, decode the audio es data, and output the decoded audio data, such as PCM format, WAV format, etc.

[0110] The audio-visual synchronization control module is used to synchronize the decoded audio and video data, enabling them to play synchronously. This module can use a clock; in the audio master synchronization control algorithm, clock correction is performed based on the actual playback volume of the audio, using the audio data stream as a reference to synchronize the video data stream.

[0111] The video rendering module is used to display the decoded video data on the screen of monitor 260 for video playback.

[0112] The audio rendering module is used to output the decoded audio data to audio output devices 270 such as speakers and headphones to play the audio.

[0113] In some embodiments, when the display device 200 plays a video, it can perform playback speed adjustment to achieve video speed-up playback. Since a video file is composed of multiple consecutive images, a frame is the basic unit that makes up a video image. Video frames include various types, such as... Figure 5 The diagram illustrates the distribution of video frame types in a video stream provided in this embodiment, including keyframes (Intra-coded frames, I-frames), predictive frames (Predictive-coded frames, P-frames), and bi-directionally-coded frames (Bi-directionally-coded frames, B-frames). It is understood that keyframes are fully compressed coded frames, capable of compressing and transmitting the entire frame's image information. During decoding, only the keyframe data needs to be decoded to reconstruct the complete image. Therefore, the display device 200 can discard bi-directionally-coded frames, predictive frames, and other video frames in the video stream, achieving video playback at double speed based solely on keyframes.

[0114] In some embodiments, when a display device plays a video at 200x speed, the speech rate and tone of the audio data will also change significantly due to the change in playback speed, thereby reducing the user's listening experience. Therefore, to improve the user experience, when the display device plays the target video at 200x speed, the target video can be separated into audio and video streams to generate audio and video streams. The audio stream is discarded, and only the video stream is processed for subsequent playback at the increased speed.

[0115] In some embodiments, the display device 200 can achieve video speed-up playback through a seek operation. During video playback, a seek operation refers to jumping to a target time point in the video stream so that the video player can start playing the video from that target time point. The seek operation is implemented by finding keyframes. When the display device 200 plays the target video at a faster speed, the direction of the seek operation can be set according to the video speed type, and the step size of the seek operation can be set according to the speed rate. For example, at a speed rate of 2x, the step size of the seek operation is set to 2 seconds; at a speed rate of 4x, the step size of the seek operation is set to 4 seconds; at a speed rate of 8x, the step size of the seek operation is set to 8 seconds; and at a speed rate of 16x, the step size of the seek operation is set to 16 seconds. By using the seek operation to locate the keyframe closest to the target time point, the video player can decode and play the keyframe.

[0116] For example, taking 2x fast-forward playback as an example, when the display device 200 is playing the target video at the 2-second mark, it receives a video speed-up command, sets the seek operation step size to 2 seconds, and sets the seek operation direction to backward. If the 3-second mark needs to play the content of the 4-second mark in the video stream, then the seek operation jumps backward 2 seconds from the 2-second mark to the 4-second mark, locates the keyframe closest to the 4-second mark, and performs decoding and playback on that keyframe. If the 4-second mark needs to play the content of the 6-second mark in the video stream, then the seek operation continues, jumping backward 2 seconds from the 4-second mark to the 6-second mark, locating the keyframe closest to the 6-second mark, and performing decoding and playback on that keyframe, and so on, thus achieving video speed-up playback.

[0117] In some embodiments, the display device 200 can achieve video speed-up playback by resetting the Presentation Time Stamp (PTS) of keyframes in the video stream. During video encoding, the encoder assigns a presentation timestamp to each video frame, which indicates the time when the video frame should be displayed. When the player plays the video, it reads the presentation timestamp of the video frame and decodes and displays the video content of that frame according to the display time specified by the presentation timestamp.

[0118] Therefore, when the display device plays the target video at 200x speed, it can reset the initial display timestamp of the key frames that need to be played in the target video to the target display timestamp according to the speed rate, so that the target display timestamp meets the time interval required for the speed playback, and play the key frames according to the adjusted target display timestamp.

[0119] The initial display timestamp is the display timestamp corresponding to the keyframe when the target video is played at normal speed, and the target display timestamp is the display timestamp corresponding to the keyframe after the speed of the target video is adjusted.

[0120] For example, taking 4x fast-forward playback as an example, the initial display timestamps of each keyframe in the target video are 0 seconds, 1 second, 2 seconds, 3 seconds, etc. When playing at 4x speed, the interval between two adjacent keyframes should be adjusted to 1 / 4 second. Therefore, the display timestamp of the first keyframe is 0, the second keyframe's display timestamp is adjusted to 0.25, the third keyframe's display timestamp is adjusted to 0.5, the fourth keyframe's display timestamp is adjusted to 0.75, and so on. This means the number of keyframes played per second changes from one in normal speed playback to four in 4x speed playback, thus achieving accelerated video playback without discarding keyframes.

[0121] In some embodiments, in order to improve the user experience, when the display device 200 plays a video, it can record the video playback progress of the player. When the user inputs a display command to indicate the video playback progress, the video playback progress can be obtained, and the display 260 can be controlled to display the video playback progress according to a preset display method.

[0122] In some embodiments, the display device 200 can, in response to a playback instruction for the target video, create a video playback window and a playback progress control, and control the display 260 to display the video playback window and the playback progress control. The playback progress control has a higher display layer than the video playback window, allowing the display device 200 to play the target video through the video playback window and display the video playback progress of the target video through the playback progress control. For example, as... Figure 6 The image shows a schematic diagram of the video playback interface for the target video provided in this embodiment of the application. The playback progress control in this interface displays the video playback progress in the form of text and a progress bar. The text "00:16 / 00:50" in the image indicates that the video duration is 50 seconds and the current playback is at the 16th second, allowing the user to intuitively understand the playback progress information.

[0123] However, during normal video playback, the playback progress is calculated based on the audio stream's playback progress. In scenarios involving accelerated video playback, the audio stream is discarded, and the playback progress is displayed based on the timestamps of the video frames. However, all the above implementations of video acceleration suffer from a mismatch between the timestamps of keyframes and the actual playback progress. This leads to a significant difference between the displayed playback progress and the actual set video speed, degrading the user experience. Decoding both audio and video using a variable speed without changing the pitch requires high decoding performance, and this method only supports low speeds, making it difficult to implement in high-speed scenarios.

[0124] For example, consider implementing video playback speed adjustment by resetting the display timestamps of keyframes. Since the display timestamps of keyframes are directly adjusted based on the target video's playback speed, displaying the playback progress based on the adjusted keyframe timestamps will not only result in the displayed playback progress being disproportionate to the actual set video speed, but will also cause changes to the video duration.

[0125] For example, if the target video has a playback duration of 12 seconds and contains two keyframes at the 1st and 12th seconds respectively, when playing it at 2x speed, the display timestamp of the keyframe at the 1st second will be set to the 1st second, and the display timestamp of the keyframe at the 12th second will be set to the 2nd second. Therefore, when playing it at 2x speed, the actual playback duration of the video is only 2 seconds.

[0126] For example, when using the seek operation to speed up video playback, since the actual position of the seek operation depends on the position of the keyframes stored inside the video source, and the keyframes are not evenly distributed in the video, if the video playback progress is displayed directly based on the display timestamps of the keyframes, uneven progress will occur.

[0127] like Figure 7The diagram shows the keyframe distribution provided in this embodiment. The target video has a playback duration of 50 seconds. Taking 16x fast-forward playback as an example, the display device 200 will play the content at 16s, 32s, and 48s of the target video. When it is necessary to display the content at 16s of the target video, the seek operation will locate the first keyframe closest to 16s, and the video playback progress displayed according to the display timestamp of the first keyframe will be 14s. When it is necessary to display the content at 32s of the target video, the seek operation will locate the second keyframe closest to 32s, and the video playback progress displayed according to the display timestamp of the second keyframe will be 26s. When it is necessary to display the content at 48s of the target video, the seek operation will locate the third keyframe closest to 48s, and the video playback progress displayed according to the display timestamp of the third keyframe will be 38s. The effect of the above 16x fast-forward playback on the interface is as follows. Figure 8 As shown, the video playback progress jumps from 14s to 26s, and then from 26s to 38s. The video playback progress is not proportional to the actual set speed.

[0128] In some embodiments of this application, a video playback speed-up method is provided. This method, based on seek operations, adjusts the distribution of keyframes to align the display timestamps of keyframes with the playback positions requiring seek operations, thereby ensuring that the displayed video playback progress is proportional to the actual set playback speed. The display device 200 capable of applying this video playback speed-up method includes at least a display 260 and a controller 250. The display 260 is configured to display a user interface. Figure 9 The diagram shown is a flowchart illustrating the video speed-up playback method provided in this application embodiment, which specifically includes the following steps:

[0129] S901: When playing the target video, respond to the video speed playback command and obtain the speed rate and the first playback time point.

[0130] The first playback time point is the current playback time point of the target video. For example, using... Figure 6 The video playback interface shown includes a speed control. The display device 200 can respond to user input clicking commands on the speed control and display the following: Figure 10 The speed selection menu shown includes multiple speed options, such as 0.5x, 1x, 1.5x, 2x, 4x, 8x, 16x, and 32x, for the user to choose from. When the user selects the 16x speed option, the display device 200 can generate a video playback command indicating a speed of 16x to execute 16x playback processing of the target video.

[0131] S902: Calculate the second playback time point based on the speed ratio and the first playback time point.

[0132] The second playback time point is the playback time point before or after the first playback time point when the target video is played at double speed.

[0133] In some embodiments, the display device 200 can detect the video playback speed type. If the video playback speed type is rewind playback, the second playback time point is the playback time point preceding the first playback time point when the target video is played at the rewind speed. If the video playback speed type is fast forward playback, the second playback time point is the playback time point following the first playback time point when the target video is played at the rewind speed.

[0134] For example, taking 2x speed as an example, if the seek operation step size is set to 2 seconds, and the current playback time of the target video is 5 seconds, then the first playback time is 5 seconds. If the video speed type is fast-forward playback, and the seek operation direction is set to backward, then the seek operation jumps backward 2 seconds from 5 seconds, jumping to 7 seconds. The playback position after the seek operation is the second playback time, which is 7 seconds. If the video speed type is rewind playback, and the seek operation direction is set to forward, then the seek operation jumps forward 2 seconds from 5 seconds, jumping to 3 seconds. The playback position after the seek operation is the second playback time, which is 3 seconds.

[0135] In some embodiments, the display device 200 can obtain the playback time range of the target video, detect whether the second playback time point exceeds the playback time range, and if the second playback time point exceeds the playback time range, then the playback of the target video ends. If the second playback time point does not exceed the playback time range, then subsequent video speed-up playback processing is performed.

[0136] For example, if the target video's playback duration is 30 seconds, then the corresponding playback time range is 0-30 seconds. If the calculated second playback time point does not exceed the 0-30 second range, then the subsequent video speed-up playback process continues. If the calculated second playback time point exceeds the 0-30 second range, then the playback of the target video ends.

[0137] S903: Extract target keyframes from the target video.

[0138] The target keyframe is the keyframe that is closest to the second playback time point.

[0139] S904: Set the display timestamp of the target keyframe to the second playback time point.

[0140] The display device 200 can locate the key frame closest to the second playback time point through a seek operation, and modify the display timestamp of the key frame to the second playback time point, so as to correspond the display timestamp of the key frame with the position where the seek operation is required.

[0141] In some embodiments, the display timestamps of keyframes can be adjusted based on the following time correction algorithm:

[0142] pts_temp'=start_pos+gap*((pts_temp-start_pos) / gap+direction*1);

[0143] Here, `pts_temp` is the display timestamp of the keyframe before adjustment, and `pts_temp'` is the display timestamp of the keyframe after adjustment. `start_pos` is the starting position, i.e., the first playback time point. `gap` is the step size of the seek operation. `direction` represents the direction of the seek operation; if the video speed type is rewind, `direction` is -1; if the video speed type is fast forward, `direction` is 1.

[0144] For example, continue to use Figure 7 Taking the keyframe distribution shown in the 16x fast-forward playback example, the first keyframe closest to 16s is located using a seek operation, extracted, and its display timestamp is changed from 14s to 16s; the second keyframe closest to 32s is located using a seek operation, extracted, and its display timestamp is changed from 26s to 32s; the third keyframe closest to 48s is located using a seek operation, extracted, and its display timestamp is changed from 38s to 48s.

[0145] like Figure 11 The diagram shown is a schematic diagram of the distribution of the target display timestamps of the adjusted keyframes provided in the embodiments of this application. It can be seen that the target display timestamps of the adjusted keyframes correspond to the actual playback positions that need to be sought.

[0146] S905: Plays the target video at a faster speed based on the target keyframe, and controls the display 260 to show the video playback progress of the target video based on the display timestamp of the target keyframe.

[0147] In some embodiments, such as Figure 6As shown, after extracting the target keyframe and modifying its display timestamp, the display device 200 decodes the target keyframe and controls the monitor 260 to display the decoded target keyframe through the video playback window. Simultaneously, the display timestamp of the target keyframe can be read, the video playback progress of the target video can be updated based on the timestamp, and the monitor 260 can be controlled to display the updated video playback progress through a playback progress control.

[0148] For example, continue to use Figure 11 The example shown illustrates the target display timestamp, and the interface changes resulting from the 16x fast-forward playback implementation are as follows. Figure 12 As shown, the video playback progress will jump from 16s to 32s, and then from 32s to 48s, so that the display of the video playback progress is directly proportional to the actual set speed.

[0149] In some embodiments, when the seek operation is used to locate the target keyframe closest to the second playback time point, there may be cases where two adjacent seek operations locate the same target keyframe. In order to reduce the resource consumption of decoding, the display device 200 can obtain the initial display timestamp of the target keyframe and the initial display timestamp of the historical keyframe. The historical keyframe is the keyframe corresponding to the initial display timestamp closest to the first playback time point, and the initial display timestamp is the display timestamp corresponding to the keyframe when the target video is played at normal speed.

[0150] Compare the initial display timestamp of the target keyframe with the initial display timestamp of the historical keyframe. If the initial display timestamp of the historical keyframe is different from that of the target keyframe, it means that the target keyframe and the historical keyframe are not the same keyframe, and subsequent decoding operations are performed on the target keyframe. If the initial display timestamp of the historical keyframe is the same as that of the target keyframe, it means that the target keyframe and the historical keyframe are the same keyframe, and subsequent decoding operations are not performed on the target keyframe.

[0151] For example, such as Figure 13The diagram illustrates keyframe deduplication filtering provided in this embodiment. Taking 4x fast-forward playback as an example, the display device 200 can set the seek operation step size to 4 seconds and the seek operation direction to backward. The seek operation jumps to the 12th second, locating the keyframe I1 closest to the 12th second. The seek operation then jumps again to the 16th second, locating the keyframe I2 closest to the 16th second. The seek operation then jumps again to the 20th second, locating the keyframe I2 closest to the 20th second. The seek operation then jumps again to the 24th second, locating the keyframe I3 closest to the 24th second. Simultaneously, the display timestamps of the keyframes can be adjusted according to the playback position of the seek operation, ensuring that the display timestamps of the keyframes correspond to the playback position of the seek operation.

[0152] After adjusting the distribution of keyframes, the display device 200 can perform deduplication filtering on the keyframes. Based on the initial display timestamp of the keyframes, it is determined that the keyframes corresponding to the positions at 16s and 20s are duplicates, both being keyframe I2. Therefore, the decoding operation of keyframe I2 corresponding to the position at 20s is canceled to obtain the final distribution of keyframes.

[0153] In other words, when the display device 200 needs to display the video content at the 16th second, it decodes and displays the key frame I2. When it needs to display the video content at the 20th second, it does not need to decode the key frame I2 again and can directly display the decoded key frame I2.

[0154] In some embodiments, the display device 200 may set up a cache queue for storing target keyframes. After setting the display timestamp of the target keyframe to the second playback time point, the display device 200 may store the target keyframe in the cache queue and play the target video at the specified speed according to the target keyframe in the cache queue.

[0155] Accordingly, the display device 200 compares the initial display timestamp of the target keyframe with the initial display timestamp of the historical keyframe. If the initial display timestamp of the historical keyframe is different from the initial display timestamp of the target keyframe, the target keyframe is stored in the cache queue. If the initial display timestamp of the historical keyframe is the same as the initial display timestamp of the target keyframe, the target keyframe is discarded and not stored in the cache queue.

[0156] In some embodiments, such as Figure 14 The diagram shown is a schematic representation of the video speed-up playback architecture provided in an embodiment of this application. Figure 4 Based on the architecture of the video player shown, a video speed-up module is added between the parsing module and the data caching module to perform video speed-up processing. For example... Figure 15 As shown, with Figure 14The video player architecture described in this application illustrates the video speed-up playback process provided in the embodiments.

[0157] When a player application plays a target video based on a video player, it can be based on... Figure 6 The video playback interface shown interacts with the user, receiving the user's input video speed control command. In response to the video speed control command, it sends an identifier representing the video speed type and speed rate to the parsing module. For example, the identifier "1" indicates that the video speed type is fast forward playback, the identifier "-1" indicates that the video speed type is rewind playback, and the identifier "16" indicates that the speed rate is 16x.

[0158] The parsing module sets the direction of the seek operation based on the video speed type and the step size of the seek operation based on the speed rate. The seek operation is executed starting from the current playback time point and checks if the seek operation exceeds the limit. Specifically, it checks if the playback time point after the seek operation (the second playback time point) exceeds the playback time range of the target video. If it does, playback of the target video ends. If it does not exceed the playback time range, the target keyframe located by the seek operation that is closest to the second playback time point is extracted and sent to the video speed-up module.

[0159] Understandably, in order to improve the user's viewing experience, the parsing module separates the audio stream and video stream in the target video, discards the audio stream, and only sends the target keyframe in the video stream located by the seek operation to the video speed-up module, so that when the video is played at double speed, only the video stream is played at double speed and the audio stream is not played.

[0160] The video speed-up module receives the target keyframe, modifies the display timestamp of the target keyframe to the second playback time point, and sends the modified target keyframe to the data cache module.

[0161] The data caching module receives the target keyframe and, based on its initial display timestamp, determines whether the currently received target keyframe is the same as the previously received target keyframe. If they are the same, the currently received target keyframe is discarded; otherwise, it is stored in the cache queue.

[0162] The video decoding module reads the target keyframe from the cache queue in the data cache module, decodes the target keyframe, and outputs the decoded video data. The video rendering module displays the decoded video data on the screen of the monitor 260 to achieve the speed-up playback of the target video.

[0163] When a user wants to restore the video to normal playback speed, they can input a normal playback command. The player application responds to this command by sending an instruction to the parsing module to cancel the seek operation. The parsing module cancels the seek operation and resumes playback from the current playback point according to the normal video playback flow. This involves parsing the video and audio data in the video file and sending it to the data cache module. The video decoding module retrieves the video data from the data cache module for decoding. The audio decoding module retrieves the audio data from the data cache module for decoding. The audio-visual synchronization control module synchronizes the decoded audio and video data. Finally, the video rendering module displays the decoded video data on the screen of monitor 260, and the audio rendering module outputs the decoded audio data to the audio output device 270, thus switching the target video from accelerated playback back to normal playback.

[0164] Based on the above-described video speed-up playback method, some embodiments of this application provide a display device 200. It includes a display 260 and a controller 250. The display 260 is configured to display a user interface. The controller 250 is configured to:

[0165] When playing the target video, in response to the video speed control command, the playback speed and the first playback time point are obtained. The first playback time point is the current playback time point of the target video.

[0166] The second playback time point is calculated based on the speed multiplier and the first playback time point. The second playback time point is the playback time point before or after the first playback time point when the target video is played at the speed multiplier.

[0167] Extract the target keyframe from the target video. The target keyframe is the keyframe that is closest to the second playback time point.

[0168] Set the display timestamp of the target keyframe to the second playback time point.

[0169] The target video is played at a faster speed based on the target keyframes, and the display of the video playback progress on the monitor 260 is controlled based on the display timestamps of the target keyframes.

[0170] The same or similar parts among the various embodiments in this specification can be referred to mutually, and will not be repeated here.

[0171] As can be seen from the above technical solutions, the display device and video speed-up playback method provided in the above embodiments can, in response to a video speed-up playback command, obtain the speed-up rate and a first playback time point when playing a target video. The first playback time point is the current playback time point of the target video. Then, a second playback time point is calculated based on the speed-up rate and the first playback time point. The second playback time point is the playback time point before or after the first playback time point when the target video is played at the speed-up rate. Target keyframes are extracted from the target video, and the display timestamp of the target keyframe is set as the second playback time point. The target keyframe is the keyframe closest to the second playback time point. Finally, the target video is played at speed-up based on the target keyframe, and the display is controlled to show the video playback progress based on the display timestamp of the target keyframe. This method achieves a direct proportional display of video playback progress and video speed-up rate by adjusting the display timestamp of the keyframe.

[0172] Those skilled in the art will clearly understand that the techniques in the embodiments of the present invention can be implemented using software plus necessary general-purpose hardware platforms. Based on this understanding, the technical solutions in the embodiments of the present invention, or the parts that contribute to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods of various embodiments or certain parts of the embodiments of the present invention.

[0173] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

[0174] For ease of explanation, the above description has been provided in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or to limit the embodiments to the specific forms disclosed above. Various modifications and variations can be obtained based on the above teachings. The selection and description of the above embodiments are for the purpose of better explaining the principles and practical applications, thereby enabling those skilled in the art to better utilize the described embodiments and various different variations of embodiments suitable for specific use considerations.

Claims

1. A display device, characterized in that, include: The monitor is configured to display the user interface; The controller is configured as follows: When playing the target video, in response to the video speed playback command, the speed rate and the first playback time point are obtained, where the first playback time point is the current playback time point of the target video. The second playback time point is calculated based on the speed multiplier and the first playback time point. The second playback time point is the playback time point before or after the first playback time point when the target video is played at the speed multiplier. Extract target keyframes from the target video, wherein the target keyframes are the keyframes closest to the second playback time point; Set the display timestamp of the target keyframe to the second playback time point; The target video is played at a faster speed based on the target keyframe, and the display of the video playback progress of the target video is controlled based on the display timestamp of the target keyframe.

2. The display device according to claim 1, characterized in that, After the controller performs the step of calculating the second playback time point based on the speed multiplier and the first playback time point, it is further configured to: Obtain the playback time range of the target video; If the second playback time point exceeds the playback time range, the playback of the target video ends; If the second playback time point does not exceed the playback time range, extract the target keyframe from the target video.

3. The display device according to claim 1, characterized in that, After the controller performs the step of setting the display timestamp of the target keyframe to the second playback time point, it is further configured to: Store the target keyframe in a cache queue; Play the target video at the target keyframes in the cache queue at the specified speed.

4. The display device according to claim 3, characterized in that, The controller is configured to store the target keyframe into the cache queue and also to: Obtain the initial display timestamp of the target keyframe and the initial display timestamp of the historical keyframe, wherein the historical keyframe is the keyframe corresponding to the initial display timestamp closest to the first playback time point; The initial display timestamp is the display timestamp corresponding to the key frame when the target video is played at normal speed; If the initial display timestamp of the historical keyframe is different from the initial display timestamp of the target keyframe, the target keyframe is stored in the cache queue.

5. The display device according to claim 1, characterized in that, The controller is also configured to: In response to a playback command for the target video, a video playback window and a playback progress control are created, wherein the display level of the playback progress control is higher than the display level of the video playback window; Control the display to show the video playback window and the playback progress control; The target video is played through the video playback window, and the playback progress of the target video is displayed through the playback progress control.

6. The display device according to claim 5, characterized in that, The controller is configured to play the target video at a different speed based on the target keyframes, specifically as follows: Decode the target keyframe; The display is controlled to show the decoded target keyframes through the video playback window.

7. The display device according to claim 5, characterized in that, The controller executes the function of controlling the display to show the video playback progress of the target video based on the display timestamp of the target keyframe, specifically configured as follows: Read the display timestamp of the target keyframe; Update the video playback progress of the target video according to the displayed timestamp; The display is controlled to show the updated playback progress of the target video through the playback progress control.

8. The display device according to claim 1, characterized in that, The controller is configured to calculate the second playback time point based on the speed multiplier and the first playback time point, and is also configured to: Detect video speed adjustment type; If the video speed type is rewind playback, the second playback time point is the playback time point before the first playback time point when the target video is played at the speed rate. If the video speed type is fast-forward playback, the second playback time point is the playback time point after the first playback time point when the target video is played at the speed of the specified speed.

9. The display device according to claim 1, characterized in that, After the controller performs the step of calculating the second playback time point based on the speed multiplier and the first playback time point, it is further configured to: The target video is separated into audio and video streams to generate audio and video streams; Extract the target keyframe from the video stream; The video stream is played at a faster speed based on the target keyframe, while the audio stream is not played.

10. A method for playing videos at double speed, characterized in that, The method includes: When playing the target video, in response to the video speed playback command, the speed rate and the first playback time point are obtained, where the first playback time point is the current playback time point of the target video. The second playback time point is calculated based on the speed multiplier and the first playback time point. The second playback time point is the playback time point before or after the first playback time point when the target video is played at the speed multiplier. Extract target keyframes from the target video, wherein the target keyframes are the keyframes closest to the second playback time point; Set the display timestamp of the target keyframe to the second playback time point; The target video is played at a faster speed based on the target keyframes, and the display is controlled to show the video playback progress of the target video based on the display timestamps of the target keyframes.

Citation Information

Patent Citations

  • Player synchronization system and method

    CN106060610A

  • Method for skipping multimedia file and multimedia apparatus thereof

    US20120281966A1