Kinovea reference manual

Welcome to the manual for Kinovea.

Kinovea is a video annotation tool designed for motion analysis. It features utilities to capture, slow down, compare, annotate and measure motion in videos.

For a single-page overview of the features of Kinovea you may consult the Features page on the website.

Tip

This manual can be used offline: download the manual (zipped web pages).

The sections below and the table of content in the sidebar should let you access the documentation for your topic of interest. You can also use the search function in the top left corner.

_images/userinterface.jpg
User interface

Description of the main window, workspaces and the preference pages.

_images/observation.jpg
Observation and comparison

Functions to control video time, image aspect, and synchronize two videos.

_images/annotation.png
Annotation

Tools to annotate videos with drawings, text, highlight key moments and use posture references.

_images/measurement.png
Measurement

Functions to calibrate space and time, measure intervals, positions, distances, angles, and track kinematics.

_images/capture.jpg
Capture

Subsystem to capture, delay, and record live cameras.

_images/export.png
Export

Functions to save videos and measurements for other applications.

Miscellaneous topics

Various topics related to programmatically controlling Kinovea and general information about the project.

This manual is maintained by volunteers. If you find something that is confusing, wrong, or otherwise needs to be edited, let us know.

Main window user interface

The Kinovea main window comprises the following areas:

_images/mainwindow.png

Main toolbar

The main toolbar provides quick access to screen organization functions.

Open Open

Opens a video in a playback screen.

Save Save

Saves annotations to the current KVA file.

Explorer Thumbnail explorer

Closes screens and displays the thumbnails panel

Playback Playback screen

Opens one playback screen.

DualPlayback Dual playback screen

Opens two playback screens.

Capture Capture screen

Opens one capture screen.

DualCapture Dual capture screen

Opens two capture screens.

Hybrid Capture and Playback

Opens one playback screen and one capture screen.

Explorer panel

The explorer panel is found on the left hand side of the main Kinovea window. It provides access to the file system and connected cameras.

To show or hide the explorer panel use the menu View ‣ Explorer panel, or the shortcut F4.

The explorer panel contains the following tabs:

FileExplorer

File explorer

ShortcutExplorer

Shortcut explorer

CameraExplorer

Camera explorer

File explorer

The file explorer shows a tree view of the folders on your computer. The bottom part of the tab shows a list of supported files found in the selected folder.

Shortcut explorer

The shortcut explorer shows a tree view of folders that were bookmarked as favorites.

To add a shortcut to a folder in this list, right click the selected folder in the file explorer tab or in the shortcut tab and choose Add to shortcuts.

You can also use the Shortcut toolbar in the shortcut panel to add and remove shortcuts.

Camera explorer

The camera explorer shows a list of the cameras currently connected to the computer and a history of recently recorded videos.

The Manual connection button opens a dialog to manually add network cameras or camera simulators.

Thumbnails panel

The thumbnails panel is displayed when there are no playback or capture screens loaded. It shows thumbnails corresponding to the active tab of the explorer panel.

_images/thumbnails.png

In the case of the file explorer and shortcut tabs, it displays thumbnails of the files in the selected folder. In the case of the camera explorer it displays thumbnails of all the cameras connected to the computer.

Size buttons

_images/sizebuttons.png

The size buttons change the size of the thumbnails.

Explorer buttons

_images/explorerbuttons.png

The explorer buttons change the active tab in the explorer panel. The rightmost button enable or disable full screen mode.

Content preview

Thumbnails of video files contain multiple frames of the video. The extra frames can be viewed using the sections at the bottom of the thumbnail.

_images/thumbnailpreview.png

Metadata overlay

Some metadata can be overlaid on the thumbnails of videos or images. To configure which metadata is overlaid right click the background of the explorer to bring up the context menu.

_images/metadataoverlay.png

Enabling the metadata Kva file will make it display “kva” on the thumbnail when annotations exist as a sidecar file to the main video.

Screens panel

The screens panel replaces the thumbnails panel when one or more screens are opened. When two screens of the same type are opened, joint controls are added at the bottom.

Adding and removing screens can be done by using the main toolbar, the menu View or the close buttons on the screens themselves.

To swap the screens use the menu View ‣ Swap screens or the swap button in the joint controls.

More details about the playback screen user interface can be found at Playback screen user interface

More details about the capture screen user interface can be found at Capture screen user interface

For a description of the individual screen types see Playback screen user interface and Capture screen user interface

Workspaces

A workspace in Kinovea is a specific arrangement of screens and their content.

When Kinovea is started using a workspace it will reload the screens, reopen videos and cameras, and restart replay folder observers.

Default workspace

You can save the current arrangement of screens as the default workspace by using the menu Options ‣ Workspace ‣ Save as default workspace. The next time Kinovea starts it will read this workspace and reload the videos and cameras accordingly.

To delete the default workspace and make Kinovea starts normally on the thumbnail explorer use the menu Options ‣ Workspace ‣ Forget default workspace.

Exporting workspaces

Workspaces can be exported to separate XML files using the menu Options ‣ Workspaces ‣ Export workspace. To start Kinovea using an explicit workspace file it must be passed as an argument to the command line.

See also: Command line options.

Running multiple instances of Kinovea

It is possible to run multiple Kinovea at the same time on the same computer. This can be used to record more than two cameras, play more than two videos at the same time, or create more advanced setups for capture and replay or instrumentation scenarios.

Note

By default each instance has its own set of preferences separate from the others. This behavior is controlled by the option under Preferences ‣ General ‣ Instances have their own preferences. This option can only be changed from the first instance of Kinovea.

Instance name

Each instance is assigned a number in sequential order of launch and by default this number becomes the name of the instance.

The name of the instance can be seen in the window title bar in square brackets.

_images/instancename2.png

It is possible to customize the name of instances by passing the new name in the -name argument on the command line.

kinovea.exe -name "MyInstance"
_images/instancenamecustom.png

See also: Command line options.

Tip

Command line arguments can also be specified by creating a Windows shortcut on Kinovea.exe and editing the Target field in the shortcut properties.

Preference pages

The Kinovea preferences contain settings to control how Kinovea behaves.

The various pages are reached by clicking on the buttons at the top of the dialog. Each page may contain multiple tabs.

The following preference pages are available:

General

General

_images/general_general.png
Language

This option lets you change the language of Kinovea’s user interface.

The translations are contributed by the community. If you would like to contribute please check the translation project at Weblate.

Number of files in history

This options controls how many recently opened files and replay folders are remembered and listed under the menu File ‣ Recent.

Allow multiple instances of Kinovea

When this checkbox is checked it is possible to run multiple Kinovea at the same time. This can be used to record more than two cameras or play more than two videos at the same time. Each instance is identified by a name or a number.

See also: Running multiple instances of Kinovea.

Note

Video synchronization does not work across different instances.

Instances have their own preferences

When this checkbox is checked each instance of Kinovea will maintain its own preferences, independently of all other instances. This option is only available in the first instance started.

Playback

General

_images/playback_general.png
Import image sequences as videos

When this option is enabled and an image file is opened, Kinovea will try to detect an image sequence by looking for consecutive numbers in the name of other files of the same folder. If an image sequence is detected, all the image files will automatically be loaded and the whole collection interpreted as a video.

Example of file names interpreted as a sequence:

  • image_001.png, image_002.png, image_003.png, etc.

  • test01.jpg, test02.jpg, test03.jpg, etc.

The numbers can be anywhere in the file name. Aside from the numbers the rest of the name should be identical for all files. The amount of leading zeroes in the numbering scheme should be consistent between all files of the sequence.

A gap or a change in the numbering system will be interpreted as the end of the sequence. The detection is bidirectional: any file can be used to load the sequence, the resulting video will always start at the file with the lower number found.

Update image during time cursor movement

When this option is not checked the video display will be paused when manually moving the timeline cursor.

Default aspect ratio

This option defines the default image aspect ratio configured any time a video file is opened. It is the same as manually configuring the menu Image ‣ Image format.

The following options are available:

  • Auto detection

  • Force 4:3

  • Force 16:9

The Auto detection option uses the image size and the pixel aspect ratio found in the video file metadata to calculate the image height. The other options will change the height of the video to match a 4:3 or 16:9 aspect ratio.

Always deinterlace when opening a new video

This option forces the deinterlacing mechanism to be enabled for all opened files. It is the same as manually configuring the menu Image ‣ Deinterlace.

Default annotations file

This option lets you point to a .KVA file containing video annotations that will be automatically loaded when any video is opened.

Other annotations files can still be loaded on top of the video by using the sidecar file method or through the menu File ‣ Load annotations. They will be merged with each others.

See also: Saving and loading annotation files.

Memory

_images/playback_memory.png
Cache memory allocated to each playback screen

The cache memory is used to load the video content in system memory and speed up navigation. When the active video section (working zone) fits in the cache memory it will be automatically loaded into this cache. If the video section does not fit in the cache the memory will not be consumed.

When using side by side comparison each playback screen can use at most half the memory amount configured.

In the case of multiple instances of Kinovea, each instance has its own cache memory.

Units

_images/playback_units.png

Tip

The unit for length is defined during the calibration process.

Time

This option controls the format of all time-related information displayed in the program 1. It is used in the timeline position and duration, in chronometers and clocks, and in exported files.

The following options are available:

Format

Example

Description

[h:][mm:]ss.xx[x]

1:10.48

Textual timecode.

Frame number

1762

Rank of the current frame.

Total milliseconds

70480

Integer number of milliseconds.

Total microseconds

1284

Integer number of microseconds.

Ten thousandth of an hour

904

Ten thousandths of an hour

Hundredth of a minute

542

Hundredths of a minute

[h:][mm:]ss.xx[x] + Frame number

1:10.48 (1762)

When using textual timecode if the real time framerate is higher than 100 fps, thousandths of seconds are displayed. Hours and minutes are only displayed when necessary.

Note

The time starts at the time origin. The time origin can be configured to be anywhere in the video. Video locations that are before the time origin are displayed as negative numbers. If the time origin is not manually defined, the time origin is automatically set to the start of the current video section.

Speed

The unit for speed is used in the trajectory tool and in the Linear kinematics window when setting the measurement display option to Speed, Horizontal velocity or Vertical velocity. It is also used in the Angular kinematics window when using Tangential velocity.

The following options are available:

Unit

Symbol

Meters per second

m/s

Kilometers per hour

km/h

Feet per second

ft/s

Miles per hour

mph

Note

If no spatial calibration has been performed the speed unit will automatically be Pixels per second (px/s).

Acceleration

The unit for acceleration is used in the trajectory tool and in the Linear kinematics window when setting the measurement display option to Acceleration, Horizontal acceleration or Vertical acceleration. It is also used in the Angular kinematics window when using Tangential acceleration, Centripetal acceleration or Resultant acceleration.

The following options are available:

Unit

Symbol

Meters per second squared

m/s²

Feet per second squared

ft/s²

Note

If no spatial calibration has been performed the acceleration unit will automatically be Pixels per second squared (px/s²).

Angle

The unit for angle is used in tools measuring angles and in the Angular kinematics window when setting the data source option to Angle or Total displacement.

The following options are available:

Unit

Symbol

Degrees

°

Radians

rad

Angular velocity

The unit for angular velocity is used in the Angular kinematics window when setting the data source option to Angular velocity.

The following options are available:

Unit

Symbol

Degrees per second

deg/s

Radians per second

rad/s

Revolutions per minute

rpm

Angular acceleration

The unit for angular acceleration is used in the Angular kinematics window when setting the data source to Angular acceleration.

The following options are available:

Unit

Symbol

Degrees per second squared

deg/s²

Radians per second squared

rad/s²

Custom length unit

This option defines the name and symbol for an additional length unit. The built-in length units are: millimeters, centimeters, meters, inches, feet and yards.

This custom length unit will appear at the bottom of the length unit drop down in the spatial calibration dialogs.

