CN106612462B - Fast forward and fast backward processing method and terminal - Google Patents

Fast forward and fast backward processing method and terminal Download PDF

Info

Publication number
CN106612462B
CN106612462B CN201510703222.4A CN201510703222A CN106612462B CN 106612462 B CN106612462 B CN 106612462B CN 201510703222 A CN201510703222 A CN 201510703222A CN 106612462 B CN106612462 B CN 106612462B
Authority
CN
China
Prior art keywords
frame
time point
fast
current program
time length
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
CN201510703222.4A
Other languages
Chinese (zh)
Other versions
CN106612462A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201510703222.4A priority Critical patent/CN106612462B/en
Priority to PCT/CN2016/099377 priority patent/WO2017071428A1/en
Publication of CN106612462A publication Critical patent/CN106612462A/en
Application granted granted Critical
Publication of CN106612462B publication Critical patent/CN106612462B/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
    • H04N21/47217End-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 for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Abstract

The invention discloses a fast forward and fast backward processing method, which comprises the following steps: when a fast forward or fast backward request is received, the terminal selects I frames according to the played time length of the current program, the index information of each I frame of the current program stored in advance and the multiple speed contained in the fast forward and fast backward request to obtain an I frame sequence, a data request message is sent to the server at intervals of a first preset time length, one I frame in the I frame sequence is carried in the sent data request message in sequence, and the terminal also receives, decodes and outputs the data of the I frame fed back by the server according to the index information of the received I frame. The invention also discloses a terminal. The invention has the beneficial effect of effectively reducing the requirement on the bandwidth.

Description

