1

(1 replies, posted in General)

Hi,
Just to confirm that the timestamps in the file are not hardware timestamps. This is a topic of interest but so far I haven't looked too much into how to get the timestamps when available.

On a related note I'm also interested in trying to measure the accuracy and stability of the frame rate of arbitrary cameras by independent means (like filming an array of LEDs flashing at known frequency to create a binary clock). With the goal of controlling the assumption that the frame rate is stable and that time fluctuations are extremely small or at least much smaller than other sources of error.

Aside from small frame rate fluctuations a possible source of error is when a frame is completely dropped from the output. There should be a drop counter in the info bar of the capture screen. A single frame drop will throw inter-frame arithmetic out of wack. Using recording mode "retroactive" should help if the duration of the recording fits in memory.

2

(0 replies, posted in General)

Hi everyone!

I just published Kinovea 2025.2. This is a minor release with several improvements, translation updates, bug fixes, but no new major features.

Links
   
    Kinovea-2025.2.0.exe (installer)
    Kinovea-2025.2.0.zip (self contained "portable" archive)

List of changes here: What's new in Kinovea 2025.2

Please report as soon as possible if you find any problem.

Cheers,
Joan

3

(1 replies, posted in Bug reports)

Thanks for the report. I think it's a combined problem in the file explorer tree view component accessing the network drives and trying to cache the little file icons in the background. Incidentally I also noticed a slowdown on the Favorites tab when a sub-folder has a large amount of files, like 150 files or so.

I think there is utility in accessing network drives for some users though so it should be an option.

The file explorer component is also causing issues on some Windows versions and on Wine. It is hooking into very old and low level Windows API. I will try to address it asap but it's not a quick fix. Although maybe a temporary measure would be to make a build without the explorer tree view component at all.

4

(18 replies, posted in General)

Tam wrote:

I am using Kinovea 2025.1.1, which has been updated to include Vietnamese.

However, when I select Vietnamese, the interface still displays in English.
How can I fix this?

Sorry about this, the build system was not adding the Vietnamese resources to the final package. It's fixed now and a version with the fix should be released shortly.

If you want to return to default settings you should also delete the content of the "Windows" directory in the preferences as that's where the delay is stored. (and in that case probably delete the "Workspaces" content since workspaces are pointing to windows).

For it to work correctly there must be at least 10 seconds (or whatever is the delay value) worth of images already in the buffer when recording starts so recording shouldn't be triggered before that. Could it be that? This should show in the displayed image as black with a negative timer until it's available. (if configured to show the delayed image).

It also depends on the Recording mode configured in the preferences. Preferences > Capture > Recording > Recording mode and delay > Delayed or Retroactive.

This should be fixed in the next release.

7

(4 replies, posted in Bug reports)

Sorry I missed these posts. The translations are integrated into the codebase at irregular intervals and they end up in the next software release, these happen a few times a year. I'm in the process of setting up continuous builds though, so people can test the latest changes faster, including translations.

8

(1 replies, posted in General)

The intended mechanism is that the setting in the global preferences is used when you create a new capture screen in a new Kinovea window. But after that the capture screen itself stores its own configuration, to allow for different names in different capture screens. And within a given Kinovea window it will remember the last capture screen you opened and what name was used there. So when you close and re-open a capture screen it will reuse the name that was used in that capture screen, independent of what's in the global preferences.

So in your case I think if you change the name inside that capture screen, it should retain it from now on, even if you close and re-open that capture screen. And if you create a new window and add a capture screen there, or create a second capture screen in the same window, it should use the name from the global preferences.

Hopefully that made sense, I'm still in the process of updating the documentation.

The main change is that essentially anything you can configure on the capture screen user interface (delay, max duration, capture folder, file name), is not coming from the global preferences but from the preferences of that particular window. The window can either be in "continue where I left off" mode or use a specific configuration, this is changed in Window > Window properties menu.

9

(7 replies, posted in General)

This should be fixed in the next build.

10

(2 replies, posted in General)

Details: when you click on Enable UDP trigger in the preferences it will start listening on the UDP port configured. (You still need to "arm" the trigger as for audio in the capture screen (lightning icon)).

The UDP message itself is ignored, you can send an empty string.

It works from different computers. I just double checked by installing an app called "UDP Sender / Receiver" on my mobile phone and I was able to trigger the capture remotely. (In this case it insisted on sending a message so I just set it to "a").

Here is a small python script sending a packet every 10 seconds. You can send to the IP of the computer with Kinovea. If you don't know it you can send to 255.255.255.255.

import os
import socket
import time

# Send an empty udp broadcast every 10 seconds.
def broadcast():
    print(f'Broadcasting at {time.ctime()}')
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    s.sendto(b'', ('192.168.0.228', 8875))
    s.close()


if __name__ == '__main__':
    while True:
        broadcast()
        time.sleep(10)

11

(7 replies, posted in General)

Yes you're right, the code is shared with the exporter that exports frames by time interval so it enumerates all frames and decides which ones to export. That is indeed very inefficient for key images, I'll fix it.

12

(7 replies, posted in General)

Hi,
I just tested here it took 17 seconds to export 100 key images.
Let's figure out what's different, maybe there is some context that's triggering a massive slow down. 1 minute per frame?

My source video is 1920x1080, is your video much larger and you are exporting at full HD? It has to repaint the source so performance is partly related to the source size.

To export the images I used menu File > Export images > Key images…

The resulting files are indeed very large.

OK, I think I see what's going on, it seems it's exporting PNG files in all cases even when the extension is set to JPEG. That would explain both the large size and the problem opening the file in other software. I'll check what's going on.

13

(3 replies, posted in Bug reports)

It's a very generic error message, I can't investigate without more information on how to reproduce the problem or at least a better understanding of what the program was doing when it happened.

Can you send me the Unhandled exception files and log files or create a github issue? Does it happen only on 2024.1 or also 2025.1? Are you also using remote desktop?

Thanks.

For 2. Guides, I think the simplest way to implement that at the moment would be an option to enable "snapping" to a virtual grid, like every 20 pixels or similar. I will double check how it works in various software.

I think the other solution is that the first object is placed freely and then when you move another one there is a guideline that appears to align it. This second solution means it needs to check all other objects while moving. But it allows aligning center to center which could be desirable. If you have a prototypical example of an application where it works well don't hesitate to share.

I would like to find something useful while keeping things visually simple.

I know of one example where it just snaps the center of the rectangle to evenly spaced virtual grid lines, this is nice and simple (but can't left-align, they are always center-aligned).

For 3. element size, is it about the timer/labels? The object size is based on the font size for these.

Yes, it's crucially important! I made a fix and I'm testing it.