Sign In to Follow Application
View All Documents & Correspondence

System And Method For Downloading Video And Scouring

Abstract: A video downloading and scouring system for use with a web-based video editing system is provided. the downloading and scouring system includes a scouring subsystem configured to receive a user request for a portion of a video at a particular time index, create a data stream beginning containing video data relating to that time index in the video and transmit the data and a preview subsystem configured to provide a preview of video data to the user completing the download of the video

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
21 July 2019
Publication Number
04/2021
Publication Type
INA
Invention Field
ELECTRONICS
Status
Email
ipr@optimisticip.com
Parent Application

Applicants

MESBRO TECHNOLOGIES PRIVATE LIMITED
Flat no C/904, Geomatrix Dev, Plot no 29, Sector 25, Kamothe, Raigarh-410209, Maharashtra, India

Inventors

1. Mr. Bhaskar Vijay Ajgaonkar
Flat no C/904, Geomatrix Dev, Plot no 29, Sector 25, Kamothe, Raigarh-410209, Maharashtra, India

Specification

Claims:1. A video downloading and scouring system is use with a web-based video manipulating system, the downloading and scouring system comprising:
a. A video server containing a network output to transmits video data, to a first remote communication device over a network and
b. A video server containing a network input that receives data from a second remote communication device over the network and; the network output, the initial file of video data including:
• an initial file header portion and
• an initial file data portion receive, before the initial file of video data has been completely sent, a request for a portion of the video data corresponding to a particular time index from the second remote computer using the network input; determine what portion of the file of video data has been sent;
wherein, the video data corresponding to the time index is in the portion of the initial file of video data that has been sent, continue sending the initial file of video data; and create a scouring file of video data, the scouring file of video data including a scouring header portion and a scouring data portion, the scouring data portion including the video data corresponding to the particular time index within a predetermined portion of the video data at the beginning of the scouring data portion; stop sending the initial file of video data, and send the scrubbed file of video data to the first remote communication device using the network output.
2. The system of claim 1, wherein a single communication device is both the first remote communication device and the second remote communication device.
3. The system of claim 1, wherein the first remote communication device containing a graphical user interface.
4. The system of claim 3, wherein the first remote communication device comprises at least one selected from the group consisting of: a personal computer, a laptop computer, a handheld computer, a phone, and a video player.
5. The system of claim 1, wherein the network is the Internet.
6. A method of downloading and scouring video data for use with a video server including a
a. network output that transmits data, including video data, to a first remote computer over a network and
b. a network input that receives data from a second remote computer over the network, the method comprising:
c. an initial file of video data to the first remote computer using the network output, the initial file including;
• an initial file header portion and;
• an initial file data portion;
receiving, before the initial file of video data has been completely sent, a request for a portion of the video data corresponding to a specific time index from the second remote computer using the network input; determining what portion of the initial file of video data has been sent;
when it is determined that the video data corresponding to the specific time index is in the portion of the initial file of video data that has been sent, continuing to send the initial file of video data; and
when it is determined that the video data corresponding to the particular time index is not in the portion of the initial file of video data that has been sent, creating a scrubbed file of video data, the scrubbed file of video data including a scrubbed header portion and a scrubbed data portion, the scrubbed data portion including the video data corresponding to the particular time index within a predetermined portion of the video data at the beginning of the scrubbed data portion, ceasing sending the initial file of video data, and sending the scrubbed file of video data to the first remote computer using the network output.
7. The method of claim 6, wherein a single communication device is both the first remote communication device and the second remote communication device.
8. The method of claim 6, wherein the first remote communication device includes a graphical user interface.
9. The method of claim 8, wherein the first remote communication device comprises at least one selected from the group consisting of a personal computer, a laptop computer, a handheld computer, a phone, and a video player.
, Description:Technical Field of the Invention
The present invention relates to system and method for downloading video and scouring systems for web-based video editing systems.
Background of the Invention
In a traditional online video player program, the video player downloads video files and scour to specific time indexes in one of several ways. The first method, known as progressive downloading, involves downloading the entire video file at once. The data for the file is downloaded sequentially, thus the video player first downloads the data for the first frame of the video, followed by the next frame, and so forth until it reaches the last frame. As the player downloads the file, the user may play the downloaded portion of the file and may scrub to any portion of the video that has already been downloaded. If the user attempts to scour past this point, the video player will typically scour to the end of the downloaded portion of the file and will stop playing. Similarly, when the user is playing the file as it is being downloaded, if due to lag, slow connection speed, or some other reason, the file plays faster than the remaining portion can be down loaded, the video player will halt play when it reaches the end of the downloaded portion of the file.
Object of the Invention
The primary object of the present invention is to provide a method & system for downloading video and scouring systems for web-based video editing systems.
Another object of present invention is composition and the way the scouring system edits and manipulates them
Another object of present invention is delta encoding and system manipulates them in Web-Based Movie Editing System