The scale factor between pixels and this unit is defined during the calibration process in the same manner as for other length units.

_images/playback_units_custom.png

Using the custom length unit to add micrometers to the list of built-in length units.

Footnotes

1

With the exception of the time axis in the kinematic analysis dialogs. In these dialogs the time is always displayed numerically, either in milliseconds or normalized.

Drawings

General

_images/drawings_general.png
Show drawings when video is playing

This option controls whether drawings are visible or not when the video is in continuous playback.

Enable coordinates filtering

This option controls the filtering of spatial coordinates for trajectories and tracked drawings. Due to the digitization process the raw coordinates are noisy and the resulting quantities, especially derivatives like speed and acceleration, are less accurate than they could be. Carefully filtering the coordinates remove a lot of this noise and provide more accurate measurements.

You can uncheck this option if you would rather export the raw coordinates and perform the filtering yourself.

Tip

For more in-depth information on the exact filtering approach and algorithms used, refer to the About page of the Linear kinematics window.

Enable custom tools debug mode

When this checkbox is ticked custom tools will display extra information about the name and relations of points, handles and segments. This option can be used by tool authors to facilitate design.

See also: List of tools.

Opacity

_images/drawings_opacity.png

The options on this tab control the default visibility of drawings. Drawings can be customized independently by bringing their context menu and selecting options in the Visibility sub menus.

In the most general case a drawing’s visibility over time follows the following pattern:

_images/opacity.png
Visible for the entire video

When this option is checked new drawings are visible for the entirety of the video. The opaque duration and fading duration options are ignored.

Maximum opacity

This option controls the opacity used during the opaque section. A value of 100% means the drawing will not let the background show through. A value less than 100% means the drawing will be somewhat transparent.

Opaque duration

This option controls how long the drawing stays at its maximum opacity level before fading out. This section starts at the keyframe onto which the drawing was added.

Fading duration

This option controls the duration of the ramps before and after the maximum opacity, until the drawing becomes completely invisible.

Tracking

_images/drawings_tracking.png

The options on this page control the default parameters for trajectories and drawing tracking. Trajectories can also be configured independently by bringing their context menu and going in their configuration window. The tracking parameters of other drawings cannot be modified after creation.

Object window

The object window size defines the size of the patch of image around the tracked point that is being looked for in other frames. This should be set to be as small as possible in order to avoid including the background in the tracked patch.

Search window

The search window size defines the area in which the point is looked for. This should be large enough to compensate for the object change of position from one frame to the next. However search window too large can lead to the tracking algorithm picking a different object in another part of the image, if this object looks similar to the tracked object.

Tip

Use the trajectory tool configuration dialog to visually figure out the appropriate size of the object and search windows.

Capture

General

_images/capture_general.png
Record uncompressed video

When this option is checked the video are recorded without compressing the video frames to JPEG first. When this option is unchecked the video frames are compressed to JPEG using high quality settings to retain fidelity.

This option can be used to minimize dropped frames, by trading off space for speed (due to the JPEG settings used, image quality shouldn’t really be much impacted by this option). When using a fast storage medium it can be faster to store the large uncompressed images compared to the time it takes to compress them.

For image snapshots the compression depends on the file format.

Note

When configuring cameras to use MJPEG streams this option is ignored. The MJPEG streams are always saved as-is in their container format.

Note

When configuring cameras to use raw Bayer pattern images you must enable this option to be able to reconstruct the color information at playback time.

Warning

Not all video players can play back uncompressed files.

Display framerate

This option defines the frequency at which the camera images are updated in the capture screen.

While recording the computer resources are shared between displaying the camera stream and recording it to the storage medium. The highest priority is always given to recording but lowering this value can help reduce the overall load on the computer and improve recording performance.

Image format

This option defines the default image format used when saving snapshots.

The following image formats are available:

  • JPG

  • PNG

  • BMP

Video format

This option defines the default video container format used when recording compressed videos. All videos are compressed using an MJPEG codec.

The following container formats are available:

  • MP4

  • AVI

  • MKV

Uncompressed video format

This option defines the default video container format used when recording uncompressed videos.

The following container formats are available:

  • MKV

  • AVI

Default annotations file

This option lets you point to a .KVA file containing annotations that will be automatically loaded when any camera stream is opened.

Other annotations files can still be loaded on top of the camera stream by using the menu File ‣ Load annotations. They will be merged with each others.

See also: Saving and loading annotation files.

Memory

_images/capture_memory.png
Memory allocated for delay buffers

This option controls the amount of memory used to remember old frames, in the context of the delayed view of the camera feed. By extension, this option defines the maximum delay configurable in the capture screen. The maximum delay is based on image size, image format and capture framerate.

When using two capture screens at the same time each screen uses half the memory amount configured.

In the case of multiple instances of Kinovea, each instance has its own delay buffer memory.

Warning

Unlike the cache memory in the playback screen, this amount of memory is always allocated and used as soon as a capture screen is opened.

Recording

_images/capture_recording.png
Recording mode and delay

The recording mode option defines how the recording sub-system interacts with the delay buffer to create the output video.

When the camera transmits a new frame it is always put in the delay buffer and the recording sub-system always takes frames from the delay buffer to create the output video.

Camera

When using this recording mode the delay value set in the capture screen is ignored.

Recording is performed on the fly, the saved frame is always the most recent frame sent by the camera.

Tip

If you do not require recording of delayed images this option can result in slightly better performances than the Delayed method.

Delayed

When using this recording mode the delay value set in the capture screen is taken into account.

Recording is performed on the fly, the saved frame is taken from the delay buffer based on the delay value.

This can be used to record actions happening before the moment the record button is hit or triggered.

Retroactive

When using this recording mode the recording is not performed on the fly. Instead, at the end of the recording process, when clicking the stop recording button or when the maximum recording duration is reached, the camera feed is paused, the delay buffer is frozen, and the video file is created all at once.

The delay value is taken into account for creating the recording.

This mode offers the best recording performances and minimizes dropped frames, at the cost of a reduced maximum length for created videos and a temporary freezing of the camera feed.

Tip

The maximum length of recorded videos using this recording mode depends on the size of the delay buffer. This can be configured from the Memory preference page.

High speed cameras

The options in this group let you alter the framerate written in the metadata of the output file. This influences the amount of resources required to replay the file and the apparent speed of the action.

A camera might be capable of producing and transmitting 1000 frames per second but the computer will not be able to play the file back at that speed and the monitor won’t be able to refresh itself fast enough either. To work around this problem it is usual to reduce the framerate of the output file to a more typical one. Recording devices normally apply this transformation automatically. This results in a video that appears to be in slow motion.

Framerate replacement threshold

This option controls the framerate from which the output file is modified to use a lower one.

If the camera is configured to send images at a higher framerate than this value, the actual framerate stored in the file metadata will be the replacement framerate. If the camera is configured to send images at a lower framerate than this value, no change will happen.

Replacement framerate

This value defines the final framerate written in the file metadata when the framerate configured in the camera is above the threshold.

Image naming

_images/capture_imagenaming.png

The options on this page let you configure the automated naming system for image snapshots of the camera stream.

The final path and file name is created by concatenating the Root, Sub directory and File values. Each field can contain special macros referring to context variables that are automatically inserted in the final path.

If no context variable are used at all, the file naming system will prepare the next recording by automatically incrementing a counter and appending a number to the file name.

If the computed value result in the same name as an existing file the capture screen will prompt for overwrite confirmation.

To view the list of available context variables click the % button next to the Sub directory or File fields.

The following context variables are available:

Macro

Description

%year

The current year

%month

The current month as a number from 01 to 12.

%day

The current day of the month from 01 to 31.

%hour

The current hour from 00 to 23.

%minute

The current minute from 00 to 59.

%second

The current second from 00 to 59.

%date

The current date in the format “YYYYMMDD”.

%time

The current time in the format “HHMMSS”.

%datetime

The current date and time as “YYYYMMDD-HHMMSS”.

%camalias

The camera alias.

%camfps

The configured framerate for the camera.

%recvfps

The framerate really received from the camera.

%%

This is replaced by an empty string.

Anything that is not exactly part of a macro is copied verbatim to the output. Some examples assuming the current date and time is October 20th, 1968 at 16:00:00 (4 PM):

%year-%month-%day: 1968-10-20.
%hour-%minute-%second: 16-00-00.
%datetime: 19681020-160000
%date_text: 19681020_text
%date-%camalias: 19681020-mycamcorder

Note

If you want to use a completely static file name and bypass the automated counter increment for consecutive recordings, use the %% macro variable. Be aware that this will require you to either enter the filename manually for every recording or overwrite an existing file.

Video naming

_images/capture_videonaming.png

The options on this page let you configure the automated naming system for video recordings of the cameras streams.

The options are similar to the ones in Image naming.

Warning

Avoid using the Windows system drive as a target for camera recording to minimize concurrent access and resource sharing.

Tip

To improve performances in dual recording scenarios use two different physical storage mediums for the left and right cameras.

Automation

_images/capture_automation.png
Audio trigger
Enable audio trigger

When this option is checked Kinovea measures the volume level on the microphone and triggers the start of the recording when this volume goes above the configured threshold.

Note

The audio trigger mechanism can be disarmed for individual cameras from the capture screen controls.

Input device

This option lets you select which microphone is used to trigger recordings.

Tip

Ensure that Kinovea can access your microphone by opening Windows Sound settings, going to Microphone privacy settings and turning on Allow apps to access your microphone.

Trigger threshold

The trigger threshold defines the volume level required to trigger recordings. You should see the black line moving laterally as the microphone picks up sounds. The vertical red line represents the trigger level.

The counter on the right is incremented each time the trigger is reached and reset when the threshold value is changed. You can use this to get immediate feedback while figuring out the appropriate configuration.

Idle time

The idle time defines the amount of time after each recording during which the audio trigger is automatically disarmed.

Stop recording by duration

This option defines the maximum duration for recordings. Recordings started manually or by audio trigger will be stopped right after they reach this duration. Setting the value to 0 disables the option and requires manually stopping the recording process.

This option is orthogonal to delayed recording. For example if the camera is configured with a 2-second delay and the maximum duration is set to 5 seconds, the created video will last 5 seconds as configured: the first 2 seconds are actions that happened before the recording trigger and the last 3 seconds are actions that happened after the recording trigger.

In combination with the audio trigger this option lets you record multiple sequences without manually interacting with the computer.

Note

This value is a lower bound, the final video might be slightly longer than configured due to internal processing and alignment with frame boundaries.

Post recording command

This option lets you set up a program that will be run at the end of every recording. This can be used to automatically copy the file to a different location, perform compression or apply post-processing.

The command line can contain special macros referring to context variables that are automatically inserted in the final command.

The following context variables are available:

Macro

Description

%directory

The directory where the recording was saved.

%filename

The name of the recorded file.

Ignore file overwrite warning

This option bypasses the overwrite confirmation dialog when the recording about to start points to an existing file. If the option is checked the existing file is irremediably deleted and overwritten by the new one.

This option can be used if you are limited in space and do not need to save all sequences. In this scenario you can continuously record to a single file and manually copy it to a different location only when you really want to keep it.

Keyboard

General

_images/keyboard_general.png

This page lets you view and change the keyboard shortcuts for Kinovea internal commands. The shortcuts are grouped in categories based on which part of the user interface the shortcut is active on. The Commands list view displays each command and the corresponding keyboard shortcut.

Modifying a keyboard shortcut

To modify a keyboard shortcut select the corresponding category and command in the command list. The existing keyboard shortcut will be displayed in the text box at the bottom left of the page.

Click in the text box and perform the sequence of keys that you wish to use as a replacement shortcut. Click the Apply button to commit the new shortcut to the preferences.

Click the Clear button to remove the existing keyboard shortcut for the active command.

Click the Default button to restore this particular command to its default keyboard shortcut.