Fast forward and fast backward processing method and terminal
Technical Field
The present invention relates to the field of streaming media communication technologies, and in particular, to a fast forward and fast rewind processing method and a terminal.
Background
At present, OTT (over The top) service is The most common service in internet services, and OTT mobile video service based On open internet is one of The best solutions to meet a plurality of application requirements such as Live (Live), On Demand (On Demand), Time Shift (Time Shift) and The like in The future.
The playing control of the common OTT service adopts a code stream adaptive mode, and the common protocols include: http Live Streaming, MPEG DASH, Microsoft Smooth Streaming, and the like. In addition, the general OTT service adopts a bottom layer positioning mode during fast forward and fast backward, and the user experience of fast forward and fast backward of the current program in this mode is worse than that of the Internet Protocol Television (IPTV) service, wherein the IPTV service adopts an I Frame (I Frame) play mode to realize fast forward and fast backward. The I frame is a full-frame compression coding frame, which can also be called an intra-frame coding frame, the data volume of the I frame is generally larger, the I frame is generated without referring to other frames and belongs to a reference frame, and a complete image can be reconstructed by only using one I town during decoding.
At present, an OTT video playing protocol also considers an I frame playing mode supporting fast forward and fast backward, and based on an OTT video playing service, generally, a terminal downloads I frame data of all I frames of a program currently being played from a server, and after entering a fast forward and fast backward state, sequentially outputs the downloaded I frame data.
However, the requirement for bandwidth is high for downloading all I frames of the current program due to the large amount of data of the I frames.
The above is only for the purpose of assisting understanding of the technical aspects of the present invention, and does not represent an admission that the above is prior art.
Disclosure of Invention
The invention mainly aims to provide a fast forward and fast backward processing method and a terminal, and aims to solve the problem that in the prior art, a large amount of I frame data of I frames need to be downloaded to cause high requirement on bandwidth when fast forward and fast backward are realized.
In order to achieve the above object, the present invention provides a fast forward and fast reverse processing method, including:
when a fast forward or fast backward request is received, selecting I frames according to the played time length of the current program, prestored index information of each I frame of the current program and a multiple speed included in the fast forward or fast backward request to obtain an I frame sequence;
sending a data request message to a server at a first preset time interval, wherein the data request message sequentially carries index information of I frames in the I frame sequence;
and receiving, decoding and outputting the I frame data fed back by the server according to the index information of the received I frame.
Preferably, when receiving a fast forward or fast backward request, obtaining an I frame sequence according to a played time length of a current program, pre-stored index information of each I frame of the current program, and a multiple speed included in the fast forward or fast backward request, including:
when a fast forward request or a fast backward request is received, determining a second duration according to the fast forward speed or the fast backward speed;
and selecting I frames according to the played time length of the current program, the second time length and the time point of each I frame of the current program to obtain the I frame sequence, wherein the time point of the I frame is contained in the index information of the I frame.
Preferably, the selecting an I frame according to the played time length of the current program, the second time length, and the time point of each I frame of the current program to obtain the sequence of I frames includes:
if the value is fast forward, the initial value of m is 0, and the following steps are executed:
step 1: taking the sum of the played time length of the current program and the second time length m times as an effective time point;
step 2: judging whether I frames exist at the effective time point backward or not according to the time point of each I frame of the current program;
and step 3: if there are I frames in the future at the effective time point, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame, finishing the selection of the I frame.
Preferably, the selecting an I frame according to the played time length of the current program, the second time length, and the time point of the I frame included in the index information of each I frame of the current program to obtain the I frame sequence includes:
if the speed is fast backward, the initial value of m is 0, and the following steps are executed:
step 1: taking the difference of the played time length of the current program minus m times of the second time length as an effective time point;
step 2: judging whether the effective time point has I frames or not in the forward direction according to the time point of each I frame of the current program;
and step 3: if the effective time point has I frames before, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence before, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame before, ending the selection of the I frame.
Preferably, the preset first time length is a preset time value smaller than or equal to 1 second, or a time value smaller than or equal to 1 second calculated based on the double speed.
In order to solve the above problem, the present invention further provides a terminal, including:
the selection module is used for selecting I frames according to the played time length of the current program, prestored index information of each I frame of the current program and speed multiplication contained in the fast forward or fast backward request to obtain an I frame sequence when the fast forward or fast backward request is received;
the sending module is used for sending a data request message to a server at a preset first time interval after the I frame sequence is obtained by the selecting module, and the data request message sequentially carries index information of I frames in the I frame sequence;
and the receiving and outputting module is used for receiving, decoding and outputting the I frame data fed back by the server according to the index information of the received I frame after the sending module sends the data request message.
Preferably, the selecting module includes:
the time length determining module is used for determining a second time length according to the fast forwarding speed or the fast rewinding speed when a fast forwarding request or a fast rewinding request is received;
and the frame selection module is used for selecting I frames according to the played time length of the current program, the second time length and the time points of all I frames of the current program after the time length determination module determines the second time length, so as to obtain the I frame sequence, wherein the time points of the I frames are contained in the index information of the I frames.
Preferably, the frame selecting module is specifically configured to:
if the value is fast forward, the initial value of m is 0, and the following steps are executed:
step 1: taking the sum of the played time length of the current program and the second time length m times as an effective time point;
step 2: judging whether I frames exist at the effective time point backward or not according to the time point of each I frame of the current program;
and step 3: if there are I frames in the future at the effective time point, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame, finishing the selection of the I frame.
Preferably, the frame selecting module is specifically configured to:
if the speed is fast backward, the initial value of m is 0, and the following steps are executed:
step 1: taking the difference of the played time length of the current program minus m times of the second time length as an effective time point;
step 2: judging whether the effective time point has I frames or not in the forward direction according to the time point of each I frame of the current program;
and step 3: if the effective time point has I frames before, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence before, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame before, ending the selection of the I frame.
Preferably, the preset first time length is a preset time value smaller than or equal to 1 second, or a time value smaller than or equal to 1 second calculated based on the double speed.
The embodiment of the fast forward and fast backward method provided by the invention is that when a fast forward or fast backward request is received, a terminal selects I frames according to the played time length of a current program, the index information of each I frame of the current program stored in advance and the multiple speed contained in the fast forward and fast backward request to obtain an I frame sequence, a data request message is sent to a server at intervals of a first preset time length, one I frame in the I frame sequence is carried in the sent data request message in sequence, and the terminal receives, decodes and outputs the data of the I frame fed back by the server according to the index information of the received I frame to realize fast forward and fast backward. The selected I frame is a part of I frames of the current program, so that when fast forward and fast backward are realized, I frame data of all I frames of the current program do not need to be downloaded, the output effect of fast forward and fast backward can be realized, the downloading amount of the I frame data can be effectively reduced, and the requirement on the broadband can be effectively reduced due to the reduction of the downloading amount of the I frame data.
Drawings
FIG. 1 is a flowchart illustrating a fast forward/fast rewind processing method according to a first embodiment of the present invention;
FIG. 2 is a flowchart illustrating a fast forward/fast rewind processing method according to a second embodiment of the present invention;
fig. 3 is a schematic diagram of functional modules of a first embodiment of the terminal of the present invention;
fig. 4 is a schematic diagram of functional modules of a second embodiment of the terminal of the present invention.
The implementation, functional features and advantages of the objects of the present invention will be further explained with reference to the accompanying drawings.
Detailed Description
It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
The main solution of the embodiment of the invention is as follows: when a fast forward or fast backward request is received, the terminal selects I frames according to the played time length of the current program, the index information of each I frame of the current program stored in advance and the multiple speed contained in the fast forward and fast backward request to obtain an I frame sequence, wherein the I frame sequence contains partial I frames of the current program. After the terminal selects the I frame sequence, a data request message is sent to the server at a first preset time interval, the sent data request message sequentially carries one I frame in the I frame sequence, and the terminal receives, decodes and outputs the data of the I frame fed back by the server according to the index information of the received I frame, so as to realize fast forward and fast backward. The selected I frame is a part of I frames of the current program, so that in the process of fast forward and fast backward, I frame data of all I frames of the current program do not need to be downloaded, the output effect of fast forward and fast backward can be realized, the downloading amount of the I frame data can be effectively reduced, and the requirement on the broadband can be effectively reduced due to the reduction of the downloading amount of the I frame data.
Specifically, referring to fig. 1, a schematic diagram of a fast forward and fast backward processing method according to a first embodiment of the present invention is shown, the method includes:
step 101, when a fast forward or fast backward request is received, selecting I frames according to the played time length of the current program, pre-stored index information of each I frame of the current program and the multiple speed contained in the fast forward or fast backward request to obtain an I frame sequence;
in the embodiment of the invention, when the terminal starts to play the program initially, the terminal sends an I frame index information request message to the server, and after receiving the I frame index information request message, the server analyzes the video source of the current program of the terminal, acquires the index information of each I frame of the current program, and feeds back the acquired index information of each I frame to the terminal.
After receiving the index information of each I frame of the current program, the terminal stores the index information of each I frame of the current program.
The index information of the I frame at least includes a time point of the I frame, and the time point of the I frame refers to a time point of the I frame in the current program.
In addition, the index information of the I frame may further include parameters such as the name of the slice in which the I frame is located, the offset position of the I frame in the slice, and the size of the I frame.
In the embodiment of the invention, a user can send a fast forward or fast backward request to the terminal by means of remote controller control or touch screen or the like, wherein the fast forward or fast backward request includes a multiple speed of fast forward or fast backward, and the multiple speed of fast forward or fast backward can be 2, 4, 8, 16 or the like.
After receiving the fast forward or fast backward request, the terminal selects I frames according to the played time length of the current program, the index information of each I frame of the current program stored in advance and the multiple speed included in the fast forward or fast backward request to obtain an I frame sequence.
After receiving the fast forward or fast backward request, the terminal stops the play mode at the normal play speed, and acquires the played duration of the current program when receiving the fast forward or fast backward request, for example: if a fast forward or fast backward request is received when the current program is played for 10 minutes, the played time length of the current program is 10 minutes.
In the embodiment of the present invention, the terminal may be a television, a computer, a set-top box, a PAD, a smart phone, or the like.
102, sending a data request message to a server at a preset first time interval, wherein the data request message sequentially carries index information of I frames in an I frame sequence;
and 103, receiving and decoding the data of the I frame fed back by the output server according to the index information of the received I frame.
In the embodiment of the invention, after the terminal selects the I frame and obtains the I frame sequence, a data request message is sent to the server at a first time interval which is preset, and the data request message sequentially carries the index information of the I frame in the I frame sequence.
It should be noted that, in the embodiment of the present invention, the I frames in the I frame sequence are arranged according to the sequence of time points, if the I frame sequence is obtained under the fast forward condition, the I frames in the I frame sequence are arranged according to the sequence of time points gradually increasing, and if the I frame sequence is obtained under the fast backward condition, the I frames in the I frame sequence are arranged according to the sequence of time points gradually decreasing.
Every time the terminal sends a data request message, the data request message contains index information of I frames in the I frame sequence, and the terminal is sent in the data request message sequentially carried by the I frames in the I frame sequence.
For example: the sequence of the I frame is [ I0, I1, I2, I3, … …, I10], after obtaining the sequence of the I frame, the terminal sends a data request message carrying index information of I0, a data request message carrying index information of I1, a data request message carrying index information of I2, a data request message carrying index information of I3, … …, and a data request message carrying index information of I10 in sequence at a first time interval set in advance.
When the terminal sends the data request message to the server, the index information of the I frame carried by the terminal includes the time point of the I frame, the name of the fragment where the I frame is located, the offset position of the I frame in the fragment and the size of the I frame.
After receiving the data request message, the server determines the position of the I frame on the total duration of the current program by using the time point of the I frame in the index information of the I frame carried by the server, determines the fragment where the I frame is located by using the fragment name of the I frame, extracts I frame data by using the offset position of the I frame in the fragment and the size of the I frame after determining the fragment, and feeds the extracted I frame data back to the terminal.
After receiving the data request message each time, the server determines corresponding I frame data based on the index information of the I frame according to the above manner, and feeds back the acquired I frame data to the terminal. And after the terminal receives the I frame data each time, the terminal decodes and outputs the received I frame data, so that the output effect of fast forward or fast backward can be displayed on the display interface of the terminal.
In the embodiment of the invention, when a terminal receives a fast forward or fast backward request, I frames are selected according to the played time length of a current program, the index information of each I frame of the current program and the fast forward or fast backward multiple speed to obtain an I frame sequence, a data request message is sent to a server at intervals of a preset first time length, the index information of the I frames in the I frame sequence is sequentially carried in the data request message, and the terminal decodes and outputs the I frame data after receiving the I frame data fed back by the server according to the received index information of the I frames. By the mode, the fast-forward and fast-backward output effect can be realized only by downloading the selected partial I frames from the server, all the I frames of the current program do not need to be downloaded, the downloading amount of I frame data is effectively reduced, and the requirement on the broadband can be effectively reduced.
To better understand the technical solution in the embodiment of the present invention, please refer to fig. 2, which is a schematic diagram of a second embodiment of a processing method for fast forwarding and fast rewinding provided by the present invention, wherein step 201 and step 202 in the method are refinements of step 101 in the first embodiment, and specifically, the method includes:
step 201, when a fast forward request or a fast backward request is received, determining a second time length according to the speed of fast forward or fast backward;
in the embodiment of the invention, when a fast forward or fast backward request is received, the terminal determines a second time length according to the speed of fast forward or fast backward, wherein the second time length is used for selecting I frames.
Wherein, the speed of fast forward or fast backward is carried in the request of fast forward or fast backward, the user using the terminal can determine the speed of fast forward or fast backward by selection.
Further, the determining the second duration according to the multiple speed of fast forward or fast backward may be: and if the speed of fast forward or fast backward is N, determining that the second time length is N seconds, or determining that the second time length is N seconds.
Further, the second duration may be related to a first duration, where the first duration is a preset time interval for sending the data request message to the server, specifically: the second time length is equal to the product of the speed of fast forward or fast backward and the first time length, namely if the first time length is 1 second and the speed is N, the second time length is determined to be N seconds, and if the first time length is 1/3 seconds, the second time length is determined to be N/3 seconds.
Step 202, selecting I frames according to the played time length of the current program, the second time length and the time points of the I frames contained in the index information of each I frame of the current program to obtain an I frame sequence;
in the embodiment of the present invention, the terminal further selects an I frame according to the played time length of the current program, the second time length, and the time point of each I frame of the current program to obtain an I frame sequence, where the index information of the I frame includes the time point of the I frame, and in addition, the index information of the I frame may further include parameters such as the time point of the I frame, the name of the slice where the I frame is located, the offset position of the I frame in the slice, and the size of the I frame.
The process of selecting the I frame by the terminal will be described below based on different fast forward and fast reverse situations:
if the value is fast forward, the initial value of m is 0, and the terminal executes the following steps:
step 1: taking the sum of the played time length of the current program and m times of second time length as an effective time point;
step 2: judging whether an effective time point has an I frame or not backwards according to the time point of each I frame of the current program;
and step 3: if the effective time point still has I frames backward, selecting an I frame closest to the effective time point backward as the m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame, finishing the selection of the I frame.
Or;
if the value is fast backward, the initial value of m is 0, and the terminal executes the following steps:
step 1: taking the difference of the played time length of the current program minus m times of the second time length as an effective time point;
step 2: judging whether the effective time point has an I frame or not in the forward direction according to the time point of each I frame of the current program;
and step 3: if the effective time point still has I frames, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point has no I frame, finishing the selection of the I frame.
It should be noted that, the I frame sequence obtained in the above manner, where the I frames in the I frame sequence are arranged according to the sequence of time points, so that when sending a data request message to a server, the index information of the I frames can be sequentially carried in the data request message according to the sequence of time points of the I frames, and the I frame data received by the terminal is also arranged according to the sequence of time points, so that the terminal can sequentially decode and output the I frame data according to the sequence of time points, which has a better fast forward and fast backward output effect and avoids output from being disordered.
It should be noted that, in the embodiment of the present invention, forward and backward are described based on the playing time of the current program, if the current program is fast-forwarded, the current program is in the direction of the time that the current program is not played, and if the current program is fast-backed, the current program is in the direction of the time that the current program has been played.
Step 203, sending a data request message to the server every a preset first time length, wherein the data request message sequentially carries index information of I frames in the I frame sequence;
in the embodiment of the invention, the terminal sends a data request message to the server at a first time length preset at intervals, and the data request message sequentially carries index information of I frames in the I frame sequence.
Specifically, the method comprises the following steps: and at the moment of sT, the terminal sends a data request message to the server, wherein the data request message carries the (S + 1) th I frame in the I frame sequence, the value of S is [0,1,2, … …, S ], T is the first time length, and the I frame sequence contains S + 1I frames. When s is 0, it indicates that the terminal will immediately start sending the data request message carrying the 1 st I frame in the I frame sequence to the server after obtaining the I frame sequence.
In the embodiment of the present invention, the preset first time length may be a preset time value less than or equal to 1 second, or a time value less than or equal to 1 second calculated based on the double speed.
For example: if the first duration is 1 second, the terminal sends the data request message every 1 second, and the data request message is sent every second, so that the difference between the speeds of different fast forwarding or fast rewinding can be embodied by taking the first duration as the speed of the step length, and the user experience is good.
Furthermore, the terminal can also calculate the first time length based on the speed multiplication of fast forward or fast backward, and when the speed multiplication is N, the first time length is 1/logsN, where s is greater than 1, for example: if the double speed of fast forward or fast backward is 8, the terminal sends a data request message to the server every 1/3 seconds.
It should be noted that, in the embodiment of the present invention, the data request message is a hypertext Transfer Protocol (http) request.
And step 204, receiving and decoding I frame data fed back by the output server according to the index information of the received I frame.
In the embodiment of the invention, after receiving a data request message sent by a terminal, a server analyzes the data request message, acquires index information of an I frame contained in the data request message, acquires corresponding I frame data according to the index information of the I frame, and feeds back the acquired I frame data to the terminal.
The terminal decodes and outputs the I frame data after receiving the I frame data fed back by the server according to the index information of the received I frame, and because the terminal sends the data request message to the server at intervals of a first time length, the terminal also receives the I frame data fed back by the server at intervals of a first time length, so that the fast forward and fast backward effective output can be realized on a display interface of the terminal.
After decoding the I frame data, the terminal may output the decoded I frame data according to a normal play mode, or may output the decoded I frame data according to a play mode of the I frame, and the terminal may perform the setting according to specific needs in practical applications, which is not limited herein.
It should be noted that, in this embodiment of the present invention, the terminal executes steps 203 and 204 in a loop, that is, after the terminal sends a data request message each time, the terminal receives and decodes I frame data fed back by the server according to the index information of the I frame included in the data request message, and sends a data request message once when the interval is a first time from the last sending, and receives and decodes I frame data fed back by the server, and so on until a data request message is sent and a fed back I frame data is received for each I frame in the sequence of I frames. And in the process of executing the step 203 and the step 204, the output interface of the terminal forms the output effect of fast forward and fast backward.
In the embodiment of the invention, when a fast forward or fast backward request is received, a second time length is determined according to the speed of fast forward or fast backward, I frames are selected according to the played time length of a current program, the second time length and I frame time contained in index information of each I frame of the current program to obtain an I frame sequence, and after the I frame sequence is obtained, a terminal sends a data request message to a server at a first time length preset at intervals, wherein the data request message sequentially carries the index information of the I frames in the I frame sequence; and the terminal also receives and decodes the I frame data fed back by the output server according to the index information of the I frame in the received data request message. Through the mode, only the I frame in the selected I frame sequence needs to be downloaded from the server, and all the I frames in the current program do not need to be downloaded, so that the downloading amount of the I frame can be effectively reduced, and the requirement on the broadband is reduced.
In order to better understand the technical solution in the embodiment of the present invention, a specific application scenario is described in detail below, which includes:
1) the terminal receives the fast forward request, extracts the fast forward speed N contained in the fast forward request, and determines the played time length T1 of the current program;
2) the terminal determines that the first duration of the time interval for sending the data request message to the server is 1/logsN, the second duration for selecting I frame is N/logsN;
3) Terminal utilizing second duration N/logsN, the played time length T1 of the current program and the time point of each I frame of the current program stored by the terminal determine the sequence of I frames, and the sequence of I frames is [ I0, I1, I2, I3, … … and I10];
4) The terminal sends a data request message to the server, and requests I frame data of I0 in the I frame sequence;
5) the terminal receives I0 frame data fed back by the server, and decodes and outputs the I0 frame data;
6) the terminal sends a data request message to the server, and requests I frame data of I1 in the I frame sequence;
7) the terminal receives I1 frame data fed back by the server, and decodes and outputs the I1 frame data;
……
8) the terminal sends a data request message to the server, and requests I frame data of I10 in the I frame sequence;
9) the terminal receives the I10 frame data fed back by the server and decodes and outputs the I10 frame data.
In the embodiment of the invention, when the fast forward speed is increased by N times or the fast backward speed is increased by N, the program time step per second is N, but all I frames in N seconds are not required to be obtained per second, but 1/T0I frames are used, wherein T0 is the first time length, so that the number of I frames needing to be downloaded can be reduced to a great extent, the requirement on bandwidth is reduced, meanwhile, the number of the obtained I frames is large when the multiple is larger, the output fast forward and fast backward picture switching effect is better, and the user experience can be further improved.
In the embodiment of the invention, by selecting each I frame of the current program, only I frame data of part of I frames need to be downloaded, and I frame data of all I frames of the current program does not need to be downloaded, so that the downloading amount of the I frame data can be effectively reduced, and the requirement on a broadband is reduced.
Referring to fig. 3, an embodiment of a structure of a terminal according to an embodiment of the present invention includes:
a selecting module 301, configured to, when a fast forward or fast backward request is received, select an I frame according to a played time of a current program, pre-stored index information of each I frame of the current program, and a multiple speed included in the fast forward or fast backward request, to obtain an I frame sequence;
a sending module 302, configured to send a data request message to the server at a preset first time interval after the selecting module 301 obtains the I frame sequence, where the data request message sequentially carries index information of I frames in the I frame sequence;
a receiving and outputting module 303, configured to receive and decode the I frame data fed back by the output server according to the received I frame index information after the sending module 302 sends the data request message.
In the embodiment of the invention, when the terminal starts to play the program initially, the terminal sends an I frame index information request message to the server, and after receiving the I frame index information request message, the server analyzes the video source of the current program of the terminal, acquires the index information of each I frame of the current program, and feeds back the acquired index information of each I frame to the terminal.
After receiving the index information of each I frame of the current program, the terminal stores the index information of each I frame of the current program.
The index information of the I frame at least includes a time point of the I frame, and the time point of the I frame refers to a time point of the I frame in the current program.
In addition, the index information of the I frame may further include parameters such as the name of the slice in which the I frame is located, the offset position of the I frame in the slice, and the size of the I frame.
In the embodiment of the invention, a user can send a fast forward or fast backward request to the terminal by means of remote controller control or touch screen or the like, wherein the fast forward or fast backward request includes a multiple speed of fast forward or fast backward, and the multiple speed of fast forward or fast backward can be 2, 4, 8, 16 or the like.
After receiving the fast forward or fast backward request, the terminal selects I frames according to the played time length of the current program, the index information of each I frame of the current program stored in advance and the multiple speed included in the fast forward or fast backward request to obtain an I frame sequence.
When the terminal sends the data request message to the server, the index information of the I frame carried by the terminal includes the time point of the I frame, the name of the fragment where the I frame is located, the offset position of the I frame in the fragment and the size of the I frame.
After receiving the data request message, the server determines the position of the I frame on the total duration of the current program by using the time point of the I frame in the index information of the I frame carried by the server, determines the fragment where the I frame is located by using the fragment name of the I frame, extracts I frame data by using the offset position of the I frame in the fragment and the size of the I frame after determining the fragment, and feeds the extracted I frame data back to the terminal.
In the embodiment of the present invention, the terminal may be a television, a computer, a set-top box, a PAD, a smart phone, or the like.
In the embodiment of the present invention, when a fast forward or fast backward request is received, the selecting module 301 selects an I frame according to the played time length of the current program, pre-stored index information of each I frame of the current program, and a multiple speed included in the fast forward or fast backward request, to obtain an I frame sequence; then, the sending module 302 sends a data request message to the server at a first time interval set in advance, and the data request message sequentially carries index information of I frames in the I frame sequence; and the I frame data fed back by the server according to the index information of the received I frame is received and decoded by the reception output module 303.
In the embodiment of the invention, when a terminal receives a fast forward or fast backward request, I frames are selected according to the played time length of a current program, the index information of each I frame of the current program and the fast forward or fast backward speed multiple to obtain an I frame sequence, a data request message is sent to a server at intervals of a preset first time length, the index information of the I frames in the I frame sequence is sequentially carried in the data request message, and the terminal decodes and outputs the I frame data after receiving the I frame data fed back by the server according to the I frame index information contained in the received data request message. By the mode, the fast-forward and fast-backward output effect can be realized only by downloading the selected part of the I frames from the server, and all the I frames of the current program do not need to be downloaded, so that the downloading amount of I frame data is effectively reduced, and the requirement on the broadband is effectively reduced.
For better understanding of the terminal in the embodiment of the present invention, please refer to fig. 4, which is an embodiment of a structure of the terminal in the embodiment of the present invention, and includes a selecting module 301, a sending module 302, and a receiving and outputting module 303 as described in the embodiment shown in fig. 3, and the contents are similar to those described in the embodiment shown in fig. 3, and are not repeated here.
In this embodiment of the present invention, the selecting module 301 includes:
a duration determining module 401, configured to determine a second duration according to a fast-forwarding speed or a fast-rewinding speed when a fast-forwarding request or a fast-rewinding request is received;
a frame selecting module 402, configured to select an I frame according to the played time length of the current program, the second time length, and time points of each I frame of the current program after the time length determining module 401 determines the second time length, to obtain an I frame sequence, where the time points of the I frame are included in the index information of the I frame.
The frame selecting module 402 is specifically configured to:
if the value is fast forward, the initial value of m is 0, and the following steps are executed:
step 1: taking the sum of the played time length of the current program and m times of second time length as an effective time point;
step 2: judging whether an effective time point has an I frame or not backwards according to the time point of each I frame of the current program;
and step 3: if the effective time point still has I frames backward, selecting an I frame closest to the effective time point backward as the m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame, finishing the selection of the I frame.
Alternatively, the frame selecting module 402 is specifically configured to:
if the speed is fast backward, the initial value of m is 0, and the following steps are executed:
step 1: taking the difference of the played time length of the current program minus m times of the second time length as an effective time point;
step 2: judging whether the effective time point has an I frame or not in the forward direction according to the time point of each I frame of the current program;
and step 3: if the effective time point still has I frames, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point has no I frame, finishing the selection of the I frame.
In the embodiment of the present invention, the preset first time period is a preset time value less than or equal to 1 second, or a time value less than or equal to 1 second calculated based on a double speed.
In the embodiment of the present invention, when a fast forward or fast backward request is received, the selecting module 301 selects an I frame according to the played time length of the current program, pre-stored index information of each I frame of the current program, and a multiple speed included in the fast forward or fast backward request, to obtain an I frame sequence; specifically, the method comprises the following steps: the duration determining module 401 in the selecting module 301 determines a second duration according to the fast-forward or fast-backward speed, and the frame selecting module 402 selects an I frame according to the played duration of the current program, the second duration and the time point of each I frame of the current program to obtain an I frame sequence, where the index information includes the time point of the I frame.
Then, the sending module 302 sends a data request message to the server at a first time interval set in advance, and the data request message sequentially carries index information of I frames in the I frame sequence; and the I frame data fed back by the server according to the index information of the received I frame is received and decoded by the reception output module 303.
In the embodiment of the invention, when a fast forward or fast backward request is received, a second time length is determined according to the speed of fast forward or fast backward, I frames are selected according to the played time length of a current program, the second time length and I frame time contained in index information of each I frame of the current program to obtain an I frame sequence, and after the I frame sequence is obtained, a terminal sends a data request message to a server at a first time length preset at intervals, wherein the data request message sequentially carries the index information of the I frames in the I frame sequence; and the terminal also receives and decodes the I frame data fed back by the output server according to the index information of the received I frame. Through the mode, only the I frame in the selected I frame sequence needs to be downloaded from the server, and all the I frames in the current program do not need to be downloaded, so that the downloading amount of the I frame can be effectively reduced, and the requirement on the broadband is reduced.
Through the above description of the embodiments, those skilled in the art will clearly understand that the method of the above embodiments can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware, but in many cases, the former is a better implementation manner. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (such as ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal device (such as a mobile phone, a computer, a server, an air conditioner, or a network device) to execute the method according to the embodiments of the present invention.
The above description is only a preferred embodiment of the present invention, and not intended to limit the scope of the present invention, and all modifications of equivalent structures and equivalent processes, which are made by using the contents of the present specification and the accompanying drawings, or directly or indirectly applied to other related technical fields, are included in the scope of the present invention.

Claims (6)

1. A fast forward and fast reverse processing method is characterized by comprising the following steps:
when a fast forward request or a fast backward request is received, determining a second duration according to the speed of fast forward or fast backward; the second time length is equal to the product of the fast forward or fast backward speed and the first time length;
selecting I frames according to the played time length of the current program, the second time length and the time point of each I frame of the current program to obtain an I frame sequence, wherein the I frame sequence comprises the following steps:
if the request is a fast forward request, the initial value of m is 0, and the following steps are executed:
step 1: taking the sum of the played time length of the current program and the second time length m times as an effective time point;
step 2: judging whether I frames exist at the effective time point backward or not according to the time point of each I frame of the current program;
and step 3: if there are I frames in the future at the effective time point, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: if the effective time point does not have the I frame, finishing the selection of the I frame;
the time point of the I frame is contained in the index information of the I frame;
sending a data request message to a server every interval of the first duration, wherein the data request message sequentially carries index information of an I frame in the I frame sequence;
and receiving, decoding and outputting the I frame data fed back by the server according to the received index information of the I frame.
2. The processing method according to claim 1, wherein said selecting I frames according to the played time length of the current program, the second time length and time points of each I frame of the current program to obtain an I frame sequence comprises:
if the request is a fast-backward request, the initial value of m is 0, and the following steps are executed:
step 1: taking the difference of the played time length of the current program minus m times of the second time length as an effective time point;
step 2: judging whether the effective time point has I frames or not in the forward direction according to the time point of each I frame of the current program;
and step 3: if the effective time point has I frames before, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence before, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame before, ending the selection of the I frame.
3. The processing method according to claim 1 or 2, wherein the first time period is a preset time value less than or equal to 1 second, or a time value less than or equal to 1 second calculated based on the double speed.
4. A terminal, comprising:
the time length determining module is used for determining a second time length according to the speed multiplication of fast forward or fast backward when a fast forward request or a fast backward request is received; the second time length is equal to the product of the fast forward or fast backward speed and the first time length;
a frame selecting module, configured to select an I frame according to the played time length of the current program, the second time length, and a time point of each I frame of the current program after the time length determining module determines the second time length, so as to obtain the I frame sequence, where the frame selecting module includes:
if the request is a fast forward request, the initial value of m is 0, and the following steps are executed:
step 1: taking the sum of the played time length of the current program and the second time length m times as an effective time point;
step 2: judging whether I frames exist at the effective time point backward or not according to the time point of each I frame of the current program;
and step 3: if there are I frames in the future at the effective time point, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: if the effective time point does not have the I frame, finishing the selection of the I frame;
the time point of the I frame is contained in the index information of the I frame;
a sending module, configured to send a data request message to a server every the first duration after the selecting module obtains the sequence of I frames, where the data request message sequentially carries index information of one I frame in the sequence of I frames;
and the receiving and outputting module is used for receiving, decoding and outputting the I frame data fed back by the server according to the received index information of the I frame after the sending module sends the data request message.
5. The terminal of claim 4, wherein the frame selection module is specifically configured to:
if the request is a fast-backward request, the initial value of m is 0, and the following steps are executed:
step 1: taking the difference of the played time length of the current program minus m times of the second time length as an effective time point;
step 2: judging whether the effective time point has I frames or not in the forward direction according to the time point of each I frame of the current program;
and step 3: if the effective time point has I frames before, selecting an I frame closest to the effective time point as an m +1 th frame of the I frame sequence before, making m equal to m +1, and returning to execute the step 1;
and 4, step 4: and if the effective time point does not have the I frame before, ending the selection of the I frame.
6. The terminal according to claim 4 or 5, wherein the first duration is a preset time value less than or equal to 1 second, or a time value less than or equal to 1 second calculated based on the multiple speed.
CN201510703222.4A 2015-10-26 2015-10-26 Fast forward and fast backward processing method and terminal Active CN106612462B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510703222.4A CN106612462B (en) 2015-10-26 2015-10-26 Fast forward and fast backward processing method and terminal
PCT/CN2016/099377 WO2017071428A1 (en) 2015-10-26 2016-09-19 Fast forward/rewind processing method and terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510703222.4A CN106612462B (en) 2015-10-26 2015-10-26 Fast forward and fast backward processing method and terminal

Publications (2)

Publication Number Publication Date
CN106612462A CN106612462A (en) 2017-05-03
CN106612462B true CN106612462B (en) 2021-02-19

Family

ID=58613792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510703222.4A Active CN106612462B (en) 2015-10-26 2015-10-26 Fast forward and fast backward processing method and terminal

Country Status (2)

Country Link
CN (1) CN106612462B (en)
WO (1) WO2017071428A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109348280B (en) * 2018-10-23 2021-11-09 深圳Tcl新技术有限公司 Network television program switching method, intelligent television and computer readable storage medium
CN112188254A (en) * 2020-09-29 2021-01-05 深圳创维-Rgb电子有限公司 Video playing double-speed switching processing method and device based on television terminal
CN114501166A (en) * 2021-11-18 2022-05-13 武汉市烽视威科技有限公司 DASH on-demand fast-forward and fast-backward method and system
CN114173202A (en) * 2021-11-23 2022-03-11 武汉市烽视威科技有限公司 RTSP (real time streaming protocol) -based continuous speed doubling playing method and related equipment

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018323A (en) * 2007-02-08 2007-08-15 华为技术有限公司 A method and stream media server for fast-forward and fast back of the video data
CN101841692A (en) * 2010-04-23 2010-09-22 深圳市茁壮网络股份有限公司 Method for fast forwarding and fast rewinding video stream
CN102025956A (en) * 2009-09-23 2011-04-20 华为技术有限公司 Processing method, device and system for fast forward and fast backward playing of network stream media
CN102487458A (en) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 Method for broadcasting and processing TS (Transport Stream) document and device thereof
CN102550038A (en) * 2011-11-16 2012-07-04 华为技术有限公司 Method, terminal, server and system for playing media files
CN102761524A (en) * 2011-04-27 2012-10-31 中兴通讯股份有限公司 Steaming media storage and playing method and corresponding system
CN103024440A (en) * 2013-01-11 2013-04-03 德科仕通信(上海)有限公司 Video quality evaluation and fault diagnosis method aiming at HAS (HTTP Adaptive Streaming)
CN103096132A (en) * 2013-02-05 2013-05-08 北京赛科世纪数码科技有限公司 Method and device of fast forward and fast backward of TS documents
CN103369351A (en) * 2012-03-29 2013-10-23 深圳市龙视传媒有限公司 Streaming media fast-forward and fast-backward processing method, video server and system
CN103581693A (en) * 2013-11-12 2014-02-12 北京清源新创科技有限公司 Internet-oriented large-scale live time shifting method and system based on fragment transmission

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2985703B2 (en) * 1995-01-19 1999-12-06 日本ビクター株式会社 Image compression recording medium playback device
KR101480469B1 (en) * 2008-12-01 2015-01-09 엘지전자 주식회사 Image display device, image transmitting device, method for transmitting image and recording medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018323A (en) * 2007-02-08 2007-08-15 华为技术有限公司 A method and stream media server for fast-forward and fast back of the video data
CN102025956A (en) * 2009-09-23 2011-04-20 华为技术有限公司 Processing method, device and system for fast forward and fast backward playing of network stream media
CN101841692A (en) * 2010-04-23 2010-09-22 深圳市茁壮网络股份有限公司 Method for fast forwarding and fast rewinding video stream
CN102487458A (en) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 Method for broadcasting and processing TS (Transport Stream) document and device thereof
CN102761524A (en) * 2011-04-27 2012-10-31 中兴通讯股份有限公司 Steaming media storage and playing method and corresponding system
CN102550038A (en) * 2011-11-16 2012-07-04 华为技术有限公司 Method, terminal, server and system for playing media files
CN103369351A (en) * 2012-03-29 2013-10-23 深圳市龙视传媒有限公司 Streaming media fast-forward and fast-backward processing method, video server and system
CN103024440A (en) * 2013-01-11 2013-04-03 德科仕通信(上海)有限公司 Video quality evaluation and fault diagnosis method aiming at HAS (HTTP Adaptive Streaming)
CN103096132A (en) * 2013-02-05 2013-05-08 北京赛科世纪数码科技有限公司 Method and device of fast forward and fast backward of TS documents
CN103581693A (en) * 2013-11-12 2014-02-12 北京清源新创科技有限公司 Internet-oriented large-scale live time shifting method and system based on fragment transmission

Also Published As

Publication number Publication date
WO2017071428A1 (en) 2017-05-04
CN106612462A (en) 2017-05-03

Similar Documents

Publication Publication Date Title
US10230958B2 (en) Audio splitting with codec-enforced frame sizes
US7860996B2 (en) Media streaming with seamless ad insertion
US9332050B2 (en) Media streaming with adaptation
EP2490445A1 (en) Method, terminal and server for realizing fast playing
EP2472857A1 (en) Media stream processing method and communication system and related devices
CN106612462B (en) Fast forward and fast backward processing method and terminal
US11128897B2 (en) Method for initiating a transmission of a streaming content delivered to a client device and access point for implementing this method
CN109587514B (en) Video playing method, medium and related device
US20140109156A1 (en) Method, terminal, server and system for playing media file
CN106998485B (en) Video live broadcasting method and device
US8230468B2 (en) Dynamically creating trick files to hide latency in streaming networks
CN117581552A (en) Switching between transmitting pre-authored video frames and composite video frames
CN113141522B (en) Resource transmission method, device, computer equipment and storage medium
CN106791994B (en) Low-delay quick broadcasting method and device
JP6257611B2 (en) Provision of media and content for individuals
CN113727199A (en) HLS slice rapid playing starting method
CN106789976A (en) The player method of media file, service end, client and system
CN111726657A (en) Live video playing processing method and device and server
US9161088B2 (en) Method in a streaming client for handling video streaming data, streaming client, computer programs and computer program products
US20150026711A1 (en) Method and apparatus for video content distribution
KR101541540B1 (en) Method and Apparatus for providing content download service
CN106302465B (en) A kind of method and device of playing audio-video data
CN106231414B (en) Control method and device for playing mode switching based on IPTV
CN110769326B (en) Method and device for loading video slice file and playing video file
CN115623237B (en) List live broadcast method, device, equipment and computer readable storage medium

Legal Events

Date Code Title Description
PB01 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