Summary of the Invention
Overall the present describes the method and system provide a method & system for downloading video and scouring systems for web-based video editing systems. the video downloading and scrubbing system includes a preview subsystem. The preview subsystem may receive user input from the client computer indicating a time index to which a user wishes to scrub. The preview subsystem then locates the frame corresponding to the time index and splices only that frame out of the file, or it splices the nearest keyframe if delta encoding is being used. The preview subsystem then transmits this frame to the client computer and the client computer then displays this frame as a preview as the video downloads.
The scrubbing system also starts transmitting the video file to the client computer system in any of the above described manners. The preview subsystem divides every video into a series of scenes. What constitutes a scene can be determined by a variety of factors. For example, when a user is editing a video, the user may arbitrarily place markers indicating the beginning and ending of each scene. The subsystem may also classify each individual video clip added to a project as a separate scene. The system may also automatically search for places in the video that could constitute a break between scenes such as areas where the screen is completely black, where there is no sound, or where a user has added a transition. When a user begins downloading a video to the client computer, the preview subsystem selects one or more frames from each scene within the video and transmits the frames to the client computer while the rest of the video, or portion of the video, downloads. The client computer displays these preview frames in order such that the user sees an approximate representation of the goings-on in each scene of the video before the entire video has downloaded. In this manner, the user sees the entire layout of the video without having downloaded the entire file and may use this as a guide to determine to what point in the video he or she may wish to scrub while the video is still being downloaded.