_images/sections.png

Loading videos

Opening files

To open a video in Kinovea do any of the following:

  • Drag and drop the file from Windows explorer onto the Kinovea window.

  • Use the menu File ‣ Open and select the file.

  • Use the menu File ‣ Recent and select a recently opened file.

  • Use the explorer panel to locate and double click on a file in the file explorer, the shortcut explorer, or the recently captured files, or drag and drop it into an opened playback screen.

  • Double click on a thumbnail in the thumbnail explorer.

Supported file types

Kinovea comes equipped with video decoding libraries to supports many file types and does not need nor use any third party codecs. It supports the following:

  • Most video file formats, including MP4, MPEG, MOV, AVI, MKV, M4V, FLV, WMV, among others.

  • Simple image files such as PNG, JPEG and BMP.

  • Animated GIFs.

  • SVG vector images.

  • Image sequences.

Image sequences are collections of individual image files that have the same size and are named following a numbering pattern. They are loaded as a video.

Playback screen user interface

The playback screen is divided in the following areas:

_images/ui-playback.png

1. Image viewport

The image viewport is the main area where the video is played back.

Double clicking the image maximizes it in the viewport area. The handles at the four corners of the image can be used to change its size.

2. Infobar

The infobar contains the name of the file, the image size and the frame rate.

The file name can be clicked to access a context menu to switch between normal video mode and replay folder observer mode.

_images/menuobserver.png

3. Drawings toolbar

The drawings toolbar contains buttons to create new key images, select the active tool and open the color profile.

_images/toolbar.png

The toolbar contains more tools than those immediately visible. Buttons that host extra tools have a little black triangle in the top-left corner. The extra tools can be accessed by right-clicking or long-clicking the primary button.

_images/subtools.png

4. Working zone area

The working zone defines the segment of the video that the player is working with. The play head loops within the working zone.

_images/workingzone.png

TimeOrigin Marks the current time as the time origin. This makes time values relative to this moment.

WZLock Locks the working zone start and end point to avoid changing them by mistake.

WZStart Sets the starting point of the working zone within the video.

WZEnd Sets the ending point of the working zone within the video.

WZReset Resets the working zone to the whole video.

You can also update the working zone boundaries by directly manipulating the blue end points.

Tip

If the amount of data fits in the cache memory, the working zone will be loaded in memory.

This improves playback performances and enables the Video ‣ Overview and Video ‣ Reverse menus. The cache memory can be configured under Options ‣ Preferences ‣ Playback ‣ Memory.

5. Timeline area

The timeline area displays the current position within the video, time markers and the speed control.

_images/timeline.png

Time markers

Time markers are the colored rectangles inside the timeline gutter, they provide information about annotations. They use the following color coding:

  • Red: the time origin.

  • Green: a key image.

  • Blue: a chronometer.

  • Purple: a trajectory.

Speed control

The speed slider goes from 0 to twice the nominal speed of the video.

The displayed speed value takes into account the slow motion factor configured such that the speed is shown as a percentage of the real world action speed. For example if a video is filmed at 240 fps and saved into a file as 24 fps, the video will normally play back at 10% of the real world speed. In this case the speed control will go from 0 to 20% with a mid-point at 10%.

Warning

If the video cannot be played back at its nominal speed for performance reasons the playback speed value will automatically be lowered down.

Performance for playing back depends on the displayed image size, the frame rate and the file format.

6. Playback controls

_images/playbackcontrols.png

From left to right the buttons provides the following functions:

  • Returns to the start of the video or working zone.

  • Goes back one frame.

  • Starts playback.

  • Goes forward one frame.

  • Goes to the end of the video or working zone.

The playback loops to the start when it reaches the end of the video or working zone.

7. Export controls

The export controls provide ways to export videos and images of the current file.

_images/exportcontrols.png

See also: Exporting video and images.

8. Context menu

The context menu provides quick access to more functions.

_images/contextmenu.png

Image transformation

Image orientation

To change the orientation of the image use the menus under Image ‣ Image rotation.

The following options are available:

  • No rotation

  • 90° clockwise

  • 90° counter-clockwise

  • 180°

Videos filmed in portrait mode on a smartphone typically already have a flag embedded in the video file and don’t need to be manually rotated.

Image mirroring

To mirror the image, that is to flip it along the vertical axis, use the menu Image mirror.

Zoom & magnification

To zoom into the image use CTRL + mouse wheel or CTRL + Minus and CTRL + Plus.

CTRL + Numpad0 resets the zoom level.

The magnifier tool can also be used to create a picture in picture magnified area.

_images/magnifier1.png

Image aspect ratio

To change the aspect ratio of the image use the menus under Image ‣ Image format.

Some devices use non-rectangular pixels and don’t fill the corresponding pixel aspect ratio value in the file metadata. In these case it might be necessary to force the aspect ratio to a known value.

The following options are available:

  • Auto detection

  • Force 4:3

  • Force 16:9

Deinterlacing

To deinterlace the video use the menu Image ‣ Deinterlace.

Some capture devices store video using an interlaced format. Interlaced videos store half images at twice the frame rate, alternating odd and even rows. This causes a combing artifact when the filmed motion is fast as objects or subjects move during the half frame interval.

The deinterlacing algorithm reconstructs full images by combining rows from adjacent frames.

_images/deinterlacing.png

Debayering

Videos saved in Bayer mode contain the raw sensor data before color reconstruction. The color can be rebuilt using the menu under Image ‣ Demosaicing.

_images/debayering.png

The following options are available:

  • RGGB

  • BGGR

  • GRBG

  • GBRG

The appropriate option to select depends on the device and mode used during recording.

Time calibration

Capture frame rate

When a video is captured with a high speed camera (or using the high speed or slow motion function of a smartphone), the generated video file often has a frame rate different from the capture frame rate. For example a video filmed at 1000 fps may be saved to a file with a more typical playback frame rate of 25 fps.

In this case the video will play back slower than real time, which is expected, but the time-related information and calculations would be erroneous if they were based on the playback framerate.

To work with this type of video it is important to configure (or “calibrate”) the time scale. This is done by going to Video ‣ Configure video timing and filling the capture frame rate.

_images/captureframerate.png

Changing this option does not change the nominal speed at which the video is played back. In other words setting the speed control at its mid-point will still play back the video at the same slow motion rate as before. Instead, this option changes the time coordinates of the images.

Broken playback frame rate

In some cases a video is saved with a frame rate which is just plain wrong, or Kinovea cannot read it. For example a USB camera might claim that it is capturing video at 25 fps but the video stream is actually transfered at 15 fps.

In this case the video will play back at the wrong speed and the time calibration will be wrong. If you know the real playback frame rate at which the video is supposed to be played back, you may enter it in Video ‣ Configure video timing.

_images/brokenframerate.png

Changing this option does change the nominal speed at which the video is played back.

Comparison and synchronization

Comparison

Two videos can be opened side by side using the Two playback screens button or the menu View ‣ Two playback screens.

The timeline cursor in each playback screen can be moved independently.

_images/compare-desync.png

Synchronization mechanism

Two videos can be synchronized by setting their time origin to a common event visible on both videos. When the videos are synchronized they will pass through their time origin at the same time.

To set the time origin in a video move to that point in the video and click the Mark current time as time origin button or right click the background of the video and choose the Mark current time as time origin menu. Alternatively you can move each video to the correct point independently and use the Synchronize videos on the current frames button in the joint controls area.

_images/compare-syncpoint.png

During joint-playback, the synchronization mechanism means one video may start and/or end playing before the other.

To perform joint frame-by-frame navigation, move the cursor in the joint timeline or use the joint controls buttons.

_images/compare-synched.png

Joint controls

_images/joint-controls.png

The playback controls are the same as for individual playback screens but act on both videos at the same time.

The other buttons have the following functions:

  • JointOrigin Set the time origin in both videos to their respective current time.

  • Merge Enable or disable superposition of the videos into one another.

  • Swap Swap the playback screens.

Linked speed controls

By default the speed controls in each playback screen are linked with each other: lowering the playback speed in one video lowers it in the other.

The speed controls are independent of the frame rate of the video files so this should apply a similar slow motion factor to both videos and keep the comparison meaningful.

Tip

If one of the video was captured with a high speed camera and has a different capture frame rate, this frame rate should be configured for this video via menu Video ‣ Configure video timing. Once this configuration is done both controls will still be coherent with each other.

If you are confident that you do not want the speed sliders to be linked together you may change the option in Options ‣ Preferences ‣ Playback ‣ General ‣ Link speed sliders when comparing videos.

Superposition

Superposition paints each video on top of the other at 50% opacity. This is a basic mechanism to compare motion in-situ if the videos were filmed in the same environment with a static camera.

_images/merge.png

Overview mode

The overview mode is a special video mode used to display multiple images of the video at the same time. This type of display is also called a “kinogram”. It can be used to create a single-image summary of the whole video sequence.

To enter the overview mode, use the menu Video ‣ Overview.

Tip

The overview mode is only enabled when the entire working zone is cached in memory. To change the amount of memory used for the cache go to Options ‣ Preferences ‣ Playback ‣ Memory.

When the Overview mode is active the main image viewport displays a collection of frames taken from the video at regular intervals. The playback controls are disabled.

_images/overview.png

To control the number of images displayed use the mouse wheel. The display can be set between 2x2 and 10x10 images.

To quit the Overview mode, use the close button in the top-right corner of the playback screen.

Reverse mode

The reverse mode is a video mode where the video frames are re-ordered backwards.

To enter the reverse mode, use the menu Video ‣ Reverse.

Tip

The reverse mode is only enabled when the entire working zone is cached in memory. To change the amount of memory used for the cache go to Options ‣ Preferences ‣ Playback ‣ Memory.

To quit the Reverse mode, use the close button in the top-right corner of the playback screen.

Annotating videos

Introduction

Annotation tools are used to add drawings and text to images of the video. Some tools can also be used to measure distances or display coordinates.

Drawings are attached to a specific key image. Deleting the key image deletes all the drawings attached to it.

Drawings are vector-based: they can be modified after they have been added to the video.

Drawings have a context menu that can be used to access style options, visibility configuration, tool-specific functions, tracking management, copy and paste, support and deletion.

While a tool is active, right clicking the viewport opens the color profile at the page of the active tool.

Tool bar

The tool bar is found under the main viewport.

_images/toolbar.png

There are more tools than those immediately visible. Buttons with a small arrow in the top-left corner contain other tools that can be accessed by doing a right click or a long click (click and hold) on the button.

_images/tools_notch.png

A flying menu opens with the extra tools available.

_images/subtools.png

General tools

Hand Hand

The hand tool is used to manipulate drawings or pan the whole image. To stop using a particular tool and come back to the hand tool use the Escape key or click the hand tool button.

Tip

You can also use the middle mouse button to directly manipulate drawings without changing back to the hand tool.

KeyImage Key image

Adds a new key image.

_images/keyimages.png

Commentary Commentary

Opens the commentary dialog to attach a paragraph of text to the key image using the rich-text editor.

_images/comments.png

ColorProfile Color profile

Opens the color profile dialog to change the default style of drawings.

_images/colorprofile.png

See also: Style and opacity of drawings.

List of tools

Text & number tools

  • Label Label

  • Number Numbers

Text and number tools can be used to create small labels or consecutive numbers. The label tool has an optional arrow.

_images/label1.png _images/numbers.png

Pencil tool

Pencil Pencil tool

The pencil tool is used to create free-hand drawings. The width of the stroke can be modified afterwards but the path is fixed.

Posture tools

  • HumanModel Human model

  • HumanModel Human model (2)

  • BikeFit Bike fit

  • Archery Archery

  • Profile Profile

  • Generic Genu

  • Posture Posture

  • CSVL Central sacral vertical line

  • Generic Canis

  • Generic Equus

Posture tools are used to study or annotate the general posture of the athlete or subject.

