The present invention relates generally to video editing software applications. The present invention relates particularly, but not exclusively, to a video editing system, method and user interface that manages video files of a single scene that has been recorded by multiple cameras from different angles.
Film and/or video productions are created on video editing systems typically by assembling the project from a collection of constituent elements. Video editing systems allow these constituent elements—which include video clips, audiovisual clips, audio clips and associated metadata—to be separately imported and edited before being merged into the final production. In some cases, the separate video clips arise from using multiple different cameras to record the same scene from different angles.
Current video editing systems provide functionality to manage such multi-camera source material. For example, the Applicant's DaVinci Resolve® software allows the user to manually select the various clips that comprise the multi-camera scene and create a “multicam” file therefrom. DaVinci Resolve® utilises each clip's audio track to synchronise the separate clips within the multicam file during editing operations.
It would be advantageous to provide an alternative means for managing multi-camera source material.
Reference to any prior art in the specification is not an acknowledgment or suggestion that this prior art forms part of the common general knowledge in any jurisdiction or that this prior art could reasonably be expected to be understood, regarded as relevant, and/or combined with other pieces of prior art by a skilled person in the art.
According to a first aspect of the present invention there is provided a video editing system including:
an import manager for importing media files into the video editing system;
a user interface; and
a synchronisation engine for detecting imported media files having one or more common attributes and causing the display in the user interface of an indicia for each detected media file
The present invention, at least in preferred embodiments, provides a synchronisation engine that is integrated with a video editing system, and automatically detects files having common attributes (such as the individual files of multi-camera source material) and conveniently displays details thereof in the video-editing system's user interface.
The common attribute may be derived from the imported file itself or from the file's metadata. For example, the common attribute may be timecodes that are common to both files. Alternatively, the common attribute may comprise the time and date of the media files (either alone or in combination with the common timecodes), or the files' audio track (in common with either of the timecodes and time/date). The synchronisation engine may be configured to detect additional common attributes. For example, geographical location can be detected and combined with other detected common attributes such as timecode and/or date and time.
The synchronisation engine may also detect a non-common attribute of two files and combine this with one or more detected common attributes of the files. For example, two files that contain video recorded by different cameras (such information derived from the files' respective metadata) but with overlapping timecodes and/or dates and times, are likely to comprise multi-camera source material.
Preferably, the user interface includes a timeline and a spatially separate media bin display area, the indicias being displayed in the media bin display area. Optimally, the indicias are displayed in the media bin display area in a manner that indicates that they share a common attribute. According to one embodiment, the indicias are vertically distributed in the media bin display area to indicate that the detected media files comprise a multi-camera media clip
Preferably, the synchronisation engine is capable of detecting the loading of one detected media file into an editing control of the user interface and automatically causing the display of indicia in the user interface of other detected media files having the common attribute. In this regard, the editing control may be a timeline.
Preferably, the synchronisation engine is capable of locating a detected media file at a correct position in a timeline relative to another detected media file already present in the timeline and having the common attribute.
According to preferred embodiments, the synchronisation engine executes continuously in the background of the video editing system.
According to a second aspect of the present invention, there is provide a method for managing media files in a video editing system, the method including the steps of:
importing media files into the video editing system;
detecting imported media files having one or more common attributes; and displaying an indicia of the detected media files in a user interface of the video editing system.
According to another aspect of the present invention, there is provided a software product including a computer readable medium storing instructions which when executed by a processor provide the video editing system according to the first aspect of the invention or perform the method according to the second aspect of the invention.
According to a further aspect of the present invention, there is provided a user interface for a video editing system, including:
an editing control;
a panel for displaying indicia of a plurality of media files imported into the video editing system; and
a synchronisation engine configured to detect the loading of one of the media files into the editing control and automatically display in the panel indicia of other media files sharing a common attribute with the media file.
As used herein, except where the context requires otherwise, the term “comprise” and variations of the term, such as “comprising”, “comprises” and “comprised”, are not intended to exclude further additives, components, integers or steps.
Further aspects of the present invention and further embodiments of the aspects described in the preceding paragraphs will become apparent from the following description, given by way of example and with reference to the accompanying drawings, in which:
Video editing system 100 includes a graphical user interface 140 that displays user interface controls for workflows such as video editing, colour correction and project-creation.
Source material is imported into video editing system 100 through an import manager 160. In this regard, import manager 160 accesses suitable operating system 190 APIs to scan local and remote file systems for suitable source material to import into video editing system 100. Import manager 160 also manages any pre-processing of the source material (such as transcoding) that is required before it can be imported into video editing system 100. Once imported, pertinent details of the source material, such as the filename, directory location, length, hardware details, geographical location, time-and-date, and codec, are stored in a database 165. Database 165 is also used by video editing system 100 to store and access details of projects that are created from the imported source material.
Video editing system 100 further includes a synchronisation engine 180. As described below, synchronisation engine 180 implements a ‘live’ synching view that automatically identifies imported media clips that share a common attribute with a selected imported clip and displays those clips in the user interface. According to one embodiment, the video editing system automatically creates a folder (or ‘media bin’) for the multiple media clips sharing the common attribute and displays the media clips in that folder.
For example, the selected media clip could be in the process of being viewed or edited, in which case the synchronisation engine 180 displays all other media clips that share a common attribute with the selected media clip. This kind of ‘live’ view of related (i.e sharing a common attribute) media clips conveniently shows what clips are available at a particular point in time, and for how long those related clips are available. The live view also allows the related media clips to be quickly accessed and edited.
An exemplary algorithm executed by synchronisation engine 180 to provide the live synching view will now be described by reference to
The process commences at step 200. At step 210, a media file is imported into video editing system 100. Import manager 160 provides suitable user interface controls for importation. For example, import manager 160 provides a control that allow files to be dragged and dropped from their location in the computer's file system into a project paradigm provided by video editing system 100. For example, video editing system 100 may allow the user to create folders (or “bins”) in a directory hierarchy (or “media pool”), to which selected media files can be dragged and thus imported into the video editing system.
At step 220, synchronisation engine 180 parses the imported media file and its metadata.
At step 230, synchronisation engine 180 attempts to match the imported media file's timecode information with the timecodes of other media files previously imported into video editing system 100. As known to those skilled in the art, timecodes are generated by a video camera contemporaneously with video capture and are used to identify precise locations in the captured video. According to the SMPTE standard, timecodes are generated as 32-bit numbers, each representing hour, minute, second and frame.
Identifying a sequence of common timecode values in two different files, each containing video recorded by a distinct camera (which is apparent from a camera identifier field present in the files' metadata) suggests that the files' underlying video is the same scene filmed by different cameras, potentially from different angles.
In the event that there are no common timecode values between the newly imported file and the previously imported files, the method proceeds to step 270 (see below).
In the event that the timecode of the two media files is matched (which may occur if there are overlapping timecode values), the method proceeds to step 240, at which the synchronisation engine 180 attempts to match the date and time information present in the imported file's metadata with corresponding metadata of previously imported files. Date and time information is typically included in the video file using the camera's own internal clock. It is necessarily not as precise as timecode data and is thus used as a secondary matching criteria.
In the event that time and date metadata can be matched, it is likely that the two files comprise a multi-camera source as there are overlapping timecodes in video recorded at around the same time and date. In this scenario, a related clip group is created (if necessary) and the newly imported media file is assigned to the group (step 250). The related clip group contains all of the files that have been detected as sharing the common attribute (such as common timecode values and/or date and time). As described below, the related clip group is used to trigger user interface functionality that automatically displays all of the clips in the group in response to the user interacting with one of the clips.
In the event that time and date metadata cannot be matched, the method proceeds to step 260, at which the synchronisation engine performs an audio comparison routine on any audio track present in the newly-imported file and those of the previously-imported files. In the event that the comparison routine indicates commonalities between the two audio files (which is reflective of the fact that the files' underlying video is of the same scene filmed by different cameras), the method returns to step 250, at which the newly imported media file is assigned to an appropriate related clip group.
Other matching algorithms can be used with the present invention. For example, files could be matched solely using timecodes or solely using date/time information. Other algorithms utilise various combinations of matching criteria such as timecode and audio, or date/time and audio. Other matching criteria, such as geographical coordinates or other location information, can also be used.
The Applicant's DaVinci Resolve® is an example of a video editing system that is suitable for implementing embodiments of the present invention.
In the embodiment illustrated in
The clip indicias are displayed in synch bin display area 620 in a manner that indicates that they are synchronised and thus share one or more common attributes. In the illustrated embodiment, the indicia of the clips recorded by the four different cameras (as determined by the matching algorithm) are displayed in a vertically distributed manner in synch bin display area 620.
In the embodiment of the live synching view illustrated in
Synch bin display area 620, not only displays the current clip 630 (namely the clip that is present in the timeline 320 and source viewer 310), but also automatically displays any other clips in current clip 630's related clip group. As noted above, in the illustrated embodiment, the related clip group comprises recordings of the same scene by different cameras. These related clips are shown in
Related clips 630, 640, 650 are displayed in synch bin display area in accordance with the metadata that was used to detect the common attribute. For example, if clips are detected as having common timecode values, these are used to display the clips in a manner that illustrates the commonality. In the embodiment shown in
At a later point in time, clips 630 and 640 overlap (for example by having common timecodes or audio tracks), indicating that cameras 1 and 2 were simultaneously and independently recording the same scene. At a yet later point in time, all three clips 630, 640 and 650 overlap, indicating that each of camera 1, camera 2 and camera 3 was recording the same scene. This temporal information is displayed by offsetting the commencement points of clips 640 and 650 relative to clip 630.
The user can drag a clip (in
At the time shown in
As shown in
As noted above, once clips are displayed are displayed in synch bin display area 620, they can be suitably dragged to timeline 320 and edited in the usual way. This is illustrated in
Importantly, the synchronised temporal relationship between clips 910 and 920 (as detected by the matching algorithm) is preserved when the clips are dragged into the timeline 320. This allows for camera switches to be seamlessly performed. In other words, when the project cuts from clip 910 to clip 920 and back to clip 910 (as illustrated in
The synchronisation engine 180 of the present invention operates seamlessly with the other editing features provided by video editing system 100. This is illustrated in
Computer system 1200 also includes a main memory 1206, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 1202 for storing information and instructions to be executed by processor 1004. Main memory 1206 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1204. Such instructions, when stored in non-transitory storage media accessible to processor 1204, render computer system 1200 into a special-purpose machine that is customized to perform the operations specified in the instructions.
Computer system 1002 further includes a read only memory (ROM) 1208 or other static storage device coupled to bus 1202 for storing static information and instructions for processor 1204. A storage device 1210, such as a magnetic disk or optical disk, is provided and coupled to bus 1002 for storing information and instructions including the video editing software application described above.
The computer system 1000 may be coupled via bus 1002 to a display 1212 (such as an LCD, LED, touch screen display or other display), for displaying information to a computer user, such as the graphical user interface described and illustrated above. An input device 1214, including alphanumeric and other keys, may be coupled to the bus 1202 for communicating information and command selections to processor 1204. Another type of user input device is a cursor control, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1204 and for controlling cursor movement on display 1212.
According to one embodiment, the techniques herein are performed by computer system 1200 in response to processor 1204 executing one or more sequences of one or more instructions contained in main memory 1206. Such instructions may be read into main memory 1206 from another storage medium, such as a remote database. Execution of the sequences of instructions contained in main memory 1206 causes processor 1204 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The terms “storage media” or “storage medium” as used herein refers to any non-transitory media that stores data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1210. Volatile media includes dynamic memory, such as main memory 1206. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
Computer system 1200 also includes a communication interface 1216 coupled to bus 1202. Communication interface 1216 provides a two-way data communication coupling to a network link 1218 that is connected to a communication network 1220. For example, communication interface 1016 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, etc. As another example, communication interface 1016 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
It will be understood that the invention disclosed and defined in this specification extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2019902773 | Aug 2019 | AU | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/AU2020/050795 | 8/3/2020 | WO |