Brief Description of Drawings:
FIG. 1 shows a block diagram of the process by which the system transmits large video files
FIG. 2 is a block diagram of an embodiment of a video downloading and scouring system of the web-based video editing system
FIG. 3 shows a flowchart diagram of a method of operation on the client computer for processing user input.
DETAILED DESCRIPTION OF THE INVENTION
In some embodiments of the system, one or more client computers are configured to transmit information to and receive information from the server. In some embodiments, each of the client computers is configured to send a query for information and the server is configured to respond to the query by sending the requested information to the client computer. In another embodiment, one or more of the client computers is configured to transmit commands to the server and the server is configured to perform functions in response to the commands.
In some embodiments, each of the client computers is configured with an application for displaying multimedia on the graphical user interface of the client computer. The application may be Adobe Flash® or any other application capable of displaying multimedia.
In some embodiments, videos are as stored as files on the server or on a remote computer connected to the server. The files may be Flash FLV format files or any other file suitable for storing videos that can be downloaded to a client computer.
In some embodiments, the connection manager is configured to determine the condition of the server and perform asynchronous messaging to one or more of the client computers over the dedicated open socket connection. In some embodiments, the content of the message is indicative of the state of the server.
The server is configured to receive requests from one or more of the client computers and perform functions in response to the received requests. The server performs any number of functions typically performed on the server of a web-based video editing system. In some embodiments, the server provides a video downloading and scrubbing system for the web-based video editing system.
In some embodiments, the video downloading and scrubbing system is executed on the server. In other embodiments, the video downloading and scrubbing system may be executed on a computer that is remote from but in communication with the server. The video downloading and scrubbing system is configured to allow a user to download all or portions of a video, scrub to specified time indices within the video once it has been downloaded, scrub to specified time indices in a video that is currently being downloaded, scrub to specified time indices in a video that has not yet started to download, and scrub to specified time indices within all or portions of a video without experiencing significant lag time.
FIG.1 shows a block diagram of the process by which the system transmits large video files. In some embodiments, dealing with larger video files, the system receives input from a user indicating that he wishes to view a video file. In some embodiments where the user may only view one video at a time, the system closes any existing video data stream to the client computer. The system then transmits the video file to the client computer. The client computer progressively downloads the video file from the beginning of the file. In progressive downloading, the client computer begins downloading the video file from the beginning. As the download progresses, the user may scrub to any time index in the video so long as the data within the video corresponding to that time index has already been downloaded to the client computer.
While the larger file is downloading to the client computer, the system may receive input from the user indicating that he wishes to scrub to another time index within the video. If the system determines that this time index occurs at a position in the file that has already been downloaded, the system scours to that time index on the client computer and continues to download the file. If the system determines that the time index occurs in a portion of the file that has not yet been downloaded, the system closes the data stream for the video file currently downloading and locates the byte number in the video file on the server that corresponds with the time index requested by the user. The system then streams header data to the client computer and then transmits this video file to the client computer, and the client computer begins to progressively download the new file. As this new file progressively downloads, the user may scrub to any time index corresponding to a downloaded portion of the file. In some embodiments, the system maintains a time line that shows the length of the original video and the time index in the original video even though the video currently being downloaded begins at the selected time index and contains no data for the portion of the video that would proceed it in the original time index.
If, while the new video file is downloading, the system receives input indicating the user wishes to scrub to a portion of the video that occurs before the beginning the of the new video file, the system closes the video file/stream that is currently being downloaded. The system opens the original video file and locates the byte number in the file corresponding to the newly selected time index. The system then truncates the video data at that point and appends a header to the beginning portion of the data. At this point, the new video file consists of the entirety of the original video data except for any point that occurs before the user selected time index. The client computer then begins progressively downloading and playing this new video file. As this new video file downloads, the user may scrub to any portion of the file that has already been downloaded.
Further, if the user attempts to scrub to a time index in the video that occurs past the downloaded portion, the system will once again close the current video file and create a new video file for download as described above and shown in FIG. 1
FIG. 2 is a block diagram of an embodiment of a video downloading and scrubbing system of the web-based video editing system of FIG.1. The video downloading and scouring system includes a scouring subsystem and a preview subsystem. In some embodiments, the s scouring subsystem includes a processor, memory, and computer code product including instructions stored in the memory and adapted to cause the processor, and thereby the scrubbing subsystem, to receive and process user scrubbing requests. The memory also stores information indicative of the user scrubbing requests. The memory may be any type of read-write memory, including, but not limited to, random access memory. In some embodiments, the scrubbing subsystem receives input from the user including the identity of the user, the video the user wishes to view, and the time index in the video to which the user wishes to scrub. The video may be stored in the editing system of the server (not shown), the scrubbing subsystem memory, the preview subsystem memory, or at a remote location connected to the network of FIG. 1. The videos may be data provided by the web-based video editing system or data generated by the user.
Still referring to FIG. 2, in some embodiments, the preview subsystem includes a processor, memory, and computer code product including instructions stored on the memory and adapted to cause the processor, and thereby the preview subsystem, to receive and process user preview requests or preview requests from the scrubbing subsystem. The memory also stores information indicative of the requests from the scrubbing subsystem. The memory may be any type of read-write memory, including, but not limited to, random access memory. In some embodiments, the preview subsystem receives input from the user including the identity of the user, the video the user wishes to view, and the time index in the video to which the user wishes to scrub. In some embodiments, the preview subsystem receives this input from the scrubbing subsystem. In some embodiments, the preview subsystem generates previews frames. These preview frames may be selected from throughout the video or they may be from a specific portion of the video. For example, the frames may be selected from periods of time contiguous to that which the user has requested to scrub. In some embodiments, the preview subsystem receives further input relating to the quality or resolution of the preview and generates preview frames of that quality or resolution.
FIG. 3 shows a flowchart diagram of a method of operation on the client computer for processing user input. When the system receives input from the user requesting a video, the client computer sends a request to the server for data corresponding to the video. The client begins receiving the video data, processes, and plays the video as it downloads. The player continues to download and play the video until it receives input from the user indicating that the user wishes to scrub to a different time index. The system then determines whether the time index is within the already downloaded portion of the video. If it is, the system scrubs to that time index within the video and continues to play and download the video until it receives further input indicating that the user wishes to scrub to another time index. If, instead, the system determines that the time index is not within the already downloaded portion of the video, the system closes the current data stream and sends a request to the server for that time index. The system then begins receiving new video data that begins at that time index. In some embodiments, meta data is injected into the video files containing the byte number in the file for frames in the video. This meta data also contains the time index for the corresponding frame. Depending on the embodiment and preferences during implementation, the meta data includes this information for the time index and byte number for each frame, for every set number of frames, or for any other process of selecting frames that best suits the needs of the current implementation. The system uses this data to locate the byte number for the frame corresponding to the time index selected by the user. In some embodiments, the meta data is in the form of two arrays.
In another embodiment of the above described invention, the server maintains two versions of each video file, one that is completely delta encoded, and one that has many key frames. This keyframe-heavy version is designed to be used in a web-based video editor, and frequent keyframes facilitate interactive scrubbing and video cropping because most client video implementations can only scrub to keyframes. However, frequent keyframes greatly increase the size of video, so it is desirable to use the delta-encoded version of a video when downloaded by an audience. In some embodiments, after the editor adjustments are made, a new copy of the video is rendered out in delta-encoded form for audience viewing. In some embodiments, a new copy of the video is generated in response to a client request by combining a heavily delta-encoded version of the video with the editor version of the video. In this approach, when the video was initially encoded, two versions are generated by the system—a keyframe-heavy editor version of the video, and a heavily delta-encoded version of the video with keyframes spaced at large intervals, such as once per second. The system generates a video file by generating a header and initial keyframe using the editor video, as described above. The system then uses a server-side decoder to decode the delta frames and thus generate full keyframes and appends these keyframes to the generated video file. In some embodiments, the system uses the keyframe-heavy video to generate the keyframes, and in other embodiments, the system uses the delta-encoded version of the video. The system continues this process until a corresponding keyframe is reached in the delta-encoded version of the video. Finally, the delta-encoded version of the video is then appended to the generated file. This file can be cached or streamed to the client computer as described in the other embodiments, above Further, in some embodiments, when the user scrubs to a particular time index within the video, the preview subsystem generates a higher concentration of frames from the surrounding scenes (e.g., three frames per scene at different points in each scene rather than only one frame per scene) to help further guide the user in scrubbing within this portion of the video. A video is divided into a series of discrete files on the server. The full file is divided at any point where there is a hard cut in the video, such as where there is a transition or a scene change. Once the file has been divided into a series of discrete files, the system stores information relating to the time indices contained in each file in any manner suitable for processing by a video editor or video player. For example, each file may contain two arrays containing the byte number and time index for each frame. In this embodiment, the server transmits the files to the client computer, and the client computer stitches them back together to form a complete video file. If the system receives input from the client computer indicating that the user wishes to scrub to a time index of the video that has not yet been downloaded, the system closes the current download stream and start transmitting the portion of the video that has already been downloaded. Further, the client computer stores in memory any portions of the video that have completed download and stitches them together with any contiguous portions such that the client computer does not need to download them again should the system receive input indicating that the user wishes to scrub to a time index within one of those portions. This allows the client computer to download videos and to scrub to specific time indices in much the same manner as the above described embodiments. This embodiment also permits the client computer to store discrete sections of the video in memory so that it does not have to redownload portions of the video that have already been downloaded. In some embodiments, the system locates hard cuts by searching for areas in the video where there are simultaneous breaks in both the audio and visual portions of the video. In some embodiments of the invention, the system may stitch together otherwise separate video clips into one video file. In some embodiments, when the system receives a request for a video from the client computer, the system first determines whether it already has a cached version of the video file. For example, if the client computer requests a portion of the video running from the third second in the video to the tenth second in the video, the system will determine whether a file for this portion of the video has already been created, either for that client computer or for another client computer. If such a file already exists, then the server will transmit this file to the client computer. If not, then the server will generate a new video file according to any method described above or by any other suitable method. In some embodiments, the name of the video file and the desired portion (start and end times) of the video are encoded together to form a unique filename for the video file. Thus, when caching sections of video files on disk or in memory, the system encodes this information into a unique filename. The system may thus locate a given section of video by encoding the name and requested time indices into a filename and by then checking the file system for that filename. In some embodiments, this information is stored in a database, which maps from the filename and section to a unique file on disk or in memory.