_images/humanmodel1.png _images/profile1.png _images/posture1.png _images/bikefit2.png _images/archery1.png _images/csvl1.png _images/canis.png

Line tools

  • Line Line

  • Curve Curve

  • Polyline Polyline

  • Rectangle Rectangle

  • Circle Circle

  • DistanceHorizontal Distance horizontal

_images/line1.png

The line tool and the circle tool can also be used to measure segments and circles, see Measurement > Measuring positions and distances.

Arrow tools

  • Arrow Arrow

  • ArrowDash Arrow - Dash

  • ArrowSquiggly Arrow - Squiggly

  • ArrowCurve Arrow - Curve

  • ArrowPolyline Arrow - Polyline

  • ArrowPolylineDash Arrow - Polyline dash

  • ArrowPolylineSquiggly Arrow - Polyline squiggly

The arrow tools can be used to point at things or illustrate players or ball trajectories.

_images/arrows.png

Marker tool

  • Marker Marker tool

The marker tool is used to highlight the location of a single object or joint.

See also: Measuring positions and distances.

Angle tools

  • Angle Angle tool

  • Goniometer Goniometer

  • AngleToHorizontal Angle to horizontal

  • AngleToVertical Angle to vertical

Angle tools are used to measure angles on a particular plane.

See also: Measuring angles.

_images/axesangles.png

Stopwatch tools

  • Stopwatch Stopwatch

  • Clock Clock

Stopwatch tools are used to measure time positions and intervals.

See also: Measuring time.

Grid tools

  • Plane Perspective grid

  • Grid Grid

  • Plane Distortion grid

The grid tools are used to materialize a plane of motion or for calibration purposes.

Spotlight tool

  • SpotlightTool Spotlight tool

_images/spotlight.jpg

The spotlight tool is used to highlight a particular area of the image by dimming the rest. Multiple spotlights can be added throughout the video.

Magnifier

  • Magnifier Magnifier

The magnifier function creates a picture-in-picture effect with an enlarged version of the current image displayed within the original image. This is a display mode rather than a normal drawing tool, it is not saved in the KVA file.

_images/magnifier1.png

Style and opacity of drawings

Style

Drawings have styling properties like color, size of text or type of line. The exact set of properties depends on the tool.

New drawings use the default style configured for this type of drawing. The default style can be changed in two ways:

  • Open the color profile by clicking the color profile button or right clicking the viewport while the corresponding tool is active.

  • Right click an existing drawing and use the menu Set style as default.

_images/colorprofile.png

To change the style of a drawing after it is created right click it and select the Configuration menu. This dialog also lets you change the name identifying the drawing.

_images/configuration.png

Certain tools that are presented as separate entries in the tool bar are actually style variants of each other. For example the presence of arrows at the end of lines is merely a style option. This means it is possible to convert a line into an arrow by changing the arrow style option.

Visibility

Drawings have visibility properties that controls their opacity throughout the video.

_images/visibilitymenu.png

New drawings start with the default opacity options set in Options ‣ Preferences ‣ Drawings ‣ Opacity. Each drawing can then be configured to use different visibility options.

In general terms drawings have a fade-in ramp, an opaque section and a fade-out ramp. The default options make drawings fully visible on their key image and fade in and out of the neighboring frames. When drawings are tracked they stay opaque during the section of video where they are tracked.

_images/opacity.png

Always visible

With this option the drawing is visible for the entirety of the video. The opaque duration and fading duration options are ignored.

Warning

The drawing is still attached to the key image it was added to and will be deleted if that key image is deleted.

Default fading

With this option the drawing uses the default opacity configuration set in Options ‣ Preferences ‣ Drawings ‣ Opacity.

Custom fading

With this option the drawing uses a custom configuration defined through the Configure custom fading dialog.

_images/customfading.png

Maximum opacity (%)

This option controls the opacity used during the opaque section. A value of 100 % means the drawing will not let the background show through. A value less than 100 % means the drawing will be somewhat transparent.

Opaque duration (frames)

This option controls how long the drawing stays at its maximum opacity level before fading out. This section starts at the keyframe onto which the drawing was added.

Fading duration (frames)

This option controls the duration of the ramps before and after the maximum opacity until the drawing becomes completely invisible.

Time origin

Time information in Kinovea is relative to a specific point in the video. By default, this is the start of the video or working zone.

To set the time origin to an arbitrary point in the video navigate to this point and use the Mark current time as time origin button or context menu. All displayed times will be relative to this origin, using negative time before the event and positive time after it.

_images/negativetime.png

Setting the time origin to another point of the video can be useful to quickly get timing information in relation to a specific event, for example, a golf ball impact, a pitcher’s release point, a long jumper’s take-off, a starting gun trigger.

_images/relativeclock.png

See also: Measuring time.

Importing images and vector drawings

Importing external images

In addition to opening image files as if they were videos, you may import images and vector drawings into videos to create a picture in picture effect.

_images/pip.png

To import an image file in the current video use the menu Tools ‣ Observational references ‣ Import image….

To import an image that you have copied in the clipboard in another application, right click the video background and use the menu Paste image from clipboard.

To transfer an image from one screen to the other, use the menu Copy image to clipboard and then paste it in the other video.

Built-in vector-based references

The menu Tools ‣ Observational references contain a number of entries with built-in vector drawings such as a human skeleton or a protractor.

_images/builtinsvg.png

Saving and loading annotation files

Annotations are saved in KVA files. These are XML files with a .kva extension.

KVA files store data for key images, comments, drawings, trajectories, chronometers, time origin, tracked values, and the coordinate system calibration.

Saving annotations

To save the current annotations use the menu File ‣ Save or the shortcut CTRL + S.

Tip

Save the annotation file with the same name as the video to have it automatically loaded the next time you open the video in Kinovea. This is known as a “sidecar” file, for example video.mp4 and video.kva. This is the default option when saving.

Loading annotations

To load an annotation file into an opened video use the menu File ‣ Load annotations.

The imported annotations are merged together with the existing annotations you might have already added to the video.

If the imported annotations were created on a different video, a conversion step may take place to adapt the drawings dimensions and time codes to the new image size and frame rate.

Loading external annotations can be used to import calibration settings between videos filmed during the same session without having to perform the calibration for every video.

Default annotation file

To automatically import a specific annotation file into every video, use Options ‣ Preferences ‣ Playback ‣ General ‣ Default annotation file…, and point it to the KVA file you want to be loaded.

Importing external data

In addition to importing annotations created in Kinovea you may import annotations created in other software.

Two external formats are supported: SRT subtitles and OpenPose body poses.

SRT SubRip Text subtitles

SRT is a simple subtitle file format containing a series of subtitles and the corresponding start and end timestamps.

To load an SRT subtitle on top of a video in Kinovea, use the menu File ‣ Load annotations… and point to the SRT file.

A label object will be created for each subtitle block with its visibility set up according to the timestamps for the subtitle.

OpenPose

OpenPose is a software that detects human body poses in images.

To learn more about OpenPose check the project page: https://github.com/CMU-Perceptual-Computing-Lab/openpose

The result of running the OpenPose program on a video is a set of JSON files containing data for one or more human postures. OpenPose uses a 25-point body model.

This is not meant to be used for measurements but for general posture assessment.

The workflow to import OpenPose data into Kinovea is the following:

Run the OpenPose software on the video, using the write_json option. This creates a set of .json files in the output directory. Each file contains descriptors for the detected poses.

> bin\OpenPoseDemo.exe --video examples\media\video.avi --write_json output/

In Kinovea, use the menu File ‣ Load annotations… and point to the first JSON file of the series.

Each detected human pose will be converted to a human model drawing using a dedicated model.

_images/openpose.png

Calibration mechanisms

In order to use Kinovea to make measurements on the video, it is necessary to calibrate the transformation of pixels in the image into real world units. Kinovea supports two calibration mechanisms: calibration by line and calibration by plane.

All measurements in Kinovea must sit on a 2D plane. If the motion you want to study is on a plane parallel to the image plane (orthogonal to the camera optical axis), you may use calibration by line. Otherwise, if you are measuring points on the ground, for example, you should use the calibration by plane. If the motion is happening in arbitrary 3D space you cannot measure it in Kinovea.

Line calibration

Line calibration is possible when the motion is sitting on a 2D plane parallel to the camera plane.

_images/planeofmotion.png

To perform line calibration follow these steps:

  • Have an object of known length visible in the video.

  • Add a line object and place it on top of the object of known length.

  • Right click the line and select the Calibrate menu.

  • Enter the real-world length of the object.

_images/calibrationline.png

Note

Modifying the calibration line after calibration already took place will update the calibration to use the new pixel length of the line and keep the real-world length as configured.

Plane calibration

Plane calibration is possible when the motion is sitting on an arbitrary 2D plane visible in the video.

To perform plane calibration follow these steps:

  • Have a rectangle of known dimensions visible in the video.

  • Add a perspective grid object and move its corners to match the rectangle.

  • Right click a corner and select the Calibrate menu.

  • Enter the real-world width and height of the rectangle.

_images/calibrationplane.png

Note

Modifying the calibration plane after calibration already took place will update the calibration to use the new pixel dimensions of the plane while keeping the real-world dimension as configured.

Guidelines to minimize errors

The following guidelines are designed to minimize the systematic and random errors inherent to measuring spatial motion on 2D images.

Camera setup

Mount the camera on a tripod and avoid camera motion

The camera must remain stationary for the images to provide a stable frame of reference. If the camera is moving relative to the scene, the plane of motion will change over time and the calibration from one video frame cannot be used on other frames.

Tip

If you do not control the camera and it is moving, you can try to track the calibration object itself.

Align the camera plane with the plane of motion

When using calibration by line the camera must be aligned with the plane of motion, the camera optical axis must be orthogonal to the plane of motion.

_images/planeofmotion.png

Tip

If the camera is not in a controlled environment use the calibration by plane.

Maximize the camera distance to the scene

To minimize perspective distortion. place the camera as far as possible from the scene and zoom in. This will reduce errors due to points moving in and out of the plane of motion.

Camera and digitization

Minimize or correct lens distortion

Use a lens with as little distortion as possible to minimize the curvature of the plane of motion in the images.

This distortion can be taken into account in Kinovea using the lens calibration dialog.

See also: Lens distortion calibration.

Use an appropriate exposure time

To minimize motion blur, decrease the exposure time as much as possible (increase shutter speed).

Maximize image size and image quality

Use the largest possible image resolution to improve the precision of the digitization process when locating points on the images.

Use the zoom function

Use the zoom function in Kinovea to position the points more precisely. Kinovea uses fractional pixel coordinates for calibration and measurements.

Scene setup

Use a large reference object

The scaling object used for calibration should occupy as much of the image as possible.

Use a vertical or horizontal reference

To align the axes of the coordinate system with the real world use a plumb line or other object of known direction as the calibration object. If the real world vertical line is not parallel to the image side you can set the calibration line to define the vertical axis.

Avoid measuring objects outside the plane of motion

Everything that is measured must sit on the calibrated plane of motion. Coordinates and measurements using points physically outside the plane of motion will be inaccurate.

Use small round markers

Use small markers on the object or joints. The markers shape should not vary when rotated, for example a disk or concentric disks should be suitable.

Coordinate system

All measurements are based on the coordinate system defined by the current calibration.

To show or hide the coordinate system use the menu Tools ‣ Coordinate system.

Line calibration

The first placed point of the line becomes the default origin of the coordinate system. The line direction becomes an axis of the coordinate system based on the option selected in Coordinate system alignment.

The following alignment options are available:

  • The line defines the horizontal axis

  • The line defines the vertical axis

  • Aligned to image axes

If Align to image axes is selected the orientation of the line is ignored.

_images/coordinatesystemline.png

Plane calibration

The bottom-left corner of the grid becomes the origin of the coordinate system. The coordinate system axes are aligned with the calibration grid object.

