Create an application for Windows that will take a video file or DVD and run several operations to gather basic data about its content, such as number of shots and length of shots, and do some basic analysis of that data, such as showing the average shot length for a user-defined segment of the video. The application must also be able to gather and display thumbnails for frames of the video at certain places, such as gathering a thumbnail from the beginning, middle, and end of each shot.
The program must identify cuts between shots automatically, without user input, to a reasonable accuracy. It should also have adjustable parameters for calculating whether certain image or sound changes are actually a cut as opposed to a camera move or something moving on or off of the screen. It also needs to have a mode to allow a user to manually review its decisions with a relatively easy workflow--perhaps something similar to the way OCR programs can be run automatically and then let you manually review their guesses on harder-to-parse words.
In the context of this bid, "cuts" means not only straight cuts, but also other types of transitions such as fades and wipes.
Although I have requested a stand-alone Windows application, I will also consider bids that achieve these same goals by creating an add-in to a commercial editing program, such as Adobe Premiere or Final Cut Pro. An add-in to Final Cut Pro would obviously be only Mac OS and not any Windows OS, and would be the only type of Mac program that would be acceptable. Any add-in would have to be in compliance with the licensing terms of the commercial application.
There are many publications on strategies for achieving cut detection. I can provide some on request. If you provide a small number of specific citations, I may be able to get them and send them to you.
it must have the following features:
--have a stand-alone installer and uninstaller
--the uninstaller must remove all files, registry entries, and any other materials installed or created by the program from the computer (excluding data or thumbnails output by the user from the program)
--accept video input using all of the most common media containers, video codecs, and audio codecs. We will specify a list before final terms are agreed to.
--work both with input from video files and input directly from a copy-protected DVD
--output data about shot statistics in .xls, .csv, and tab-delimited formats
--display summaries of basic data findings such as average shot length and number of shots in main window
--quickly calculate the number and average length of shots between two user-specificed parameters (e.g. number of shots longer than 15 seconds but shorter than 85 seconds)
--provide a way to easily display and print reports in a table that lists every shot in the film, its start time, its end time, its length, where it is in the film (in terms of it is the 1st shot, the 3rd shot, the 125th shot...), and a thumbnail of the shot (with an easy way for the user to select the size with a slider and at least 10 levels of size, the largest being a shot that is 6 inches across)
--the report is sortable by any field and any of the above-listed characteristics can be easily included or excluded by the user
--thumbnails accurately display the input video's proper aspect ratio
--thumbnails are actual frames from the input video, and look as such (except when resized, their resolution can change)
--the process for reviewing possible cuts must provide a way to remove the marked cut, adjust its location on a frame-by-frame basis, and easily play a user-defined section around the cut (e.g., 2 seconds before and after) as normal video in correct aspect ration, speed, etc so the user can see that segment in motion
--in review mode, the user must be able to advance to the next cut to be reviewed with one button click and also one keyboard shortcut or keypress
--the user must be able to watch the video at various speeds backwards or forwards to look for and easily mark cuts that were totally missed by the application
--as the user adds, deletes, or changes cuts, the display of basic shot statistics should automatically update
--has at least 5 levels of undo via control-z for all major features
--has typical Windows menus such as file, tools, help, and has an options window to change program options
--it should detect fades, wipes, and ideally dissolves as well as traditional straight cuts
--it will ideally be able to detect and mark whether there is continuous audio across a visual cut, and very ideally be able to make an intelligent guess as to whether that audio is dialogue vs. music / sound effects. This may be achievable in part by analyzing Dolby channel information, because dialogue is usually primarily center channel, whereas other sound is not.
--display of the first, middle, or last frame in each shot in at least two formats: 1) a ribbon, with each frame to the right of the last (this is not every frame in the video, but just one from each shot), 2) a thumbnail grid view
--both views have re-sizeable thumbnails to allow more or fewer thumbnails on the screen
--ribbon view has a slider to scroll the ribbon left or right, and also a hand tool to grab and push/pull it left or right, and also keyboard shortcuts to move it left or right various amounts
--if user changes application window size, display should change to best fit the most frames onscreen
--toolbar has a button to intelligently guess a 'best fit' layout for the current video
--user can easily adjust the number of thumbnails viewable at once
--each shot can be tagged by the user, with at least 20 tags per shot
--tags will be stored in a indexable format, the program will index them and make it easy to find all shots with certain tags
--tag search must support the following for search terms: must include term, may include term, cannot include term, all of these in any combination for multiple terms, must/cannot include term indicated by + or - immediately before term
--results of tag search displayed in thumbnail format
--statistical data on results of tag search automatically displayed
--main window should have space for user-defined buttons to quickly add tags to all selected shots, with space for at least 10 buttons
--tag buttons only show if user has defined them (the non-defined buttons aren't displayed)
--application supports shift-click and control-click for selecting a range or multiple specific shots
--any feature that can apply to the whole video must apply to any selected number of shots (includes showing and printing reports and displaying basic statistical data)