Documents

Application Documents

# Name Date
1 201921029360-Proof of Right [30-11-2020(online)].pdf 2020-11-30
1 201921029360-STATEMENT OF UNDERTAKING (FORM 3) [21-07-2019(online)].pdf 2019-07-21
2 201921029360-POWER OF AUTHORITY [21-07-2019(online)].pdf 2019-07-21
2 201921029360-ORIGINAL UR 6(1A) FORM 26-130819.pdf 2019-11-09
3 Abstract1.jpg 2019-10-18
3 201921029360-FORM FOR STARTUP [21-07-2019(online)].pdf 2019-07-21
4 201921029360-COMPLETE SPECIFICATION [21-07-2019(online)].pdf 2019-07-21
4 201921029360-FORM FOR SMALL ENTITY(FORM-28) [21-07-2019(online)].pdf 2019-07-21
5 201921029360-FORM 1 [21-07-2019(online)].pdf 2019-07-21
5 201921029360-DRAWINGS [21-07-2019(online)].pdf 2019-07-21
6 201921029360-FIGURE OF ABSTRACT [21-07-2019(online)].jpg 2019-07-21
6 201921029360-EVIDENCE FOR REGISTRATION UNDER SSI [21-07-2019(online)].pdf 2019-07-21
7 201921029360-EVIDENCE FOR REGISTRATION UNDER SSI(FORM-28) [21-07-2019(online)].pdf 2019-07-21
8 201921029360-FIGURE OF ABSTRACT [21-07-2019(online)].jpg 2019-07-21
8 201921029360-EVIDENCE FOR REGISTRATION UNDER SSI [21-07-2019(online)].pdf 2019-07-21
9 201921029360-FORM 1 [21-07-2019(online)].pdf 2019-07-21
9 201921029360-DRAWINGS [21-07-2019(online)].pdf 2019-07-21
10 201921029360-COMPLETE SPECIFICATION [21-07-2019(online)].pdf 2019-07-21
10 201921029360-FORM FOR SMALL ENTITY(FORM-28) [21-07-2019(online)].pdf 2019-07-21
11 201921029360-FORM FOR STARTUP [21-07-2019(online)].pdf 2019-07-21
11 Abstract1.jpg 2019-10-18
12 201921029360-POWER OF AUTHORITY [21-07-2019(online)].pdf 2019-07-21
12 201921029360-ORIGINAL UR 6(1A) FORM 26-130819.pdf 2019-11-09
13 201921029360-STATEMENT OF UNDERTAKING (FORM 3) [21-07-2019(online)].pdf 2019-07-21
13 201921029360-Proof of Right [30-11-2020(online)].pdf 2020-11-30