1

Hello,

Would love some feedback on the timecode format.

Considering the primary use case for Kinovea is short clips of under a minute, I feel the default timecode format is needlessly verbose and illegible.

https://www.kinovea.org/screencaps/0.9.1/timecode.png

I am considering the following options:

1. Automatically adjust to the magnitude of the video length.
- If the video is less than an hour, don't show the hours section.
- If the video is less than a minute, don't show the minutes section.
- Then, do as it is now: always show seconds and show hundredth or milliseconds depending on number of frames per second.

I didn't do this initially because I feared it wouldn't be clear what the values would be, but I don't think it's a valid concern anymore. This could also be made optional with a new option in preferences to force a fixed length timecode.


2. New formats options with max unit.
- You would tell the maximum unit you want to see.
- Currently this would be Hours, and there would be additional options for Minutes and Seconds.
- If you select Seconds and the video is more than a minute, it would still show seconds. (ex: 70 seconds).

Maybe there is a way to combine these two approaches.
High speed cameras are also more and more affordable and people use Kinovea with videos where the entire action happens in less than one second, so maybe there are also more options to have for this use-case.

Comments & ideas appreciated!

2 (edited by joan 2019-10-12 20:37:46)

I went ahead and started implementing the simplest option possible, and I realized I had already wrote that code a long time ago, I just had to flip a flag to enable it. (Barring some rounding issues I need to check).

So unless any counter-argument surfaces, this will be the new timecode format:

[h:][mm:]ss.mm[m]

Details:
- We always show the seconds.
- We only show minutes and hours if needed. (Based on the current time, not the total time).
- We show milliseconds if the framerate is over 100 fps.
- The separator between seconds and fractions of seconds is now a dot instead of a colon. (Follows ISO 8601). I now realize this may have been the most confusing thing about the old format.

This is much more convenient to use! Why nobody ever mentioned this? Sorry if I missed it.

There is still one shortcoming, when the video is over 1000 fps, milliseconds just won't cut it. And this is becoming more and more common, even from Kinovea's own capture screen. The work around at the moment will be to use the "Total microseconds" format. (Edit: or I'll just grab the log10 of the framerate to get the number of fractional digits required).

Edit2: ok the number of fractional digits is now proportional to the magnitude of the framerate so if you have a video filmed at 15 000 fps or whatever you won't loose any precision.

3

The timecode formats described in the latest message look very good to me. What I would like as an extra feature to be used with the default timecode format is to have time based on the time of day, e.g. HH:MM:SS, displayed alongside the video playback time. The time could be stored alongside the video file in a separate file, or as metadata in the video file.  For existing video files it would be useful to have a checkbox to enable displaying the time of day based on the time the file was written.

This would be especially useful for timing applications, of which I am the most interested.

4

I didn't mind the extra zeros, though I agree that >1h long videos are probably rare.

I would recommend more clutter though! Show the frame number by default. It's a very important bit of information.

5

Just in case, you can show both the time and frame number simultaneously using the last menu under Options > Time.

Another time format could be "Normalized" time, where the entire video or zone would be remapped to the 0..1 range. Could be useful for comparisons.

Absolute times would be great for line scan footage, and then a way to calibrate the time span and flow of columns, and a way to show time coordinates by placing special vertical lines or points on the frames...