_images/coordinatesystemplane.png

Origin of the coordinate system

The coordinate system’s origin is independent from the calibration object. It can be moved around by dragging the axes.

Lens distortion calibration

Introduction

When using cameras with significant distortion is it important to calibrate it in Kinovea before making measurements. The lens distortion calibration rectifies the coordinates before they are passed to the spatial calibration.

_images/distorted-coordinatesystem.png

Barrel distortion exposed by a GoPro action camera and the default coordinate system after lens distortion calibration.

Lens calibration is compatible with both line calibration and plane calibration. The coordinate system, lines and grid objects are drawn distorted to follow the distortion. The images themselves are not rectified.

_images/distorted-coordinatesystem-plane.png

Distortion coefficients

The description of the lens distortion is done in the lens calibration dialog in the menu Tools ‣ Camera calibration.

There are multiple approaches to finding coefficients that best match a particular camera lens and camera mode, they are described below.

All the approaches involve filming a highly structured pattern in order to facilitate the distortion estimation, whether it is done visually or programmatically. This pattern can be a chess board, a brick wall, or any structured image displayed on a flat screen.

The following parameters are used during calibration:

  • fx, fy: focal length in pixels.

  • cx, cy: pixel coordinates of the optical center.

  • k1, k2, k3: radial distortion coefficients.

  • p1, p2: tangential distortion coefficients.

Visual estimation

In this approach the distortion is estimated visually by directly changing the distortion coefficients and trying to align the grid on the image. It is the least accurate approach but can still provide decent results.

_images/distortion.png

Follow these steps:

  • Film the pattern straight on.

  • Load the video and open the lens calibration dialog.

  • Tweak k1 and k2 distortion coefficients to match the distorted grid image.

    • k1 is the distortion of the first order and should be used as a starting point to get the grid to align as best as possible in the central region of the image.

    • k2 can be used to counteract the main distortion at the periphery of the image.

  • You can play with the cx, cy, p1, p2 parameters as well to adjust the grid to the image.

Distortion grid

In this approach the distortion is estimated programmatically by Kinovea from a set of distortion grid objects manually placed over images of the video.

_images/distortiongriddemo.png

Follow these steps:

  • Film a chess board or structured pattern from various angles.

  • Select some images (for example five) and add a Distortion grid object.

_images/distortiongridbutton.png
  • Map each point of each grid onto corners on the filmed pattern.

_images/distortiongridzoom.png
  • Open the lens calibration dialog and click the Calibrate camera button in the lower left.

This will compute and fill the distortion parameters.

Agisoft Lens

Agisoft Lens is an automatic lens calibration software.

_images/distortionagisoft.png

Note

Agisoft Lens as a free, standalone desktop software is no longer published by Agisoft.

To use Agisoft Lens to calibrate the lens distortion follow these steps:

  • Open Agisoft Lens and display the chessboard using the Show chessboard button.

  • Film the chessboard displayed from up close in such a way that only parts of the chessboard are visible, not the background of the monitor.

  • Open the video in Kinovea and export at least five images to separate files.

  • In Agisoft Lens import the images using the Add photos button.

  • Start calibration by using the Calibrate button, selecting the following options:

    • Fit cx, cy;

    • Fit k1, k2, k3;

    • Fit aspect;

    • Fit p1, p2.

  • Use Save calibration to save an XML file of the solved parameters.

  • In Kinovea open the lens calibration dialog and do File ‣ Import ‣ Agisoft Lens.

This will convert and fill the distortion parameters.

Exporting and importing distortion parameters

The distortion parameters are saved in the KVA file but if you want to re-use the same parameters on a different video you can export them to a separate file. Use the menus File ‣ Save and File ‣ Open in the lens calibration dialog.

Note

Any change of camera model, lens, or configuration options involving image resolution or zoom requires a new calibration procedure.

Measuring time

Time position

The current time position is visible under the main timeline.

_images/timeposition.png

Time unit

The time unit can be changed from the menu Options ‣ Time or from Options ‣ Preferences ‣ Playback ‣ Units ‣ Time. The following options are available:

Format

Example

Description

[h:][mm:]ss.xx[x]

1:10.48

Textual timecode.

Frame number

1762

Rank of the current frame.

Total milliseconds

70480 ms

Integer number of milliseconds.

Total microseconds

1284 µs

Integer number of microseconds.

Ten thousandth of an hour

904

Ten thousandths of an hour

Hundredth of a minute

542

Hundredths of a minute

[h:][mm:]ss.xx[x] + Frame number

1:10.48 (1762)

Note

The configured time unit is used for the time position and duration, the clock and stopwatch tools, and when exporting to spreadsheets. The kinematics dialog always uses total milliseconds as the time unit.

Time origin

Times displayed are relative to the time origin defined for the video. By default the time origin is at the begining of the video but you can change it in order to display times relative to a particular event of the video; such as a ball impact, a jump take-off, a release point, a race start, etc.

Video positions before the time origin have negative times.

_images/negativetime.png

The time origin can be changed manually by using the time origin button Timeorigin or by right clicking the image and selecting Mark current time as time origin. The current video frame becomes the time origin.

Relative clock

To annotate the video with the current video time use the clock tool Clock.

_images/toolclock.png

By default a clock object simply displays the current video time using the global time origin. Each clock tool may also have its own custom time origin independent from the global one. To define a custom time origin Right click the clock tool and choose Mark current time as time origin for this clock.

_images/relativeclock.png

The clock object can be identified by name by using the Show label menu and changing the object name in its configuration dialog.

Time intervals

To measure a time interval use the Stopwatch tool Stopwatch.

_images/toolstopwatch.png

To measure the time elapsed between two points of the video follow these steps:

  • Add a stopwatch object to the video.

  • Move to the start of the interval, right click the stopwatch object and choose Start the stopwatch.

  • Move to the end of the interval, right click the stopwatch object and choose Stop the stopwatch.

_images/stopwatch2.png

In order to measure multiple time intervals you must add several stopwatch objects.

Time scale

Videos filmed with high speed cameras or in high speed mode can have a video frame rate different from the capture frame rate. For example a video filmed at 1000 fps is typically saved with a “standard” playback rate of 30 fps. This makes the final video appear in slow motion even when the speed slider is set to 1x.

In this case it is important to tell Kinovea about the original capture frame rate for times to be correct. This impacts time positions and time intervals.

Open the video timing dialog from menu Video ‣ Configure video timing… and in the top part of the dialog, enter the capture frame rate.

_images/timescale.png

Note

When capturing videos with Kinovea this option is automatically set based on information found in the KVA file saved next to the recording.

Measuring positions and distances

Introduction

To measure positions and distances on video images, it is necessary to first perform calibration.

To display a measurement right click the object and choose an option under Display measure.

_images/menu.png

The unit of distance is the unit used during calibration.

Points

The marker tool can be used to measure the position of a point in the current coordinate system or its distance to the origin.

_images/marker.png

Lines

The line tool can be used to measure the distance between two points.

_images/line2.png

Circles

The circle tool has display options to show the center position, radius, diameter, and circumference of the circle.

_images/circle1.png

Measuring angles

Introduction

To measure angles on planes that are not orthogonal to the camera optical axis it is necessary to first perform plane calibration.

The unit for angles can be configured in Preferences ‣ Playback ‣ Units. The options are Degrees (°) and Radians (rad).

Angle

To measure an angle, add an angle object and position its end points.

_images/angle1.png

By default the angle runs counter-clockwise, starting from the dashed leg. The context menu options let you switch between signed or unsigned angle, change from counter-clockwise to clockwise, and switch to supplementary angle.

_images/angleoptions.png

Note

Always keep in mind that it is not possible to measure angles in arbitrary space from a 2D image. Angles can only be measured when the three points lie on a known 2D plane. This must be either the image plane or the plane calibrated using plane calibration.

Goniometer

The goniometer tool lets you measure the extension or flexion of a body segment relative to a referenced anatomical angle or neutral position.

A physical goniometer combines two arms and a protractor. One arm is called the stationary arm and the other is called the movable arm. The protractor part contains multiple graduated rings that allow the physician to pick a reference axis when reading the angle.

_images/goniometer-physical2.png

Typical plastic goniometer

The stationary arm is aligned with the reference segment to materialize the neutral position and the movable arm is aligned with the segment for which we are measuring the range of motion.

Using a goniometer instead of a simple protractor makes it easier to align the protractor with the body segments and helps standardize the way the measurements are made for the range of motion of specific joints.

In Kinovea, the goniometer tool has three branches: The stationary arm is the thick plain arm. The movable arm is the one with the arrow at the end. The dashed line is used to define the protractor reference axis in relation to the stationary arm. This branch rotates by 45° increments relatively to the stationary arm.

_images/goniometer-knee.png

Knee flexion.

_images/goniometer-ankle.png

Plantar flexion. The reference axis is set perpendicular to the leg.

This tool is conceptually similar to a real goniometer with 8 protractor rings but the reading is simplified by showing only one measurement at a time.

Angles relative to image axes

The angle-to-horizontal and angle-to-vertical tools let you measure angles relatively to the horizontal or vertical axes of the image. The dashed line represent the reference axis.

_images/axesangles.png

Tracking point trajectories

Introduction

To track the trajectory of a single point or body joint visible on the image follow these steps:

  • Right click the object to track and choose Track path.

  • Move the video forward using the Next frame button, the mouse wheel or the Play button.

  • Adjust the point position as necessary during the path creation.

  • To finish tracking, right click inside the tracking window and choose End path edition.

_images/trajectory-basics.jpg

Tracking is a semi-automatic process. A candidate point location is computed automatically but can be adjusted manually at any time.

While tracking is in progress two rectangles will be visible around the object being tracked. The inner rectangle is the object window, the outter rectangle is the search window.

_images/trajectory-windows.png

When the automated tracking fails, correct the point location by dragging the search window. Drag it until the cross at the center of the tracking tool is at the correct location. When tracking resumes, it will use this new point as reference.

Tip

When the trajectory object is not in path edition mode the trajectory is interactive: clicking on any point of the trajectory will move the video to the corresponding frame.

Trajectory options

Right click the trajectory object and choose Configuration to bring the trajectory settings dialog.

_images/trajectory-configuration.png

Visibility

The trajectory visibility can be set to one of the following modes:

  • Complete (A): displays the whole trajectory.

  • One second (B): displays one second worth of trajectory points.

  • Label (C): displays the name of the trajectory in a label.

_images/trajectory-visiblity.jpg

Marker

The point at the trajectory position of the current frame can be displayed in one of the following shapes:

  • Cross

  • Circle

  • Target

Measurement

This option enables the display of a measurement label following the current point on the trajectory. The options are kinematics quantities computed from the trajectory points. This option is also directly available via the trajectory context menu under Display measure.

The following options are available:

  • None

  • Name

  • Position

  • Total distance

  • Total horizontal displacement

  • Total vertical displacement

  • Speed

  • Horizontal velocity

  • Vertical velocity

  • Acceleration

  • Horizontal acceleration

  • Vertical acceleration

Note

To display kinematics measurements in real world units you must first calibrate the coordinate space. If the video is natively in slow motion you must also calibrate the time scale.

Display rotation circle

This option uses the points of the trajectory to compute the best-fit circle of the trajectory. This is a circle that minimizes the error of each point relatively to a virtual perfect circle.

This can be used to visualize the pseudo-center of a rotary motion.

_images/trajectory-circle.png

Tracking

The size of the object and search windows can be modified by dragging the corners of the windows in the preview panel or by changing the values.

The object window should be as small as possible around the point of interest to avoid tracking interferences. The search window should be large enough to contain the position of the point in the next frame, but small enough to avoid interferences between multiple markers.

Key images

When the section of time covered by the trajectory contains key images they are displayed as small labels attached to the trajectory point at that time.

_images/trajectory-keys.jpg

Tracking distances and angles

Introduction

