Topic: Adding ability to save a "Project" file would be very helpful

Adding the ability to save a "Project" file that would include all imported or captured video files, key images files, and all user selections including interface orientation, video annotations and settings would be hugely helpful from both a user and a developer standpoint.  This file would not include any settings under "Options" as these are already stored as application settings.

It would save a huge amount of time for the user as they could simply open a project file and the last session as saved would appear and they could continue their work from where they left off. 

From the developer standpoint it would allow problems to be more quickly identified through the forwarding of a problem "Project" file.

Your File Menu could then have the following options:

Open Project... - Opens Kinovea Project

Open Video File... - Opens video file into active window (currently can't replace first video in two playback window mode even if first window is active)

Recent Video Files... - Shows recently opened video files and opens selected video file into active window (currently can't replace first video in two playback window mode)

Close xxxxx.mov window
Close yyyyy.mov window

Save... - No longer needed as opened video files are stored in project file.  Saving modified videos with annotation data is already offered on the playback window where all other output options are offered.  There may not be the need for saving the annotation and drawing objects and key images separately as they are stored in the "Project" file.  You could have the save video function on the playback windows give the user the option to save the modified video with or without annotations and drawings.

Save Project... - Saves Kinovera Project, would eliminate the old save function as key videos and kva data stored in project file

Export to Spreadsheet

Load Key Images Data...  No longer needed as kva data included in the "Project" file

Quit... - Ends program and asks user to save "Project" file if changes have been made

Re: Adding ability to save a "Project" file would be very helpful

Thanks for the feedback!
I have considered the concept of "projects" before but felt it was adding a layer of complexity that wasn't really required.

I very much like the idea of being able to launch the program back exactly where you left it. There are some pieces already in there that should make this not too complicated. In particular the crash recovery mechanism is able to restore the state of the video + analysis after a crash even if it wasn't explicitly saved. This works through a special field in the KVA file that references the video it was created on.

From reading your post I feel that the KVA file with the video reference is already matching the concept of "project" that you describe? A key missing feature is the ability to open a KVA file and automatically load the video it references. Also it would need to push back the state of zoom/scale, mirror, magnifier, working zone and current position of playhead.

"Load key image data" is important in itself to be able to load several KVA files onto a single video. This is useful for comparison purposes for example, or if you have a standard KVA with template lines or other reference material.

Regarding opening a video in the active window, I haven't received a lot of feedback about this. You can replace the first video by drag & drop from the explorer. The algorithm tries to make things work intuitively based on the state of the screens, especially for the case where there is an empty screen or if the single screen is a capture one. But yeah, when both screens are filled, the "open video" menu could take the active one into account. Although I'm not sure if replacing the active one is the most intuitive, you could argue that the user is working on it so it might be better to replace the other one. I don't feel the active screen is a really safe hint to rely on here. I agree that the current way, replacing the second screen, is not perfect.

The file explorer should switch to the directory containing the last opened video so if the user really wants to control where to open the next file when the two screens are already used, the drag & drop method should be the easiest and safest way.

Re: Adding ability to save a "Project" file would be very helpful

So after thinking a bit more about this I feel that the most important point is to properly reload the screen state when reloading a video analysis.

I propose to put more of the screen state in the KVA file: working zone boundaries, playback speed, pan, zoom, scale, aspect ratio, mirror, magnifier. These are all things we would want to reload when sharing the analysis with someone. Not sure about playback position.

Most of these are actually already living alongside the others, they are just not serialized in the output.

Adjustment for high speed video, coordinate system calibration and lens distortion calibration are already stored and reloaded.

Depending on how the KVA file is loaded, decide to restore or discard this screen state:
- if side-loaded automatically as part of a video launch (filename match): restore.
- if loaded as part of the crash-recovery mechanism: restore.
- if loaded as part of program state restoring on launch (not implemented yet): restore.
- if loaded explicitly after the video was already independently loaded: discard.
- if loaded automatically by being player.kva in the application data directory: discard.

The second point is to reload the complete program state on launch. This includes number and type of screens, which video or camera should go in which screen, synchronization, superposition, etc. This is a different feature built on top of the other and I feel has lesser priority.

Re: Adding ability to save a "Project" file would be very helpful

Joan, thanks for your feedback.  I do think that implementing the "Project" File concept is actually simplifying the process of using the software.  Instead of having to remember which specific videos partner with specific kva files to get a session restarted you simply have to open up your project file.  Having to always keep track of specific kva files and video files and import them repeatedly to continue with a specific analysis sessions adds a layer of complexity or at least administration for the user that is totally removed by having an all inclusive project file.  The software becomes very straightforward, you import or record videos, you perform analysis work on the player windows, you generate output from the player windows, and you save your session as a project file.

Re: Adding ability to save a "Project" file would be very helpful

For your current kva files, you could call these "Template" files and these could be saved and opened on the player window and be generated from a particular video frame which has saveable analysis objects associated with the frame.  Currently the kva files are multiple video frame edits that are fixed on specific frame numbers which may have no relevance from video file to video file however you may want to apply a certain template to a particular frame in another video.  Simplifying to a single frame kva template would be more meaningful.  So for example a baseball swing during the load phase may have three angles measurements, a distance measurement, and a text comment that are common for analyzing the load phase of a baseball swing.  A template of these objects could be saved the first time and subsequently imported for other swing videos for the load phase of the swing which would most likely occur on different frames numbers in different videos.  So you would have a Save Template button and a Open Template button on each player and it apply to the current frame in the viewer.

Re: Adding ability to save a "Project" file would be very helpful

I just now understand that a kva file is linked with a video file so if you open the video file the associated kva file is opened with it.

I still think that a single Project file that incorporates all video files, associated kva information, and player and capture window configuration and user settings for a particular session would be the simplest and most efficient way to manage analysis files for users and developers.  As previously mentioned, I would use Template files accessed on each player to manage frame specific kva information that would be used from analysis to analysis.

Sorry for the rambling...  I am a new user of your program and I am not intimately familiar with the program and the history of it's development.  I am very impressed with what has been accomplished.