Chas Tennis wrote:For a Kinovea side-by-side comparison there could be a total of 4 different frame rates for the 2 source videos:
1) video #1 - source frame rate
2) video #1 - recording frame rate
3) video #2 - source frame rate
4) video #2 - recording frame rate
Yes, this scenario gets confusing very quickly. To add to the confusion, there is also the "display" framerate, when you change the "speed slider" value. The final framerate of the composite video takes the speed slider value into account. Note that the speed slider value is given with regards to the recording framerate, not the file framerate.
When you have two videos with differing "recording" framerates, you need to be aware of the value of the following setting: Options > Preferences… > Playback > General > Link speed sliders when comparing videos.
If checked this option will force the speed sliders of both videos to use the same value (ex: 50%), which should make them use the same reference time scale. So if you had filmed the same performance with two different cameras at different recording framerate and the cameras output different file framerates the videos should still be synchronized out of the box ( as long as you set the recording framerate).
I think it's easier to think about all this in terms of frame intervals. The inverse of the recording framerate gives the real world duration between the captured moments.
Chas Tennis wrote:Would frame rates of the two source videos be found in 'metadata' of the source videos?
Yes the framerate of the video is a metadata. The default display framerate of the video can be found in Kinovea in the top bar above the player screen or in Video > Configure timing in the bottom panel. In Windows by right clicking the file and going into Properties > Details > Video > Frame rate.
Chas Tennis wrote:Kinovea produces a video file with another frame rate. How does Kinovea select a default frame rate? Does the selected Kinovea default frame rate depend on the frame rate of which source video happens to be on the right or the left?
It should not depend on which video is on the left or right.
Each video has its frame interval computed, for the synchronized playback. The common player uses the smallest frame interval to drive the dual video playback. Unless there is a bug, this smallest interval is what should be used in the final composite file.
There is an extra check to limit the interval to 10ms at the smallest, so the final file should never be faster than 100fps.
Chas Tennis wrote:How can/should the user select a different frame rate than the Kinovea default frame rate?
You cannot manually specify the output framerate of the composite video at the moment.
Chas Tennis wrote:If the user selects a Kinovea video frame rate that is accepted by, for example, Youtube or Vimeo, then if frames are still skipped it would probably be a video website issue. ?
You can reopen the composite video in Kinovea and verify frame by frame that everything is there. Maybe it's possible that some combinations of framerates would result in missed frames in one video? Normally since it's driven by the smallest frame interval this shouldn't happen. Instead, the lower frequency video should have duplicated frames.
Chas Tennis wrote:Are the source video frame rates (metadata) still in a side-by-side Kinovea video file? Could one of those source video frame rates somehow be mistaken for the Kinovea frame rate by a video hosting website?
No the default display framerate of the original videos is no longer present in the final composite video.
If you want to make some experiments you could use the KSV test file format. Here is a KSV file:
<?xml version="1.0" encoding="utf-8"?>
<KinoveaSyntheticVideo>
<FormatVersion>1.0</FormatVersion>
<ImageSize>800;800</ImageSize>
<FramesPerSecond>20</FramesPerSecond>
<DurationFrames>100</DurationFrames>
<BackgroundColor>255;128;0;0</BackgroundColor>
<FrameNumber>true</FrameNumber>
</KinoveaSyntheticVideo>
Copy this in a new text file and save with extension .ksv. Kinovea has special code to interpret this as a video, for testing purposes. You can change the FramesPerSecond field for experimenting. And inside Kinovea you can change the "recording" framerate as if it was a regular video.