To track a drawing object over time follow these steps:

  • Right click the object and choose Tracking ‣ Start tracking.

  • Move the video forward using the Next frame button, the mouse wheel or the Play button.

  • Adjust the points position as necessary during the path creation.

  • To finish tracking, right click inside the tracking window and choose Stop tracking.

_images/tracking-start.png

Each tool type defines exactly which ones of its points are tracked or not. The following drawing can be tracked:

  • Position: Marker.

  • Distance: Line.

  • Angles: Angle, Goniometer, Angle-to-horizontal, Angle-to-vertical.

  • Grids: Flat grid, Perspective grid.

  • Complex tools: Human model, Bike fit, Archery, Canis, Equus, etc.

Tracking parameters

Unlike the trajectory tool the sizes of the search and object windows cannot be directly modified from the object configuration dialog. In order to change the default sizes for these windows go to Options ‣ Preferences ‣ Drawings ‣ Tracking.

Tip

Use the trajectory tool configuration dialog to visually figure out the appropriate size of the object and search window, then enter these parameters in the preferences.

Tracked coordinate system

The calibration mechanism uses a line object or a plane object to define a coordinate system and transform pixel coordinates into real world coordinates.

If the object defining the calibration is itself tracked, the calibration will be updated at every frame. This can be used to compensate a moving camera.

It is also possible to track the coordinate system origin while keeping the calibration static. This can be used to obtain coordinates of a point relatively to a moving reference.

Note

Tracking the calibration object and tracking the coordinate system are not compatible with each other. The tracked calibration object redefines the coordinate system.

Linear and angular kinematics

Introduction

To measure linear or angular speed and other kinematics quantities follow these steps:

  • Establish a line or plane calibration.

  • Compensate for lens distortion.

  • Track a point trajectory or track an object containing an angle.

  • The measured data can be displayed in two ways:

    • Directly on the object.

    • In a dedicated kinematics diagram.

  • To export the data, use the export options in the kinematics diagrams.

To display the measurement as a label attached to the object, right click the object and choose an option under the Display measure menu. Each measurable object has specific options based on the quantities it can measure.

Note

The data displayed directly on objects use raw coordinates whereas the kinematics diagram uses the (optional) filtering mechanism.

Kinematics diagrams

The following kinematics diagrams are available:

Scatter diagram

_images/kinematics-scatter.png
Description

The scatter diagram displays the positions of the marker objects in the video. The axes are based on the calibrated coordinate system.

This can be used to get a bird’s eye view of the contact points of a ball on the ground for example.

Data source

The data source is the whole set of marker objects.

Calibration plane

This option highlights the area covered by the perspective grid used to calibrate the coordinate space.

Export options

The data can be exported to an image or to tabular data. For tabular data the points are sorted by time; the first column is the time in milliseconds, the second and third columns are the X and Y positions.

Linear kinematics

_images/kinematics-linear.png
Description

The linear kinematics diagram displays line charts of points trajectories and tracked objects points.

This can be used to study and compare the evolution of position, speed, or acceleration over time.

Data source

The data source list contains a list of all tracked points. Data from individual points can be hidden from the line chart by unchecking the checkbox in front of the point name.

Points in drawings with multiple points are listed by the name of their drawing and a point identifier.

Data type

The Data type drop down sets the kinematic quantity used in the line chart. The following options are available:

  • Horizontal position

  • Vertical position

  • Total distance

  • Total horizontal displacement

  • Total vertical displacement

  • Speed

  • Horizontal velocity

  • Vertical velocity

  • Acceleration

  • Horizontal acceleration

  • Vertical acceleration

Total horizontal displacement and total vertical displacement computes the resultant displacement between the first point and the current point of the trajectory. This is similar to the horizontal and vertical position but makes it relative instead of absolute.

Note

Be mindful that acceleration values are very sensitive to noise as they are the second derivative of the digitized position.

Time type

The Time type drop down sets the time scale used in the line chart. The following options are available:

  • Absolute: times are in normal video time.

  • Relative: times are expressed relative to the start of each trajectory.

  • Normalized: times are expressed as a fraction of each trajectory duration.

Relative time aligns events to their start, this can be used to compare trajectories that did not occur at the same time in the video.

Normalized time can be used to compare the shape of time series that did not last the same duration.

Export options

The data can be exported to an image or to tabular data. For tabular data the points are sorted by time; the first column is the time in milliseconds, the other columns are values from the time series.

Angular kinematics

_images/kinematics-angular.png
Description

The angular kinematics diagram displays line charts of tracked angles.

This can be used to study and compare the evolution of angle, angular speed or angular acceleration over time.

Data source

The data source list contains a list of all tracked angles. Data from individual angles can be hidden from the line chart by unchecking the checkbox in front of the point name.

Data type

The Data type drop down sets the kinematic quantity used in the line chart. The following options are available:

  • Angle

  • Total displacement

  • Angular velocity

  • Tangential velocity

  • Angular acceleration

  • Tangential acceleration

  • Centripetal acceleration

  • Resultant acceleration

Note

Be mindful that acceleration values are very sensitive to noise as they are the second derivative of the digitized position.

Time type

The Time type drop down sets the time scale used in the line chart. The following options are available:

  • Absolute: times are in normal video time.

  • Relative: times are expressed relatively to the start of each trajectory.

  • Normalized: times are expressed as a fraction of each trajectory duration.

Relative time aligns events to their start, this can be used to compare trajectories that did not occur at the same time in the video.

Normalized time can be used to compare the shape of time series that did not last the same duration.

Export options

The data can be exported to an image or to tabular data. For tabular data the points are sorted by time, the first column is the time in milliseconds, the other columns are values from the time series.

Angle-angle diagram

_images/kinematics-angleangle.jpg
Description

The angle-angle diagram is a qualitative plot showing the dynamics of a movement pattern over multiple trials. This type of diagram correlates two angular measurements over time to highlight their interaction.

For example, this can be used to study the coordination of the knee and hip during flexion or extension.

Data source

The data source lists the angle objects that are plotted on each axis.

Data type

The data type drop down sets the kinematic quantity used for the variable-variable chart. The following options are available:

  • Angle

  • Angular velocity

  • Tangential velocity

Export options

The data can be exported to an image or to tabular data. For tabular data, the output has only two columns, correlating the first angle value with the second value at the same point in time.

Data filtering

Rationale

Due to the digitization process the raw coordinates are noisy and the resulting quantities, especially derivatives like speed and acceleration, are less accurate than they could be. Carefully filtering the coordinates remove a lot of this noise and provide more accurate measurements.

Data shown in the kinematics diagrams is computed using filtered coordinates. This filtering can be disabled under Preferences ‣ Drawings ‣ General ‣ Enable coordinates filtering.

Filtering mechanism

The coordinates are passed through a low pass filter to remove noise. The filter does two passes of a second-order Butterworth filter. The two passes (one forward, one backward) are used to reset the phase shift 1.

To initialize the filter, the trajectory is extrapolated for 10 data points on each side using reflected values around the end points. The extrapolated points are then removed from the filtered results 2.

The filter is tested on the data at various cutoff frequencies between 0.5Hz and the Nyquist frequency. The best cutoff frequency is computed by estimating the autocorrelation of residuals and finding the frequency yielding the residuals that are the least autocorrelated. The filtered data set corresponding to this cutoff frequency is kept as the final result 3.

The autocorrelation of residuals is estimated using the Durbin-Watson statistic.

Cutoff frequency visualization

For trajectories, the cutoff frequency can be visualized in the About tab of the diagram dialog. The calculated cutoff frequency depends on the data and is different for each trajectory object.

_images/filtering-cutoff.png

Footnotes

1

Winter, D. A. (2009). Biomechanics and motor control of human movements (4th ed.). Hoboken, New Jersey: John Wiley & Sons, Inc.

2

Smith G. (1989). Padding point extrapolation techniques for the butterworth digital filter. J. Biomech. Vol. 22, No. s/9, pp. 967-971.

3

Challis J. (1999). A procedure for the automatic determination of filter cutoff frequency for the processing of biomechanical data., Journal of Applied Biomechanics, Volume 15, Issue 3.

Listing and opening cameras

Listing connected cameras

To view the list of cameras currently connected to the computer select the camera tab in the explorer panel.

_images/listing.png

The main explorer view will display thumbnails of the connected cameras.

Opening a camera

You can open a camera by doing any of the following:

  • Double click on the camera thumbnail in the main explorer view,

  • Double click on the camera name in the camera list,

  • Drag and drop the camera from the camera list to the main explorer view,

  • Drag and drop the camera from the camera list to an already opened capture screen,

  • Right click the camera thumbnail and choose Open.

Explorer options

You may refresh the thumbnails of the cameras by pressing F5 in the main explorer view.

You can rename or change the icon for the camera by right-clicking the thumbnail and choosing Rename.

You can reset the custom camera options by right-clicking the thumbnail and choosing Forget custom settings.

Capture screen user interface

The capture screen is divided in the following areas:

_images/ui-capture.png

1. Camera viewport

The camera viewport is the main area where the camera image is visible.

The image itself can be moved around by dragging with the mouse and resized using the manipulators at the corners of the image or by using CTRL + mouse scroll. Drawings on the capture screen can go outside the image area.

If the image stays black, there might be a problem with the available USB bandwidth or power, or the exposure duration might be too short.

If nothing is visible at all, not even the black image rectangle, the camera did not connect correctly; for example, the camera might be in use in another application at the same time.

2. Infobar

The infobar contains information about the connected camera and streaming performances.

_images/infobar1.png

The first part of the infobar displays the alias of the camera and the current configuration for image size, frame rate and image format. Clicking in this area of the infobar will bring up the camera configuration dialog.

The frame rate indicated is the one configured, the actual frame rate sent by the camera might be different for various reasons like low light levels or hardware limitations.

The second part of the infobar displays the following live statistics:

_images/infobar2.png

Signal (fps)

This is the frequency at which Kinovea is receiving images from the camera. The value is in frames per second.

Many cameras will reduce their frame rate based on various external factors. For example, when a camera uses auto-exposure and the exposure duration computed by the device is incompatible with the selected frame rate.

Throughput (MB/s)

This is the amount of data that passes through Kinovea as it processes the stream. The value is in megabytes per second, with the convention of one megabyte as 1024 kilobytes.

This value is related to the the image size, frame rate and format, possible on-camera image compression, link bandwidth, and possible post-processing done at the driver level.

You can use this value to estimate the necessary speed for your storage medium to write the uncompressed stream.

In the case of a non-compressed stream in RGB24 format, the value is calculated as follows:

Throughput = (width × height × 3 × frame rate) / (1024*1024)

Load (%)

This value describes how much Kinovea is struggling to keep up with the camera framerate. It is computed as the time taken to process one frame divided by the interval between frames.

When this value is near 100% it means it takes Kinovea the same amount of time to process one frame as the time budget it has for that frame, if it goes over 100% dropped frames may occur.

Drops

This is the number of frames that could not be processed by Kinovea during the current or last recording session.

If this value is non-zero, some frames are missing from the output video and any measurements involving time will not be perfectly accurate.

3. Toolbar

_images/toolbar1.png

The toolbar contains drawing tools usable on the capture screen. Some tools available in the playback screen are not available in the capture screen.

Some buttons may give access to multiple tools. To access the other tools, right click the button or perform a long press on the button.

The style profile dialog is not currently accessible in the capture screen, in order to change the default style of a tool you need to open a playback screen and change it from there.

4. List of recently captured files

_images/capturedfiles.png

This area displays thumbnails of the recently captured files.

Double clicking on a thumbnail opens the file in a playback screen. The close button removes the thumbnail from the list without deleting the file.

Right-clicking on a thumbnails brings a context menu with the following options:

Open Open

Opens the video in a playback screen.

OpenAsReplay Open as replay folder observer

Opens the parent folder of the video in a replay folder observer.

