CN106507204B - Video reverse playing method and device - Google Patents

Video reverse playing method and device Download PDF

Info

Publication number
CN106507204B
CN106507204B CN201611116754.9A CN201611116754A CN106507204B CN 106507204 B CN106507204 B CN 106507204B CN 201611116754 A CN201611116754 A CN 201611116754A CN 106507204 B CN106507204 B CN 106507204B
Authority
CN
China
Prior art keywords
video
decoding
playing
reverse
frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611116754.9A
Other languages
Chinese (zh)
Other versions
CN106507204A (en
Inventor
熊涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201611116754.9A priority Critical patent/CN106507204B/en
Publication of CN106507204A publication Critical patent/CN106507204A/en
Application granted granted Critical
Publication of CN106507204B publication Critical patent/CN106507204B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs

Abstract

The embodiment of the invention discloses a video reverse playing method and a video reverse playing device; the method comprises the steps of receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates a video file to be played reversely, then obtaining decoding time required by a video frame group in the video file and playing time required by video frames in the video file according to the video reverse playing instruction, determining the number of video frames decoded in parallel according to the decoding time and the playing time, performing reverse decoding on the video frames in the video file in parallel according to the number of the video frames to obtain video data, and performing reverse playing on the video data; due to the adoption of the scheme, the memory occupation can be greatly reduced.

Description

Video reverse playing method and device
Technical Field
The invention relates to the technical field of videos, in particular to a video reverse playing method and device.
Background
Because the video reverse playing (i.e. reverse playing) can bring interesting effects and great fun to people, the video reverse playing technology is widely applied to playing of various videos.
At present, the video reverse playing scheme specifically comprises: the last GOP (Group of pictures) is decoded in the order from first to last, the decoded data of each frame is stored in the memory, and then displayed according to the time requirement. When the last GOP is played, all frames of the last GOP are decoded, stored in the memory and displayed according to the time requirement.
However, the current video reverse playing scheme needs to store the decoded data of all frames in the GOP into the memory, and therefore, the video reverse playing occupies a large amount of memory, that is, the memory occupation is increased.
Disclosure of Invention
The embodiment of the invention provides a video reverse playing method and device, which can reduce the memory occupation amount.
The embodiment of the invention provides a video reverse playing method, which comprises the following steps:
receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates a video file needing to be played reversely;
according to the video reverse playing instruction, acquiring decoding time required by a video frame group in the video file and playing time required by a video frame in the video file;
determining the number of video frames decoded in parallel according to the decoding time and the playing time;
parallelly reversely decoding the video frames in the video file according to the number of the video frames to obtain video data;
and playing the video data in a reverse order.
Correspondingly, an embodiment of the present invention further provides a video reverse playing device, including:
a receiving unit, configured to obtain, according to the video reverse playing instruction, decoding time required for a video frame group in the video file and playing time required for a video frame in the video file;
a determining unit, configured to determine the number of video frames decoded in parallel according to the decoding time and the playing time;
the decoding unit is used for parallelly carrying out reverse decoding on the video frames in the video file according to the number of the video frames to obtain video data;
and the playing unit is used for playing the video data in a reverse order.
The method comprises the steps of receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates a video file to be played reversely, then obtaining decoding time required by a video frame group in the video file and playing time required by video frames in the video file according to the video reverse playing instruction, determining the number of video frames decoded in parallel according to the decoding time and the playing time, performing reverse decoding on the video frames in the video file in parallel according to the number of the video frames to obtain video data, and performing reverse playing on the video data; because the scheme can determine the number of video frames decoded in parallel at each time based on the decoding time required by the video frame group and the playing time required by the video frames, and reversely decode the number of video frames in parallel; therefore, the scheme does not need to store the decoded data of all frames in the GOP to the memory after each decoding, and can reduce the amount of the decoded data stored to the memory in the process of reverse playing, so that the memory occupation amount or the usage amount can be greatly reduced compared with the prior art.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
Fig. 1a is a flowchart of a video reverse playing method according to an embodiment of the present invention;
FIG. 1b is a schematic view of a video frame provided by an embodiment of the present invention;
FIG. 1c is a schematic diagram of a GOP provided by an embodiment of the present invention;
fig. 2 is another flowchart of a video reverse playing method according to an embodiment of the present invention;
fig. 3 is a schematic structural diagram of a video reverse playing device according to an embodiment of the present invention;
fig. 4 is a schematic structural diagram of a terminal according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The embodiment of the invention provides a video reverse playing method and device. The following are detailed below.
The first embodiment,
The embodiment will be described from the perspective of a video reverse playing device, where the video reverse playing device may be specifically integrated in a terminal and the like, and the terminal may be a mobile phone, a tablet computer, or a notebook computer and the like.
A method of video reverse playback comprising: receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates a video file to be played reversely, then, according to the video reverse playing instruction, obtaining the decoding time required by a video frame group in the video file and the playing time required by a video frame in the video file, determining the number of video frames decoded in parallel according to the decoding time and the playing time, parallelly and reversely decoding the video frames in the video file according to the number of the video frames to obtain video data, and reversely playing the video data.
As shown in fig. 1a, a specific process of a video reverse playing method may be as follows:
101. and receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates the video file needing to be played reversely.
A video file may comprise a number of video frames, for example, a sequence of video frames. In particular, the video file may include key frames (e.g., intra-coded frames) and non-key frames (e.g., forward predictive coded frames). Referring to FIG. 1b, wherein I represents a key frame and P represents a non-key frame. When the video is played in the forward direction, the I frame nearest to the P frame can be solved first, and then the P frame can be solved sequentially.
A group of video frames from a key frame to a previous frame of a next key frame in the video file, called GOP (group of pictures), is referred to fig. 1 c.
In this embodiment, the format of the video file is various, and may be, for example, MPEG (Moving Picture experts group), MPEG1, MPEG2, or other formats.
The video reverse playing instruction may be triggered by a trigger interface such as a preset trigger key or an input box in the trigger terminal, for example, when a user clicks or strokes an icon, the video reverse playing instruction is triggered to be generated, at this time, the video reverse playing apparatus may receive the video reverse playing instruction, for example, the video reverse playing instruction is received through a preset instruction receiving interface, and the like.
The video reverse playing instruction can carry information such as an identifier of a video file.
102. And acquiring the decoding time required by the video frame group in the video file and the playing time required by the video frame in the video file according to the video reverse playing instruction.
Specifically, a video file is obtained according to a video reverse playing instruction, and then, the decoding time required by the video frame group in the video file and the playing time required by the video frame in the video file are obtained.
The video file may be obtained in a variety of manners, for example, the video file may be obtained from the local storage unit according to the video reverse playing instruction, or the video file may be obtained from the network server according to the video reverse playing instruction.
In this embodiment, the video frame group may be formed by consecutive video frames, and may be set according to actual requirements. Such as a group of video frames, i.e., a GOP, that can be a key frame to a previous frame to a next key frame. At this time, the decoding time may be a time required to decode one GOP, i.e., a time from the start key frame to the last frame of the GOP.
Preferably, the decoding time may be the maximum time required to decode one GOP, i.e., the time required to decode one GOP in the worst case. For example, the time period required for decoding the GOP is 150ms in a normal case, and 200ms in an abnormal case such as an excessive CPU load, and the like, in which case 200ms may be selected.
The required playing time of the video frame may be the playing time or the display time of the video frame in the video file. Typically, the time to decode a GOP is greater than the play time of a video frame.
In this embodiment, the decoding time may be obtained by actually decoding the GOP in the video file, or may be preset, for example, the decoding time of one GOP is preset before the video reverse playing instruction is received.
Optionally, in some other embodiments, a frame number decoding time mapping relationship set may be obtained in advance, where the set includes a mapping relationship between a frame number in a GOP and a decoding time, and at this time, a corresponding decoding time may be obtained according to the frame number in the GOP and the mapping relationship set.
The playing time of the video frame may be obtained in various manners, for example, the video frame generally includes the starting playing time of the video frame, and therefore, the playing time required by the video frame may be obtained according to the starting playing time of the video frame and the starting playing time of the video frame adjacent to the video frame.
In this embodiment, the playing time required by the video frame may also be obtained according to the video frame rate and the total number of the video frames; for example, a video frame rate of 1000 frames is 25fps, and the display duration of each frame is 1000/25 ═ 40 ms.
103. And determining the number of video frames decoded in parallel according to the decoding time and the playing time.
The number of video frames decoded in parallel may be the number of video frames that are parallel at a time.
Preferably, the number of video frames is less than the number of video frames comprised by a group of video frames, such as a GOP. Therefore, a small amount of decoding data can be stored in the initial playing stage, and the occupation amount of the memory is reduced.
Specifically, in order to ensure that the video frame can be decoded before the playing time of the video frame is reached, and improve the video playing quality, this embodiment needs to set a reasonable number of parallel decoded video frames, for example, the number of parallel decoded video frames may be determined based on a division quotient between the decoding time and the playing time; that is, the step of "determining the number of video frames decoded in parallel according to the decoding time and the playing time" may include:
dividing the decoding time by the playing time to obtain a quotient value;
and determining the number of the video frames decoded in parallel according to the quotient.
Wherein the step of determining the number of video frames decoded in parallel according to the quotient may comprise: and selecting the minimum integer not less than the quotient value as the number of the video frames decoded in parallel.
For example, when the decoding time is m and the video frame playing time is n, the number q of video frames is ceil (m/n). ceil refers to taking the smallest integer no less than m/n. For example, m is 220ms, n is 40ms, m/n is 5.5, q is 6, m is 200ms, n is 40ms, m/n is 5, and q is 5.
104. And parallelly carrying out reverse decoding on the video frames in the video file according to the number of the video frames to obtain video data.
Wherein, the reverse decoding refers to decoding from the last video frame of the video file to the initial video frame. For example, the video file includes S frames, S is a positive integer, and is denoted as frame1, frame2, frame3, …, frame S, so that the reverse decoding starts from frame S to frame 1.
In order to increase the video reverse playing speed, the present embodiment may set a plurality of decoding threads to decode the video frames in parallel, where the number of decoding threads may be determined based on the number of video frames decoded in parallel; that is, the step of "performing reverse decoding on video frames in a video file in parallel according to the number of the video frames" may include:
determining the number of decoding threads needing to be started according to the number of the video frames;
and performing reverse decoding on the video frames in the video file in parallel according to the number of decoding threads.
Preferably, the number of decoding threads may be consistent with the number of video frames, for example, when the number of video frames decoded in parallel is k, then k decoding threads need to be started, and k is a positive integer.
In the reverse decoding process, for each decoding thread, the video frame needing to be decoded can be determined, and then the selected video frame is decoded through the decoding thread; that is, the step of "reversely decoding the video frames in the video file according to the number of decoding threads in parallel" may include:
reversely selecting a target video frame which is required to be decoded currently by a decoding thread from video frames of a video file;
and decoding the target video frame through the decoding thread.
The reverse selection refers to selecting video frames along a direction with a last video frame of the video file as a starting point and a starting video frame of the video file as an ending point, for example, the video file includes S video frames, and then, for a certain decoding thread, the reverse selection may be to sequentially select an S-th video frame, an S-3-th video frame, and an S-5-th video frame … … -1 st video frame.
For each decoding thread, reversely selecting a target video frame based on the number of threads and the historical decoding video frames of the decoding thread; that is, the step of "reversely selecting a target video frame that needs to be decoded by a decoding thread from video frames of a video file" may include:
and decoding the video frames according to the number and the history of the decoding threads, and reversely selecting the target video frame which needs to be decoded by the decoding thread from the video frames of the video file.
Wherein, the historical decoded video frame of the decoding thread can be the video frame decoded by the previous decoding thread.
In this embodiment, the target video frame may be reversely selected according to the number and the identifier of the historical decoded video frame. For example, in the case of numbering video frames, the target video frame may be selected inversely according to the number and the number of the historical decoded video frames. In practical application, the decoding threads can also be numbered, and in this case, the target video frame can be selected reversely according to the number, the number of the decoding threads and the number of the historical decoding video frame. Preferably, the difference between the current target video frame and the historical decoded video is equal to the quantitative value.
For example, the video file includes S video frames, i.e., video frame1, video frame2, and … … video frame S; the number of the start threads is k and is marked as T1, T2, T3, … Ti and Tk. For the thread Ti, the historical decoded video frame is 0 in the 1 st selection, the selected target video frame is the video frame S-i +1 at the moment, the selected target video frame is the video frame (S-i +1) -k in the 2 nd selection, the selected target video frame is the video frame (S-i +1) -2k in the 3 rd selection, and the selected target video frame is the video frame (S-i +1) - (j-1) k in the … … jth line selection.
In this embodiment, after the target video is decoded to obtain the video data, the video data obtained by decoding may be added to the video data set, so that the video data in the video data set may be played in reverse order in the following process, and the speed of playing the video in reverse order is increased.
105. And playing the video data in a reverse order.
The reverse playing refers to playing from the last video frame to the initial video frame, such as playing the video data S of the video frame S and the video data S-1 … … of the video frame S-1 in sequence, i.e. playing the video data S of the video frame S-1 and the video data1 of the video frame1 in sequence.
Specifically, the video data may be played in reverse order according to the playing time, that is, the step "playing the video data in reverse order" may include:
acquiring the current video playing time;
and playing the video data in a reverse order according to the current video playing time.
For example, target video data to be played is determined according to the current video playing time, and then the target video data is played. For example, the video file includes video frame1 and video frame2 … …, where each video frame is played for n milliseconds, 0 millisecond plays the video data S of the last video frame S, n milliseconds plays the video data S-1 of the video frame S-1, and (k-1) n milliseconds plays the video data S-k +1 … … (2k-1) n milliseconds plays the video data … … (2k) n milliseconds plays the video data … … of the video frame S-2k + 1.
Specifically, in order to decode and acquire the video data of a video frame before the playing time of the video frame reaches, when the video data decoded by a certain decoding thread is played in reverse order, the embodiment may trigger the decoding thread to decode the subsequent un-decoded video frame again. That is, the step "play video data in reverse order" may include:
and playing the video data in a reverse order, and returning to the step of reversely selecting the target video frame which needs to be decoded by the decoding thread when playing the video data.
For example, the number of active threads is k, which is denoted as T1, T2, T3, … Ti, Tk, and for Ti, the target video frame currently needing to be decoded by Ti can be reversely selected from the video frames as a video frame S-i +1 (the last video frame), the video data S-i +1 is obtained after the video frame S-i +1 is decoded through Ti, the target video frame needing decoding can be reversely selected again to be the video frames (S-i +1) -k to obtain the video data (S-i +1) -k when the video data S-i +1 is played subsequently, the target video frame is reversely selected to be decoded … … when the video data (S-i +1) -k is played subsequently, and the reverse selection and decoding operation is stopped until all the video frames of the video file are decoded.
Optionally, when the decoded video data is added to the video data set, the video data in the video data set may be played in reverse order.
As can be seen from the above, in the embodiment of the present invention, a video reverse playing instruction is received, where the video reverse playing instruction indicates a video file to be played reversely, then, according to the video reverse playing instruction, decoding time required by a video frame group in the video file and playing time required by a video frame in the video file are obtained, the number of video frames decoded in parallel is determined according to the decoding time and the playing time, and according to the number of video frames, video frames in the video file are decoded in reverse direction in parallel to obtain video data, and the video data is played in reverse order; because the scheme can determine the number of video frames decoded in parallel at each time based on the decoding time required by the video frame group and the playing time required by the video frames, and reversely decode the number of video frames in parallel; therefore, the scheme does not need to store the decoded data of all frames in the GOP to the memory after each decoding, for example, the scheme only needs to decode and store a small amount of decoded data in the initial state, and only needs to store one decoded data when the video frame decoding is performed again on the subsequently played decoded data, so that the decoded data amount stored to the memory in the reverse playing process can be reduced, and the memory occupation amount or the usage amount can be greatly reduced compared with the prior art. In addition, because the scheme adopts a parallel decoding mode, compared with the existing mode of decoding GOPs in sequence, the decoding efficiency can be greatly improved, the mutual influence between decoding is avoided, and the video playing quality is improved.
In addition, because the existing video reverse playing scheme needs to occupy a large amount of memory, and the use amount of the memory is limited, the video resolution supported by the existing video reverse playing scheme is limited, and the existing video reverse playing scheme cannot support high-resolution video reverse playing.
Example II,
The method described in the first embodiment is further illustrated by way of example.
In this embodiment, the video reverse playing apparatus will be described by taking as an example that the video reverse playing apparatus is integrated in a terminal.
As shown in fig. 2, a video reverse playing method specifically includes the following steps:
201. and the terminal receives a video reverse playing instruction, wherein the video reverse playing instruction indicates the video file needing to be reversely played.
For example, when the user clicks a "reverse play" button in the video playing interface, the terminal is triggered to generate a video reverse play instruction, and at this time, the terminal can receive the instruction.
202. And the terminal acquires a video file according to the video reverse playing instruction, wherein the video file comprises a plurality of video frames.
For example, the terminal extracts the video file from the local video database according to the video reverse playing instruction, and may also download the video file from the server according to the video reverse playing instruction.
The video file may include key frames and non-key frames, the key frames up to the previous frame of the next key frame, referred to as a group of frames, or gop (group of picture).
For example, the video file may include S video frames, denoted as frame1, frame2, frame3, …, frame S, respectively.
203. The terminal obtains the decoding time required by GOP in the video file and the playing time length of the video frame.
Wherein the decoding time required for the GOP is a time length required for decoding from a start key frame to a last frame of the GOP. The decoding time may be obtained based on actual detection or may be a preset value.
Preferably, the decoding time may be the longest decoding time required for a GOP, i.e., the length of time required to decode a GOP in the worst case.
The playing duration of the video frame can be obtained based on the total frame number contained in the video file and the video frame rate. For example, for a 1000-frame video, the video frame rate is 50fps, and the playback duration of each video frame is 1000/50-20 ms.
204. And the terminal determines the number of decoding threads needing to be started according to the decoding time and the playing time length.
Specifically, the decoding duration may be divided by the playing duration to obtain a quotient, and then, a minimum positive integer not smaller than the quotient is taken.
For example, when the decoding time is m and the playing duration is n, the number of enabled threads k equals ceil (m/n). ceil refers to taking the smallest integer no less than m/n. The k threads are denoted as T1, T2, T3, …, Tk, respectively.
205. And the terminal reversely selects a target video frame which is currently required to be decoded by the decoding thread from the video frame.
The reverse selection refers to selecting video frames along a direction with the last video frame of the video file as a starting point and the starting video frame of the video file as an ending point, for example, the video file includes S video frames, and then for a certain decoding thread, the reverse selection may be to select frame S, frame S-4, frame S-5 … … frame2 in sequence.
In practice, video frameS and decoding threads, such as frame1, frame2, … … frameS s, decoding threads T1, T2, T3, …, Tk, may be numbered. Then at this point, the target video frame may be selected inversely according to the number of threads, the number of decoding threads, and the number of historical decoded video frames. The historical decoded video frames of the decoding thread may be video frames decoded by the previous decoding thread.
Specifically, for a thread Ti, the historical decoded video frame is 0 at the 1 st selection, the selected target video frame is the video frame S-i +1 at the time, the selected target video frame is the video frame (S-i +1) -k at the 2 nd selection, the selected target video frame is the video frame (S-i +1) -2k at the 3 rd selection, and the selected target video frame is the video frame (S-i +1) - (j-1) k at the … … jth line selection.
For example, in the initial stage, it can be determined that the currently decoded video frame of T1 is frame S, i.e., T1seek (frame S), which is an operation for randomly designating any frame, and T2 decodes the video frame S-1, i.e., T2seek (S-1), T3seek (S-2) … … Tk seek (S-k + 1).
206. And the terminal decodes the target video frame through the decoding thread to obtain corresponding video data and adds the video data to the video data set.
For example, in the initial stage, T1 decodes the video frame S to obtain the video data S, i.e., T1seek (frame S), and obtains the video data S, T2seek (S-1) obtains the video data S-1, and … … Tk seek (S-k +1) obtains the video data S-k + 1.
The video data set may be located in a terminal memory, or other storage location. For example, data S-1 … … data S-k +1 is added to the video data set.
207. And the terminal plays the video data in the video data set in reverse order according to the current video playing time and returns to execute the step 205.
For example, the specific playing and decoding process may be as follows:
playing data S by 0 triggers T1 to decode frame S-K, namely T1seek (S-K); at this time, T1seek (S-k) can be completed before k × n, i.e. T1seek (S-k) - - > k × n;
n, playing the data S-1 to trigger T2seek (S-k-1) - > (k +1) × n;
the data S-2 is played by 2n before T3seek (S-k-2) - > (k +2) × n is triggered;
...
completing the process before (k-1) × n plays data S-k +1 to trigger Tk seek (S-2k-1) - > (2k-1) × n;
k is completed before the data S-k is played by k x n to trigger T1seek (S-2k) - > (2k) x n;
completing the playing of (k +1) × n data S-k-1 to trigger T2seek (S-2k-1) - > (2k +1) × n;
completing the playing of the data S-k-2 by the (k +2) n before triggering the T3seek (S-2k-2) - > (2k +2) n;
...
the data S-2k +1 is played by (2k-1) × n to trigger Tk seek (S-3k +1) - > (3k-1) × n to finish
(2k) N plays DataS-2k triggers T1seek (S-3k) - > (3k) × n to complete
......
Until the decoding of all S video frames is completed or the decoding of frame1 is completed.
Therefore, the video reverse playing method provided by the embodiment of the invention can be applied to
The method of this embodiment will be described in detail below by way of example:
suppose that a video with 1000 frames is played in reverse order, i.e. the video file comprises 1000 video frames. The maximum time required to decode a GOP is 200ms and the video frame rate is 25fps, i.e. 40ms per frame display.
First, it is determined that the enabled thread number is 200/40-5, i.e., 5 threads are needed to complete.
Initial preparation state:
t1: seek (1000) obtaining data1000
T2seek (999) gets data999
T3seek (998) obtains data998
T4seek (997) obtains data997
T5seek (996) obtains data996
And (3) starting playing:
0ms shows that the data1000T1seek (995) - - >200ms is completed before
40ms shows that the data999T2seek (994) - - >240ms is completed before
80ms shows that the data998T3seek (993) - - >280ms is completed before
120ms shows that data997T4seek (992) - - >320ms is completed before
160ms shows that the data is completed before 996T5seek (991) - - >360ms
200ms shows that the data is completed before 995T1seek (990) - - >400ms
240ms display data994T2seek (989)
280ms display data993T3seek (988)
320ms display data992T4seek (987)
360ms display data991T5seek (986)
400ms display data990T1seek (985)
......
And so on until decoding of the first video frame is complete.
As can be seen from the above, in the embodiment of the present invention, a video reverse playing instruction is received, where the video reverse playing instruction indicates a video file to be played reversely, then, according to the video reverse playing instruction, decoding time required by a video frame group in the video file and playing time required by a video frame in the video file are obtained, the number of video frames decoded in parallel is determined according to the decoding time and the playing time, and according to the number of video frames, video frames in the video file are decoded in reverse direction in parallel to obtain video data, and the video data is played in reverse order; because the scheme can determine the number of video frames decoded in parallel at each time based on the decoding time required by the video frame group and the playing time required by the video frames, and reversely decode the number of video frames in parallel; therefore, the scheme does not need to store the decoded data of all frames in the GOP to the memory after each decoding, for example, the scheme only needs to decode and store a small amount of decoded data in the initial state, and only needs to store one decoded data when the video frame decoding is performed again on the subsequently played decoded data, so that the decoded data amount stored to the memory in the reverse playing process can be reduced, and the memory occupation amount or the usage amount can be greatly reduced compared with the prior art. In addition, because the scheme adopts a parallel decoding mode, compared with the existing mode of decoding GOPs in sequence, the decoding efficiency can be greatly improved, the mutual influence between decoding is avoided, and the video playing quality is improved.
In addition, because the existing video reverse playing scheme needs to occupy a large amount of memory, and the use amount of the memory is limited, the video resolution supported by the existing video reverse playing scheme is limited, and the existing video reverse playing scheme cannot support high-resolution video reverse playing.
Example III,
In order to better implement the method, an embodiment of the present invention further provides a video reverse playing apparatus, as shown in fig. 3, the video reverse playing apparatus may include a receiving unit 301, an obtaining unit 302, a determining unit 303, a decoding unit 304, and a playing unit 305, as follows:
(1) a receiving unit 301;
a receiving unit 301, configured to receive a video reverse playing instruction, where the video reverse playing instruction indicates a video file that needs to be played reversely.
The video reverse playing instruction may be triggered by a trigger interface such as a preset trigger key or an input box in the trigger terminal, for example, when a user clicks or strokes a certain icon, the video reverse playing instruction is triggered to be generated, that is:
the receiving unit 301 is specifically configured to receive a video reverse playing instruction triggered by a user through a trigger interface.
(2) An acquisition unit 302;
an obtaining unit 302, configured to obtain, according to the video reverse playing instruction, decoding time required for a video frame group in the video file and playing time required for a video frame in the video file.
The obtaining unit 302 may be configured to obtain a video file according to a video reverse playing instruction, and then obtain a decoding time required for a video frame group in the video file and a playing time required for a video frame in the video file.
In this embodiment, the video frame group may be a group of video frames from a key frame to a previous frame of a next key frame, i.e., a GOP. At this time, the decoding time may be a time required to decode one GOP, i.e., a time from the start key frame to the last frame of the GOP. Preferably, the decoding time may be the maximum time required to decode one GOP, i.e., the time required to decode one GOP in the worst case.
The required playing time of the video frame may be the playing time or the display time of the video frame in the video file. Typically, the time to decode a GOP is greater than the play time of a video frame.
(3) A determination unit 303;
a determining unit 303, configured to determine the number of video frames decoded in parallel according to the decoding time and the playing time.
Preferably, the number of video frames is less than the number of video frames comprised by a group of video frames, such as a GOP. Therefore, a small amount of decoding data can be stored in the initial playing stage, and the occupation amount of the memory is reduced.
For example, the determining unit 303 may be configured to divide the decoding time by the playing time to obtain a quotient, and determine the number of video frames decoded in parallel according to the quotient. Such as selecting the smallest integer not smaller than the quotient as the number of video frames to decode in parallel.
(4) A decoding unit 304;
and the decoding unit 304 is configured to perform reverse decoding on the video frames in the video file in parallel according to the number of the video frames to obtain video data.
Wherein, the reverse decoding refers to decoding from the last video frame of the video file to the initial video frame. For example, the video file includes S frames, S is a positive integer, and is denoted as frame1, frame2, frame3, …, frame S, so that the reverse decoding starts from frame S to frame 1.
For example, the decoding unit 304 may include:
a determining subunit, configured to determine, according to the number of video frames, the number of decoding threads that need to be enabled;
and the decoding subunit is used for performing reverse decoding on the video frames in the video file in parallel according to the number of decoding threads.
Preferably, the number of decoding threads may correspond to the number of video frames.
For example, the decoding subunit may be configured to reversely select, from video frames of the video file, a target video frame that needs to be decoded currently by a decoding thread, and decode the target video frame by the decoding thread.
The reverse selection refers to selecting the video frame along a direction taking the last video frame of the video file as a starting point and the starting video frame of the video file as an end point.
Specifically, the decoding subunit may be specifically configured to decode the video frames according to the number and the history of the decoding threads, and reversely select, from the video frames of the video file, a target video frame that needs to be decoded by the decoding thread.
(5) A playback unit 305;
a playing unit 305, configured to play the video data in reverse order.
The reverse playing refers to playing from the last video frame to the initial video frame, such as playing the video data S of the video frame S and the video data S-1 … … of the video frame S-1 in sequence, i.e. playing the video data S of the video frame S-1 and the video data1 of the video frame1 in sequence.
Such as the playing unit 305, may be configured to obtain a current video playing time, and play the video data in a reverse order according to the current video playing time.
Specifically, in order to decode and acquire the video data of the video frame before the playing time of the video frame is reached, the playing unit 305 is specifically configured to play the video data in reverse order, and trigger the decoding subunit to perform a step of reversely selecting, from the video frames of the video file, a target video frame that a decoding thread currently needs to decode when the video data is played.
In a specific implementation, the above units may be implemented as independent entities, or may be combined arbitrarily to be implemented as the same or several entities, and the specific implementation of the above units may refer to the foregoing method embodiments, which are not described herein again.
The video reverse playing device can be specifically integrated in a terminal and other devices, and the terminal can be specifically a mobile phone or a tablet computer and other devices.
As can be seen from the above, in the embodiment of the present invention, the receiving unit 301 receives a video reverse playing instruction, where the video reverse playing instruction indicates a video file to be played reversely, then, the obtaining unit 302 obtains, according to the video reverse playing instruction, a decoding time required by a video frame group in the video file and a playing time required by a video frame in the video file, the determining unit 303 determines, according to the decoding time and the playing time, a number of video frames decoded in parallel, the decoding unit 304 performs reverse decoding on the video frames in the video file in parallel according to the number of video frames to obtain video data, and the playing unit 305 performs reverse playing on the video data; because the scheme can determine the number of video frames decoded in parallel at each time based on the decoding time required by the video frame group and the playing time required by the video frames, and reversely decode the number of video frames in parallel; therefore, the scheme does not need to store the decoded data of all frames in the GOP to the memory after each decoding, for example, the scheme only needs to decode and store a small amount of decoded data in the initial state, and only needs to store one decoded data when the video frame decoding is performed again on the subsequently played decoded data, so that the decoded data amount stored to the memory in the reverse playing process can be reduced, and the memory occupation amount or the usage amount can be greatly reduced compared with the prior art. In addition, because the scheme adopts a parallel decoding mode, compared with the existing mode of decoding GOPs in sequence, the decoding efficiency can be greatly improved, the mutual influence between decoding is avoided, and the video playing quality is improved.
In addition, because the existing video reverse playing scheme needs to occupy a large amount of memory, and the use amount of the memory is limited, the video resolution supported by the existing video reverse playing scheme is limited, and the existing video reverse playing scheme cannot support high-resolution video reverse playing.
Example four,
In addition, as shown in fig. 4, the terminal may include a Radio Frequency (RF) circuit 401, a memory 402 including one or more computer-readable storage media, an input unit 403, a playing unit 404, a sensor 405, an audio circuit 406, a Wireless Fidelity (WiFi) module 407, a processor 408 including one or more processing cores, a power supply 409, and other components. Those skilled in the art will appreciate that the terminal configuration shown in fig. 4 is not intended to be limiting and may include more or fewer components than those shown, or some components may be combined, or a different arrangement of components. Wherein:
the RF circuit 401 may be used for receiving and transmitting signals during a message transmission or communication process, and in particular, for receiving downlink information of a base station and then sending the received downlink information to the one or more processors 408 for processing; in addition, data relating to uplink is transmitted to the base station. In general, the RF circuitry 401 includes, but is not limited to, an antenna, at least one Amplifier, a tuner, one or more oscillators, a Subscriber Identity Module (SIM) card, a transceiver, a coupler, a Low Noise Amplifier (LNA), a duplexer, and the like. In addition, the RF circuitry 401 may also communicate with networks and other devices via wireless communications. The wireless communication may use any communication standard or protocol, including but not limited to Global System for mobile communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long Term Evolution (LTE), email, Short Message Service (SMS), and the like.
The memory 402 may be used to store software programs and modules, and the processor 408 executes various functional applications and data processing by operating the software programs and modules stored in the memory 402. The memory 402 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application program required by at least one function (such as a sound playing function, an image playing function, etc.), and the like; the storage data area may store data (such as audio data, a phonebook, etc.) created according to the use of the terminal, etc. Further, the memory 402 may include high speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device. Accordingly, the memory 402 may also include a memory controller to provide the processor 408 and the input unit 403 access to the memory 402.
The input unit 403 may be used to receive input numeric or character information and generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function control. In particular, in a particular embodiment, the input unit 403 may include a touch-sensitive surface as well as other input devices. The touch-sensitive surface, also referred to as a touch screen or a touch pad, may collect touch operations by a user (e.g., operations by a user on or near the touch-sensitive surface using a finger, a stylus, or any other suitable object or attachment) thereon or nearby, and drive the corresponding connection device according to a predetermined program. Alternatively, the touch sensitive surface may comprise two parts, a touch detection means and a touch controller. The touch detection device detects the touch direction of a user, detects a signal brought by touch operation and transmits the signal to the touch controller; the touch controller receives touch information from the touch sensing device, converts it to touch point coordinates, and sends the touch point coordinates to the processor 408, and can receive and execute commands from the processor 408. In addition, touch sensitive surfaces may be implemented using various types of resistive, capacitive, infrared, and surface acoustic waves. The input unit 403 may include other input devices in addition to the touch-sensitive surface. In particular, other input devices may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, a joystick, and the like.
The playing unit 404 may be used to play information input by or provided to the user and various graphical user interfaces of the terminal, which may be composed of graphics, text, icons, video, and any combination thereof. The playing unit 404 may include a playing panel, and optionally, the playing panel may be configured in the form of a Liquid Crystal Display (LCD), an Organic Light-Emitting Diode (OLED), or the like. Further, the touch-sensitive surface may cover the playback panel, and when a touch operation is detected on or near the touch-sensitive surface, the touch operation is transmitted to the processor 408 to determine the type of the touch event, and then the processor 408 provides a corresponding visual output on the playback panel according to the type of the touch event. Although in FIG. 4 the touch-sensitive surface and the playback panel are implemented as two separate components for input and output functions, in some embodiments the touch-sensitive surface may be integrated with the playback panel for input and output functions.
The terminal may also include at least one sensor 405, such as a light sensor, motion sensor, and other sensors. Specifically, the light sensor may include an ambient light sensor that may adjust the brightness of the playing panel according to the brightness of ambient light, and a proximity sensor that may turn off the playing panel and/or the backlight when the terminal moves to the ear. As one of the motion sensors, the gravity acceleration sensor can detect the magnitude of acceleration in each direction (generally, three axes), can detect the magnitude and direction of gravity when the mobile phone is stationary, and can be used for applications of recognizing the posture of the mobile phone (such as horizontal and vertical screen switching, related games, magnetometer posture calibration), vibration recognition related functions (such as pedometer and tapping), and the like; as for other sensors such as a gyroscope, a barometer, a hygrometer, a thermometer, and an infrared sensor, which can be configured in the terminal, detailed description is omitted here.
Audio circuitry 406, a speaker, and a microphone may provide an audio interface between the user and the terminal. The audio circuit 406 may transmit the electrical signal converted from the received audio data to a speaker, and convert the electrical signal into a sound signal for output; on the other hand, the microphone converts the collected sound signal into an electric signal, which is received by the audio circuit 406 and converted into audio data, which is then processed by the audio data output processor 408, and then transmitted to, for example, another terminal via the RF circuit 401, or the audio data is output to the memory 402 for further processing. The audio circuitry 406 may also include an earbud jack to provide peripheral headset communication with the terminal.
WiFi belongs to short distance wireless transmission technology, and the terminal can help the user to send and receive e-mail, browse web page and access streaming media etc. through WiFi module 407, it provides wireless broadband internet access for the user. Although fig. 4 shows the WiFi module 407, it is understood that it does not belong to the essential constitution of the terminal, and may be omitted entirely as needed within the scope not changing the essence of the invention.
The processor 408 is a control center of the terminal, connects various parts of the entire handset using various interfaces and lines, and performs various functions of the terminal and processes data by operating or executing software programs and/or modules stored in the memory 402 and calling data stored in the memory 402, thereby integrally monitoring the handset. Optionally, processor 408 may include one or more processing cores; preferably, the processor 408 may integrate an application processor, which handles primarily the operating system, user interface, applications, etc., and a modem processor, which handles primarily the wireless communications. It will be appreciated that the modem processor described above may not be integrated into the processor 408.
The terminal also includes a power source 409 (e.g., a battery) for powering the various components, which may preferably be logically coupled to the processor 408 via a power management system to manage charging, discharging, and power consumption via the power management system. The power supply 409 may also include any component of one or more dc or ac power sources, recharging systems, power failure detection circuitry, power converters or inverters, power status indicators, and the like.
Although not shown, the terminal may further include a camera, a bluetooth module, and the like, which will not be described herein. Specifically, in this embodiment, the processor 408 in the terminal loads the executable file corresponding to the process of one or more application programs into the memory 402 according to the following instructions, and the processor 408 runs the application programs stored in the memory 402, thereby implementing various functions:
receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates a video file to be played reversely, then, according to the video reverse playing instruction, obtaining the decoding time required by a video frame group in the video file and the playing time required by a video frame in the video file, determining the number of video frames decoded in parallel according to the decoding time and the playing time, parallelly and reversely decoding the video frames in the video file according to the number of the video frames to obtain video data, and reversely playing the video data.
Optionally, performing reverse decoding on the video frames in the video file in parallel according to the number of the video frames includes:
determining the number of decoding threads needing to be started according to the number of the video frames;
and parallelly reversely decoding the video frames in the video file according to the number of decoding threads.
Optionally, performing reverse decoding on the video frames in the video file in parallel according to the number of decoding threads, including:
reversely selecting a target video frame which is required to be decoded currently by a decoding thread from video frames of a video file;
decoding the target video frame by the decoding thread;
the playing of the video data in reverse order comprises: and playing the video data in a reverse order, and returning to the step of reversely selecting the target video frame which needs to be decoded by the decoding thread when the video data is played.
Optionally, the reversely selecting, from the video frames of the video file, a target video frame that needs to be decoded by a decoding thread includes:
and decoding the video frames according to the number and the history of the decoding threads, and reversely selecting the target video frame which needs to be decoded by the decoding thread from the video frames of the video file.
Optionally, determining the number of video frames decoded in parallel according to the decoding time and the playing time includes:
dividing the decoding time by the playing time to obtain a quotient value;
and determining the number of the video frames decoded in parallel according to the quotient.
Optionally, the playing the video data in reverse order includes:
acquiring the current video playing time;
and playing the video data in a reverse order according to the current video playing time.
The group of video frames may be a group of video frames from a key frame to a previous frame of a next key frame, i.e., a GOP.
Wherein, the reverse decoding refers to decoding from the last video frame of the video file to the initial video frame.
Wherein, the reverse playing refers to playing from the last video frame to the initial video frame.
The above operations can be referred to the foregoing method embodiments, and are not described herein again.
As can be seen from the above, the terminal according to the embodiment of the present invention receives a video reverse playing instruction, where the video reverse playing instruction indicates a video file to be played reversely, then, according to the video reverse playing instruction, obtains a decoding time required by a video frame group in the video file and a playing time required by a video frame in the video file, determines the number of video frames decoded in parallel according to the decoding time and the playing time, performs reverse decoding on the video frames in the video file in parallel according to the number of video frames, obtains video data, and performs reverse playing on the video data; because the scheme can determine the number of video frames decoded in parallel at each time based on the decoding time required by the video frame group and the playing time required by the video frames, and reversely decode the number of video frames in parallel; therefore, the scheme does not need to store the decoded data of all frames in the GOP to the memory after each decoding, for example, the scheme only needs to decode and store a small amount of decoded data in the initial state, and only needs to store one decoded data when the video frame decoding is performed again on the subsequently played decoded data, so that the decoded data amount stored to the memory in the reverse playing process can be reduced, and the memory occupation amount or the usage amount can be greatly reduced compared with the prior art. In addition, because the scheme adopts a parallel decoding mode, compared with the existing mode of decoding GOPs in sequence, the decoding efficiency can be greatly improved, the mutual influence between decoding is avoided, and the video playing quality is improved.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by associated hardware instructed by a program, which may be stored in a computer-readable storage medium, and the storage medium may include: read Only Memory (ROM), Random Access Memory (RAM), magnetic or optical disks, and the like.
The video reverse playing method and device provided by the embodiment of the present invention are described in detail above, and the principle and the embodiment of the present invention are explained in the present document by applying specific examples, and the description of the above embodiments is only used to help understanding the method and the core idea of the present invention; meanwhile, for those skilled in the art, according to the idea of the present invention, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present invention.

Claims (9)

1. A method for playing back a video, comprising:
receiving a video reverse playing instruction, wherein the video reverse playing instruction indicates a video file needing to be played reversely;
according to the video reverse playing instruction, acquiring decoding time required by a video frame group in the video file and playing time required by a video frame in the video file, wherein the decoding time is the longest time required by decoding the video frame group;
dividing the decoding time by the playing time to obtain a quotient value;
selecting the minimum integer not less than the quotient as the number of video frames for parallel decoding, wherein the number of the video frames for parallel decoding is less than the number of the video frames contained in the video frame group;
parallelly reversely decoding the video frames in the video file according to the number of the video frames to obtain video data;
and playing the video data in a reverse order.
2. The video playback method of claim 1, wherein reversely decoding video frames in a video file in parallel according to the number of video frames comprises:
determining the number of decoding threads needing to be started according to the number of the video frames;
and parallelly reversely decoding the video frames in the video file according to the number of decoding threads.
3. The video reverse playing method according to claim 2, wherein reversely decoding the video frames in the video file in parallel according to the number of decoding threads comprises:
reversely selecting a target video frame which is required to be decoded currently by a decoding thread from video frames of a video file;
decoding the target video frame by the decoding thread;
the playing of the video data in reverse order comprises: and playing the video data in a reverse order, and returning to the step of reversely selecting the target video frame which needs to be decoded by the decoding thread when the video data is played.
4. The video reverse playing method according to claim 3, wherein said reversely selecting a target video frame that needs to be decoded by a decoding thread from video frames of a video file comprises:
and decoding the video frames according to the number and the history of the decoding threads, and reversely selecting the target video frame which needs to be decoded by the decoding thread from the video frames of the video file.
5. The video reverse playing method according to claim 1, wherein the playing the video data in reverse order comprises:
acquiring the current video playing time;
and playing the video data in a reverse order according to the current video playing time.
6. A video reverse playing apparatus, comprising:
the device comprises a receiving unit, a playing unit and a playing unit, wherein the receiving unit is used for receiving a video reverse playing instruction which indicates a video file needing to be played reversely;
the acquisition unit is used for acquiring decoding time required by a video frame group in the video file and playing time required by a video frame in the video file according to the video reverse playing instruction, wherein the decoding time is the longest time required by decoding the video frame group;
a determining unit, configured to divide the decoding time by the playing time to obtain a quotient; selecting the minimum integer not less than the quotient as the number of video frames for parallel decoding, wherein the number of the video frames for parallel decoding is less than the number of the video frames contained in the video frame group;
the decoding unit is used for parallelly carrying out reverse decoding on the video frames in the video file according to the number of the video frames to obtain video data;
and the playing unit is used for playing the video data in a reverse order.
7. The apparatus for rewinding video according to claim 6, wherein said decoding unit further comprises:
the determining subunit is used for determining the number of decoding threads needing to be started according to the number of the video frames;
and the decoding subunit is used for parallelly and reversely decoding the video frames in the video file according to the number of the decoding threads.
8. The video rewind apparatus of claim 7,
the decoding subunit is specifically configured to: reversely selecting a target video frame which is required to be decoded currently by a decoding thread from video frames of a video file, and decoding the target video frame by the decoding thread;
the playing unit is specifically configured to play the video data in reverse order, and trigger the decoding subunit to perform a step of reversely selecting a target video frame, which is currently required to be decoded by a decoding thread, from video frames of a video file when the video data is played.
9. A computer-readable storage medium storing a computer program for video playback, wherein the computer program causes a computer to perform the method according to any one of claims 1-5.
CN201611116754.9A 2016-12-07 2016-12-07 Video reverse playing method and device Active CN106507204B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611116754.9A CN106507204B (en) 2016-12-07 2016-12-07 Video reverse playing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611116754.9A CN106507204B (en) 2016-12-07 2016-12-07 Video reverse playing method and device

Publications (2)

Publication Number Publication Date
CN106507204A CN106507204A (en) 2017-03-15
CN106507204B true CN106507204B (en) 2020-03-17

Family

ID=58329773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611116754.9A Active CN106507204B (en) 2016-12-07 2016-12-07 Video reverse playing method and device

Country Status (1)

Country Link
CN (1) CN106507204B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222779B (en) * 2017-06-08 2019-11-19 浙江大华技术股份有限公司 A kind of method and device of video play-reverse
CN107547814B (en) * 2017-09-28 2019-10-15 维沃移动通信有限公司 A kind of video recording method, mobile terminal
CN111641824B (en) * 2019-03-01 2022-08-05 杭州海康威视数字技术股份有限公司 Video reverse playing method and device
CN109889895A (en) * 2019-03-13 2019-06-14 浙江大华技术股份有限公司 Video broadcasting method, device, storage medium and electronic device
CN111866574A (en) * 2019-04-29 2020-10-30 浙江开奇科技有限公司 Real-time reverse playing method for mobile end streaming media
CN113473126B (en) * 2020-03-31 2023-03-17 阿里巴巴集团控股有限公司 Video stream processing method and device, electronic equipment and computer readable medium
CN113973225A (en) * 2020-07-22 2022-01-25 阿里巴巴集团控股有限公司 Video reverse playing method and device, computer storage medium and electronic equipment
CN112019856A (en) * 2020-08-27 2020-12-01 上海七牛信息技术有限公司 Video reversing method and system for smart phone

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854508A (en) * 2009-03-30 2010-10-06 三星电子株式会社 The method and apparatus of the content of multimedia of reverse playback of encoded
CN104185982A (en) * 2012-02-29 2014-12-03 远升科技股份有限公司 Video processing method and video appliance implementing method
CN105025357A (en) * 2015-06-05 2015-11-04 北京中电兴发科技有限公司 A video back-playing method
CN105227884A (en) * 2014-07-03 2016-01-06 深圳中兴力维技术有限公司 Realize method that video file puts upside down and device thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854508A (en) * 2009-03-30 2010-10-06 三星电子株式会社 The method and apparatus of the content of multimedia of reverse playback of encoded
CN104185982A (en) * 2012-02-29 2014-12-03 远升科技股份有限公司 Video processing method and video appliance implementing method
CN105227884A (en) * 2014-07-03 2016-01-06 深圳中兴力维技术有限公司 Realize method that video file puts upside down and device thereof
CN105025357A (en) * 2015-06-05 2015-11-04 北京中电兴发科技有限公司 A video back-playing method

Also Published As

Publication number Publication date
CN106507204A (en) 2017-03-15

Similar Documents

Publication Publication Date Title
CN106507204B (en) Video reverse playing method and device
CN108737908B (en) Media playing method, device and storage medium
US10834432B2 (en) Method, device and system for in-sequence live streaming
CN106686396B (en) Method and system for switching live broadcast room
US9918138B2 (en) Method for controlling multimedia playing, apparatus thereof and storage medium
CN104618794B (en) The method and apparatus for playing video
CN106803993B (en) Method and device for realizing video branch selection playing
CN103391473B (en) Method and device for providing and acquiring audio and video
US11202066B2 (en) Video data encoding and decoding method, device, and system, and storage medium
CN105243638B (en) A kind of method and apparatus uploading image
CN107231159B (en) Radio frequency interference processing method, device, storage medium and terminal
CN111010576B (en) Data processing method and related equipment
WO2014198116A1 (en) Method, apparatus and system for short message-based information push and mobile client supporting the same
CN106201816B (en) Reminding method and device
WO2015043403A1 (en) Method, apparatus, and terminal for obtaining video data
CN104036536A (en) Generating method and apparatus of stop motion animation
CN106791916B (en) Method, device and system for recommending audio data
CN103294442A (en) Method, device and terminal unit for playing prompt tones
CN109495769B (en) Video communication method, terminal, smart television, server and storage medium
CN104967864B (en) A kind of method and device merging video
CN109660445B (en) Message processing method, device and storage medium
CN107622234B (en) Method and device for displaying budding face gift
KR101876394B1 (en) Method and device for playing media data on a terminal
CN116939212A (en) Video processing method, device, computer readable storage medium and computer equipment
WO2017140271A1 (en) Method, apparatus and system for performing information presentation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant