METHOD FOR ENABLING SEAMLESS AND BIDIRECTIONAL PLAYBACK OF VIDEO
20170062004 · 2017-03-02
Assignee
Inventors
Cpc classification
H04N21/440218
ELECTRICITY
H04N21/234309
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N5/783
ELECTRICITY
H04N9/8205
ELECTRICITY
H04N19/40
ELECTRICITY
International classification
G11B27/00
PHYSICS
G11B27/28
PHYSICS
H04N5/92
ELECTRICITY
H04N19/40
ELECTRICITY
Abstract
Method for enabling seamless bidirectional and multiple speed rate playback of video, performing the steps of a pre-processing step having steps of analyzing a video to be played by unwrapping video containers; checking if the video is in a pre-defined normalized format and transcoding the video if not normalized; analyzing the video for bidirectional encoding by extracting and generating metadata, and generating general and bidirectional conversion instructions; an encoding step encoding and generating multiple video streams based on the generated conversion instructions for videos and for bidirectional playback on different devices and playback modes; a post-processing step synchronizing bidirectional video streams and metadata; and a step of extracting metadata from each generated video stream, and a step of distribution by streaming bidirectional video to a target device in a requested format together with accompanying metadata.
Claims
1. A method enabling seamless bidirectional and multiple speed rate playback of video, performing the following steps when executed on a computer: processing a source video by: analyzing the video by unwrapping video containers; checking if the video is in a pre-defined normalized format and transcoding the video if not normalized; analyzing the video for bidirectional encoding by extracting metadata; generating general and bidirectional conversion instructions based on said analysis; encoding and generating multiple video streams, for bidirectional playback on different devices and playback modes, based on the generated conversion instructions for videos; synchronizing bidirectional video streams and metadata; extracting metadata from each generated video stream; and streaming bidirectional video from the computer to a target device in a requested format together with accompanying metadata.
2. The method according to claim 1, by gathering metadata from the source video corresponding to bitrate, resolution and framerate.
3. The method according to claim 1, by including the conversion instructions in a matrix defining different video formats.
4. The method according to claim 1, by packing the generated multiple video streams in a video stream package.
5. The method according to claim 1, by gathering metadata from each generated video stream corresponding to one or more of NAL units, picture parameters, video parameters, video blocks, video samples, motion vectors and audio information.
6. The method according to claim 1, by synchronizing bidirectional video streams and metadata by time-syncing all bidirectional video streams by generating new key-frames with matching positions for forward and reverse playback streams.
7. The method according to claim 1, by using a content delivery network, CDN, or an end point as the target device.
8. A data processing system comprising a server computer and a client computer, where the server computer is configured for carrying out the method according to claim 1, and where the client computer is configured for receiving and playing bidirectional streamed video from the server computer by: receiving user input defining properties of playback; loading metadata from the streamed video, and predicting memory buffering requirements from the metadata and the properties of playback for controlling seamless bidirectional playback based in user input and loaded metadata.
9. A computer program stored on a non-transitory computer readable medium comprising instructions which when executed by a computing device or system cause the computing device or system to perform the method according to claims 1.
10. A non-transitory computer readable medium having stored thereon instructions which when executed by a computing device or system perform the method according to claim 1.
11. A data stream stored on a non-transitory computer readable medium which is representative of a computer program having instructions which when executed by a computing device or system cause the computing device or system to perform the method according to claim 1.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0021] One or more embodiments of the invention will now be described in detail with reference to the drawings where:
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
DETAILED DESCRIPTION
[0029] One or more embodiments of the invention introduce a novel method for enabling real-time requested seamless bidirectional video playback by pre- and post-processing video by extracting and generating meta-information from native video formats.
[0030] One or more embodiments of the inventive method is executed on a computer comprising a CPU and memory.
[0031]
[0032] The processing part receives input data, controlled via an interface, i.e. API (Application Programming Interface), via the network. Input video data may be provided by, e.g. a CDN (Content Delivery Network) or a streaming endpoint, and output data may be produced and made available to the same via the network. The input and output dataflow to and from the processing part is illustrated by middle part B) in
[0033] The lower part C) illustrates the modules for processing and preparing of video for seamless bidirectional playback. These modules will be described in detail below with reference to the figures. The modules are named pre-processing 1, encoding 2, post-processing 3, meta-information generation and extraction 4 and distribution 5.
[0034] The procedure for performing the method according to one or more embodiments of the invention is initiated by an end user selecting a video to be streamed to his or her end point device. This may be a smart phone or tablet. User inputs are entered via an input interface on the phone or tablet, and a selected video file and device specific information are sent to the backend service, illustrated in part C) of
[0035]
[0036] When source data is entering the pre-processing step, the video source file is analyzed by checking if the file is wrapped in a container. This is most likely the case. A container specifies the file format, e.g. MKV, MOV, AVI, WMW, MP4 etc., and contains the actual video file. A popular container is the MPEG-4 (MP4) format offering advanced features. Inside the container there will be video and audio data as well as metadata defining the structure and properties of the video file. Metadata is placed in the header of the file.
[0037] If the video file is wrapped in a container, the content of the file is unwrapped and analyzed by checking the video properties and extracting metadata. The properties may for instance be type of codec used, structure of file, bit rate, frame rate, resolution, etc.
[0038] If the source video does not have a pre-defined format, it will be normalized by transcoding it to a pre-defined format. Even if the source data file has a pre-defined format, for instance MP4, it might not have a complete set of metadata. If this is the case, the metadata will be corrected to a complete set of metadata in the transcoding process of a source video to a master video. The master video file with a complete set of metadata will then be processed and analyzed further.
[0039] When the master file comprising normalized video has been established the file will be analyzed further. Properties of the sound and video will be detected. Sound may for instance be coded in a DD 5.1 format and the video may have a variable bit rate according to required bandwidth at any time driven by video content, i.e. movements and changes in the picture over time. It may also be that the video has a fixed bit rate which it is desirable to convert to a variable bit rate in order to require less bandwidth when streaming.
[0040] The video content is then analyzed with regards to bidirectional encoding by generating and extracting metadata. Metadata with bidirectional streaming and decoding instructions for a specific client is generated. These metadata are streamed to a specific device together with the video they describe.
[0041] Based on said analysis, general conversion instructions will be generated as well as bidirectional conversion instructions for several different video files having different properties. This also includes conversion instructions for sound, e.g. converting existing sound form multi-channel audio, e.g. Dolby Digital 5.1 to client capable audio, e.g. Stereo 2.0.
[0042] All figures indicate that there might be storage of data after all steps. Storage of all extracted and generated data may be perfoimed for utilizing of these data in all steps and for deriving the different formats enabling the seamless playback.
[0043] The output from the pre-processing stage is the detailed bidirectional conversion instructions which are input to the next encoding stage. In one or more embodiments the conversion instructions are comprised in a matrix defining the different video formats to be encoded.
[0044]
[0045] Multiple video streams are then generated based on the encoded video files prepared for bidirectional playback on different devices and playback modes.
[0046]
[0047] The next step is to synchronize bidirectional videos. This is performed in order to be able to start bidirectional playback at any speed from any point in a video without time lag when switching from normal playback to reverse playback.
[0048] Bidirectional videos streams and metadata are synchronized by time-syncing all bidirectional video streams by generating new key-frames with matching positions for forward and reverse playback streams.
[0049]
[0050] The output data from the post-processing stage is a file comprising a matrix with several different bidirectional video files.
[0051]
[0052] In the case of a MP4 stream this may comprise MP4 specific data such as NAL units (Network Abstraction Layer), picture and video parameters, MP4 blocks and samples, motion vectors and audio information. This extracting stage makes it possible to start playing from anywhere in a video without first having to read metadata in the header of the file. Motion vector data can be used for calculation required streaming bandwidth and pre-buffering streams by prediction.
[0053]
[0054] When the steps described above have been completed, bidirectional streaming of video to a target device in a requested format together with accompanying metadata is performed. Successful distribution of a streamed video file will be verified.
[0055] A device receiving this streamed video file will have a backend client installed. When receiving the streamed video the backend client will have all information available in the received streamed video for perfoiming bidirectional and multiple speed playback of video according to inputs selected by a user.
[0056] Although the disclosure has been described with respect to only a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that various other embodiments may be devised without departing from the scope of the present invention. Accordingly, the scope of the invention should be limited only by the attached claims.