Locate Locate file in Windows Explorer

Opens the Windows Explorer on the parent folder of the video.

Rename Rename

Make the file name label editable and save the new file name.

Hide Hide

Removes this thumbnail from the list without deleting the file.

Delete Delete

Sends the file to the Windows trash.

5. Capture controls

_images/capturecontrols.png

The capture controls area contains the following buttons:

Configure Configure camera

Displays the camera configuration dialog to change options like image size or frame rate. The available options depend on the specific camera brand and model.

Pause Pause camera

Pauses or restarts the camera stream. This disconnects the camera. When the camera is disconnected, it is possible to review the last few seconds of action seen by the camera by adjusting the delay.

Disarm Disarm capture trigger

Disarms or rearms the audio capture trigger. When the audio trigger is disarmed, audio levels will not be monitored and capture will not be automatically started. The microphone and audio level threshold can be configured from Options ‣ Preferences ‣ Capture ‣ Automation.

SaveImage Save image

Saves the image currently displayed to an image file based on the configured file name and saving directory. The saving directory can be configured from Options ‣ Preferences ‣ Capture ‣ Image naming.

Record Start recording video

Starts or stops recording the video. The video is recorded based on the compression options, recording mode, and naming options found under Options ‣ Preferences ‣ Capture.

6. Delay controls

_images/delaycontrols.png

The delay controls let you adjust the amount of delay, in seconds, of the displayed camera stream with regards to the real time action.

The maximum amount of delay depends on the camera configuration — hardware compression, image format, image size, frame rate — and the memory allocated in the delay cache under Options ‣ Preferences ‣ Capture ‣ Memory.

7. Output file names

_images/filenames.png

These fields define the names of the next files that will be saved when exporting an image or capturing a video. They are automatically updated after each recording but can also be modified manually.

The file names can use macros like the current date or the name of the camera. The list of available macros and configuration options can be found under Options ‣ Preferences ‣ Capture ‣ Image naming and Options ‣ Preferences ‣ Capture ‣ Video naming.

Clicking on the folder buttons will open the main preferences dialog on the relevant page.

Supported cameras and options

Kinovea supports various capture hardware as described in the following sections:

Webcams, Mini DV, and HDMI capture cards

General

Kinovea supports devices with a DirectShow driver. These devices include USB video class (UVC) webcams, Mini DV camcorders, and analog video converters.

Configuration

_images/config-webcam.png

The exact list of available options depends on the camera.

Stream format

The avalaible stream formats depend on the brand and model of the camera.

The typical stream formats include:

  • RGB, RGB24, RGB32: the images are not compressed.

  • YUV, YCbCr, YUY2, I420: the images are not compressed.

  • MJPEG: the images are compressed on the camera.

Using the MJPEG stream format can lower the bandwidth requirements and improve framerate.

Note

Kinovea native storage format for compressed videos is MJPEG. When using this stream format, the videos are saved as-is without any extra decompression or compression steps.

Image size

This defines the image size of the stream and impacts the available options in the framerate dropdown.

Framerate

This is the list of framerates available for the selected image size.

Exposure

This value is related to the amount of time the sensor is exposed.

Changing the exposure duration lets you find a tradeoff between motion blur and light requirements. Lowering the exposure duration reduces motion blur and increases the amount of light required to capture the scene.

For most cameras brands, the unit of this value is not known and it is exposed as an arbitrary number. For some camera brands the value is shown in milliseconds if a special property is exposed by the driver or the values where derived manually.

This value is a limiting factor for the framerate. If this value is too high the framerate is lowered automatically by the camera.

Gain

This is the amount of amplification of the signal captured on the sensor. Increasing this value increases the apparent brightness but can introduce noise in the image.

This value has no impact on the framerate.

Focus

This drives motorized lenses to adjust focus.

Other options

Options that are not supported in Kinovea can be modified using the Device property pages button.

Network cameras and smartphones

General

In order to add a network or IP camera in Kinovea use the Manual connection button on the camera tab of the explorer panel.

_images/manualconnection.png

This dialog brings the configuration options described below. The same options are available later by clicking on the Configure camera button in the capture screen.

Configuration

_images/config-network.png

The values for the options depend on the particular brand of network camera and your own network configuration. The most important setting is the Final URL, this is the URL used by Kinovea to connect to the camera stream.

Clicking the Test button will try to connect to the camera and report success or failure.

Smartphones

Smartphones can be used as network cameras over the WiFi network by using a dedicated application, provided it supports streaming in MJPEG. For example “IP Webcam” by Pavel Khlebovich can be used on Android devices.

Consult the application to find the URL of the server and the IP address of the smartphone.

Machine vision and industrial cameras

General

The following camera brands are supported:

Installation

The machine vision cameras are supported via plugins that are distributed separately from Kinovea. Each plugin must be installed under the application data folder, inside the Plugins\Camera sub-folder.

The runtime for the specific camera brand, provided by the manufacturer, must also be installed separately. Consult the section for each brand below to check if any extra customization is needed during the installation of the vendor’s runtime to make it work with Kinovea.

Configuration

This section describes the common options for the configuration of machine vision cameras. Settings or installation information specific to each camera vendor are described after the section Resulting Framerate.

_images/config-basler.png
Stream format

The available stream formats depend on the brand and model of the camera.

Stream formats named Raw or containing Bayer in the name transmit the raw sensor data and can be used to record raw videos.

Bayer format conversion

When the selected stream format is a raw Bayer format, this option defines which reconstruction method, if any, is applied to the raw sensor data. The following options are available:

  • Raw: No reconstruction is performed. Kinovea receives the images as-is.

  • Mono: Monochromatic images are rebuilt by the camera vendor runtime before passing the images to Kinovea.

  • Color: Color images are rebuilt by the camera vendor runtime before passing the images to Kinovea.

Note

When using a raw stream format and the video is recorded without compression, the raw sensor data is saved to the video file. It is then possible to rebuild the color at playback time by choosing the appropriate option under the menu Image ‣ Demosaicing. This approach can be interesting to limit the bandwidth required to transfer the camera stream and save it to storage.

Width

The width of the images. This usually has no effect on the maximum framerate possible as the cameras always read entire sensor rows.

Height

The height of the images. This usually impacts the maximum framerate possible as only the required rows are read from the sensor.

Framerate

The target framerate. Whether this framerate is actually reached or not depends on the image format, size, exposure and the camera hardware. If the framerate cannot be sustained, the Resulting framerate value will be displayed in red.

If the Auto checkbox is checked, the camera will ignore the value and always send the maximum framerate possible based on the rest of the configuration and the camera hardware. If the Auto checkbox is not checked, the camera will use at most the configured value, if it is possible for the hardware to do so. The manual configuration can be interesting if you want to use a specific framerate that is less than the maximum possible.

Note

After changing the image size or stream format you must click on Reconnect for the maximum framerate information to be updated.

Exposure (µs)

This is the amount of time the sensor is exposed, in microseconds. Changing the exposure duration lets you find a tradeoff between motion blur and light requirements. Lowering this value reduces motion blur but increase the amount of light required to capture the scene.

This value is a limiting factor for the framerate. For example a value of 20 milliseconds implies that there cannot be more than 50 images per second captured.

Gain

This is the amount of amplification of the signal captured on the sensor. Increasing this value increases the apparent brightness but can introduce noise in the image.

This value has no impact on the framerate.

Resulting framerate

This value is the actual framerate at which the camera will send images, based on the other values and the camera hardware capabilities.

Basler

Pylon installation

When installing Basler’s Pylon runtime software, it is necessary to use the Custom option in the installer, expand the pylon Runtime node, and select pylon C .NET Runtime option.

_images/pylon-install.png

If you have already installed the software you can re-run the installer and choose Modify the current installation to access this option.

Other options for Basler

Options that are not supported in Kinovea can be modified in Basler’s Pylon viewer.

IDS

_images/config-ids.png
Other options for IDS

In order to use options that are not supported in Kinovea, use IDS’ uEye Cockpit. Modify the camera configuration in uEye Cockpit and do File ‣ Save parameters to file. Then in Kinovea, use the Import parameters button on the camera configuration dialog and point to the file you just saved.

In order to unlink the configuration file with Kinovea, right click on the camera thumbnail in the main explorer view and use the menu Forget custom settings.

Daheng imaging

_images/config-daheng.png

The stream format options are RGB, Mono or Raw, depending on the camera model.

Other options for Daheng

Options not supported in Kinovea can be modified in Daheng Galaxy Viewer.

Camera simulator

General

The camera simulator is a virtual camera in Kinovea. This camera can be used to evaluate the expected performances of real hardware on a particular computer.

In order to add a camera simulator use the Manual connection button on the camera tab of the explorer panel.

_images/manualconnection.png

In the manual connection dialog, use the Camera type drop down and select Camera simulator.

_images/addsimulator.png

Configuration

_images/config-simulator.png
Stream format

The following stream formats are available:

  • RGB24: the images are not compressed.

  • JPEG: the images are compressed.

When using the JPEG format, a set of images is compressed in advance and images are rotated to the output. This is to avoid any computer slow downs due to compression when using the simulator to evaluate if a particular camera configuration would be sustainable; as the JPEG compression would be done in the camera.

When using the RGB24 format, the current time and image sequence number is stamped on the image.

Tip

You can use the sequential numbers on the images in the recorded video to verify if any frames were dropped during the recording process.

Width

The width of the images.

Height

The height of the images.

Framerate

The target framerate of the stream.

Live delay

Feature description

The live delay function lets you delay the display of the live stream.

This function is very useful for self-coaching: set the delay to be approximately the total time of the exercise plus the time necessary to come back to the computer. The camera and Kinovea can then be left unattended. By the time you complete your exercise and come back to the computer, you should see a replay of the action.

The same approach can be used with a group of students or athletes, forming an uninterrupted queue of intertwined feedback loops.

Applying delay

To delay the display of the camera stream use the delay slider or the delay input box. The delay amount is in seconds.

_images/delaycontrols.png

The maximum amount of delay depends on the camera configuration — hardware compression, image format, image size, frame rate — and the memory allocated in the delay cache under Options ‣ Preferences ‣ Capture ‣ Memory.

If you wish to use a delay that is larger than the maximum that can be set using the slider, increase the size of the memory buffer under Options ‣ Preferences ‣ Capture ‣ Memory. Note however that this buffer is always allocated, even if you do not use the delay function.

Note

When using two capture screens at the same time the memory buffer is shared between the screens.

Recording modes

It is possible to record video while delay is active. The option selected for the recording mode impacts whether the delay is taken into account for the recording or not.

Recording mode

Delay

Camera

No

Delayed

Yes

Retroactive

Yes

Combining delay and recording can be used to record actions happening before the moment the record button is hit or triggered.

Time origin

When recording with delay, the time origin of the resulting video is set to the real moment the record button was hit or triggered.

For example we are filming a golf swing for a total duration of 2.5 seconds and a delay of 1.5 seconds. The recording is started via audio trigger when the club hits the ball.

The first image of the video will correspond to what the camera was filming 1.5 seconds before the club hit the ball.

The time origin in the metadata file will be set to the club-ball impact. All of the action happening before the impact will be timestamped with negative numbers.

Pause and browse

Pausing the camera using the pause button Pause freezes the delay buffer.

This enables manually navigating the recent history of the camera stream using the delay slider.

Recording

Starting and stopping recording

Recording can be started manually by using the record button Record in the capture controls, or automatically by configuring an audio trigger.

_images/capturecontrols.png

To configure the audio trigger, see Options > Preferences > Capture > Automation.

Replaying the captured video

The videos recorded during the session are added to the list of recently captured files.

A recording can be played back by double clicking the thumbnail of the recently captured file or by right clicking and choosing Open.

New recordings can also be played back automatically by using a replay folder observer on the target folder of the capture screen.

Output options

The path to save the recording and the file name of the output video are based on the options under Options ‣ Preferences ‣ Capture ‣ Video naming.

The duration of the recording is either set manually when using the stop recording button, or automatically when using the Stop recording by duration option in Options ‣ Preferences ‣ Capture ‣ Automation.

Recordings can be compressed or uncompressed based on the option set in Options ‣ Preferences ‣ Capture ‣ General.

Recordings can ignore or take into account the live delay based on the recording mode set in Options ‣ Preferences ‣ Capture ‣ Recording.

For high speed cameras the framerate set in the metadata of the output video can be customized by configuring a replacement framerate in Options ‣ Preferences ‣ Capture ‣ Recording.

Performances

When the recording process is not fast enough to sustain the camera framerate, images are skipped (dropped) and not added to the output video. This can corrupt time measurements made on the output video, as this assumes stable frame rate.

In order to make the most out of the camera without any frame drops, it is important to identify the bottlenecks and configure the camera and Kinovea according to your requirements and the trade offs you are interested in.

Use the infobar to get feedback about performances.

_images/infobar2.png

See also: Capture screen user interface.

Recording mode

The recording mode Retroactive should not yield any frame drops but the duration of the output videos is limited by the amount of memory allocated for the delay buffer. Furthermore, this mode renders the camera unavailable for a small duration after the recording, while Kinovea performs the actual export.

The other two modes record on-the-fly and can record for arbitrary long periods (based on storage space) and without post-recording pause. However they require more configuration if the camera does not already produce compressed images.

Compression

For cameras that do not produce an already compressed stream, Kinovea may compresses the images on the fly on the CPU. This process is usually slow compared to the frame rate that the camera can sustain.

You can disable compression on recordings under Options ‣ Preferences ‣ Capture ‣ General.

When compression is disabled, the amount of data to store on file is between 5 to 10 times larger. In this configuration, the speed of the storage medium might become the new bottleneck. Solid state drives (SSD) are very much recommended instead of hard drives (HDD). NVMe SSD offer even better performances. Ultimately it is also possible to configure a RAM Drive to further increase the storage speed.

Automation scenario

It is possible to setup Kinovea to record and replay videos multiple times in a row without manual interaction.

To do this set the recordings to start from the audio trigger and stop from the recording duration preset. Add a replay folder observer monitoring the capture folder, this will automatically open and play the last recorded video.

Replay folder observers

Feature description

Replay folder observers are special playback screens that constantly monitor a specific folder for new videos. When a new video is created in the monitored folder, the playback screen automatically loads it and starts playing it. This can be used to automate the capture and replay the feedback loop.

The replay folder observer works at the file system level and is independent from the source or process creating the video. The videos can be created by the same or another instance of Kinovea, or by an external process.

Apart from the monitoring mechanism, the video is loaded normally. In particular the annotation file created by the capture screen is loaded and drawings created on the capture side are imported.

Creating a replay observer

You can create a replay observer from the following places:

  • From the menu File ‣ Open replay folder observer…. This opens a folder selection dialog.

  • In the files and shortcuts tabs of the explorer panel, right click a folder or a file and choose Open as replay folder observer.

_images/menuopenasobserver.png
  • In the capture tab, right click a file in the capture history and choose Open as replay folder observer.

  • In the playback screen, right click the main video image and choose Open a replay folder observer…. This opens a folder selection dialog.

  • In the capture screen, in the recently captured files list, right click the thumbnail of a file and choose Open as replay folder observer.

The recently opened folder observers are listed under the menu File ‣ Recent.

Note

The menus on files are opening the observer on the parent folder of that file. This observer will immediately load the most recent file of the folder which is not necessarily the file used to start it.

Activation and deactivation

When manually loading a video into a replay folder observer, the observer is not deactivated and will continue to monitor the folder.

In order to deactivate the monitoring and loading of new videos, you can turn the folder observer into a regular playback screen by clicking the observer icon in the infobar of the screen.

_images/menuobserver.png

Conversely, in order to turn a normal playback screen into a replay folder observer, click the video icon in the infobar of the screen.

Bidirectional annotation linking

The annotations created on the capture screen are stored in a companion KVA file next to the recordings.

When the recorded video is opened in Kinovea the annotations are loaded and can be modified.

Because the capture screen is simultaneously monitoring the annotation file it last exported, any changes to the annotations on the playback side will be reflected into the capture screen. The next recording from this capture screen will then use the updated annotations.

Exporting video and images

The video and image export options can be accessed from the export toolbar in the playback screen.

_images/exporttoolbar.png

Export a video with annotations painted on

To export the current working zone as a new video use the Video Video export button, the menu File ‣ Export video, or the context menu Export video.

This will open an export dialog with an option to take the slow motion into account. If checked the resulting video will use the current speed slider to determine the output framerate.

_images/exportvideo.png

The output video format can be selected in the file name selection dialog between MKV (Matroska), MP4, or AVI. The video codec is always MJPEG.

Note

Drawings added to the video are painted on the output images and will no longer be modifiable. Comments added at the key image level and other non directly visible annotations are not saved in the output.

Tip

To minimize the loss of information only export the video when absolutely necessary and otherwise keep the original video and save the annotations in a separate KVA file.

Export an image

To export the current image use the Image Export image button or the Export image entry of the context menu.

The output image format can be selected in the file name selection dialog between JPEG, PNG, or BMP.

Export an image sequence

To export a series of images from the video, use the Sequence Export sequence button in the playback screen. This brings up a dialog to configure the frequency at which the images are taken from the video.

_images/exportsequence.png

If the checkbox Export the key images is checked, the frequency slider is ignored and only the key images are exported.

Export a dual video or dual image

When using two playback screens, use the Video Export video or Image Export image buttons in the joint controls to create a single output containing both input side by side.

The input videos will be combined frame by frame using the configured synchronization point.

Export a slideshow or a video with pauses

To export a slideshow video where only the key images are shown, use the Slideshow Export slideshow button.

To export a video where the video is paused on key images but otherwise plays the action normally, use the Paused Export paused button.

Both options bring up the same dialog to configure the duration of each key image in the output video.

_images/exportslideshow.png

Exporting data and measurements

Save annotations

To save annotations use CTRL + S or the menus Save or Save as…. This saves annotations to a KVA file, the native annotation format of Kinovea.

Export measurements from kinematics dialogs

To export measurements such as point positions, linear velocities, or angular accelerations, use the kinematics dialogs. The kinematics dialogs are found under the Tools menu: Scatter diagram, Linear kinematics, Angular kinematics, Angle-angle diagram.

To export data use the export options at the bottom right of the dialogs.

_images/exportdata.png

This will export the data in CSV format, either to the clipboard or to a file. The first column is the time, either in milliseconds or normalized, and the other columns are the data sources.

The measurements displayed and exported from the kinematics dialog use the filtered coordinates. The filtering process is described in the About box of the Linear kinematics dialog. You can control filtering from the preferences at Options ‣ Preferences ‣ Drawings ‣ General ‣ Enable coordinates filtering.

Export data to spreadsheet

Another option to export data is to use the converters menus under File ‣ Export to spreadsheet.

The following options are available:

  • LibreOffice (.odf)

  • Microsoft Excel (.xml)

  • Web (.html)

  • Gnuplot (.txt)

The underlying mechanism for these menus is to convert the annotation data into the output format: it does not perform any higher level computations. This approach has the following differences with the export from the kinematics dialogs:

  • The coordinates do not use filtering.

  • Only the coordinates are exported, not any higher level measurements like speed or acceleration.

  • Each object is exported independently in its own table.

  • Key images times are exported.

  • Stopwatches are exported.

  • The time column uses the configured timecode format and may not be numerical in nature.

To use Gnuplot to plot the trajectory data on a 3D graph with time as the third dimensions, you can use the following commands:

gnuplot> set xlabel "Time"
gnuplot> set ylabel "X-AXIS"
gnuplot> set zlabel "Y-AXIS"
gnuplot> set ticslevel 0
gnuplot> splot "weightlift.txt" using 1:2:3 with lines
_images/gnuplot.png

Citation examples

If you used Kinovea in your research we would very much appreciate it if you included it in your bibliography.

You can find examples of formatted citations in the About dialog under the Citation tab.

Note

Kinovea is an open source project and is not published by a company, thus there is no meaningful “city” or “country” of origin as is sometimes requested by journals for software references.

Frequently asked questions

This is a list of the most frequently asked questions about Kinovea.

1. Can I use Kinovea on MacOS? on Linux? on Android? on iPhone?

No, Kinovea is only supported on Windows.

2. Can I use Kinovea in my school? my university? my bike fit or shoe fit business? my physiotherapy or podiatry practice?

Yes, you can use Kinovea for any purposes, including but not limited to personal, professional, commercial, academic and research.

3. What is the price of Kinovea?

Kinovea is a free program, it does not cost anything to use.

4. Is Kinovea compliant with HIPAA or GDPR?

Not applicable.

Kinovea does not store any personal data and does not transmit anything over the internet. It is a standalone desktop application, similar to a media player with extra functions, and does not require the Internet to function. The only aspect of the program that makes use of the Internet is the menu “Check for updates…”, which consults a file on the Kinovea web server and reports if a new version is available or not.

5. In which city is Kinovea made?

Not applicable.

This question comes up when a scientific journal asks for bibliographic references. Kinovea is not a company and does not have headquarters in any city. There is no meaningful way to answer this question. Please ask the journal about their dedicated format for citing Open Source software. You may also check the built-in citations examples in the About dialog.

6. Which camera should I buy?

It is not the place of Kinovea or its authors to suggest one camera brand over another. It is best for the project to stay neutral. Besides, there are too many parameters specific to each use-case that it is not possible to answer this question with anything else than “it depends”. Please register on the forum and ask the question there, providing as many details and context as possible, this way other users can share their experience directly.

7. Why is the speed of my video slowing down by itself?

The speed slider is forced down when the original frame rate of the video cannot be sustained by the player.

Software update

New versions are published on the project website:

https://www.kinovea.org/download.html

To check if a new version has been published from within the program itself you can use the menu Help ‣ Check for updates. This function requires an Internet connection.

The function simply consults a text file on the web server that contains the version number of the latest published version. There is no automatic update mechanism, to update you must download and install the new version manually.

Command line options

Kinovea can be started from the command line.

Usage

> kinovea.exe
    [-name <string>] [-hideExplorer] [-workspace <path>]
    [-video <path>] [-speed <0..200>] [-stretch]

Options

-name <string>

Name of this instance of Kinovea. Used in the window title and to select a preference file.

-hideExplorer

The explorer panel will not be visible. Default: false.

-workspace <path>

Path to a Kinovea workspace XML file. This overrides other video options. To create a workspace file use the menu Option ‣ Workspace ‣ Export workspace.

-video <path>

Path to a video to load.

-speed <0..200>

Playback speed to play the video, as a percentage of its original framerate. Default: 100.

-stretch

The video will be expanded to fit the viewport. Default: false.

Examples

> kinovea.exe -video test.mp4 -stretch
> kinovea.exe -video test.mp4 -speed 50
> kinovea.exe -name Replay -workspace myReplayWorkspace.xml

Control from other applications

While Kinovea is running it is possible to send it commands from a third party application or script. For example this can be used to trigger recording based on a software event.

The commands use the Windows messaging system and the WM_COPYDATA message. The exact way to create these Windows messages depends on the programming language or platform used to write the third party application. Each command has to be sent separately. There is no return value.

The general format of the messages is the following:

Kinovea:<Category>.<Command>

The list of categories and commands is available under Options ‣ Preferences ‣ Keyboard.

For example:

Kinovea:CaptureScreen.ToggleRecording

Kinovea:PlayerScreen.TogglePlay

Tip

This mechanism works even if Kinovea is not in the foreground. If there are multiple instances of Kinovea running you will need to send the message to the correct instance based on its name.

Communication channels

The project uses the following communication channels and social networks: