Sorry, forgot to mention that you can load the video to a replay window in Kinovea, right click on it, and export selecting mp4. Kinovea will use the mpeg4 codec that might be readable by your iPhone.
All native saving of Kinovea after recording either use the mjpeg or rawvideo codec and may not be readable by the iPhone.

VLC for example allows to install different codecs, but I haven't tested that until now.

If you are interested as a golfer, in the golfsimulatorforum there is a post about a comprehensive scripting system supporting kinovea in setting up a golf scene. It also allows to export the recorded videos to different codecs on the fly to have them available for further usage.

Be aware that MP4 or MP4v is the so called container of the video but may contain different codecs. This often is misunderstood.
Kinovea uses the mjpeg codec to store videos. The mjpeg stores each full frame in the video file, meaning that the video contains one jpeg image after the other. Many video readers can not handle that format.
iPhones in general can deal with H264 or MOV codecs. They are compressed formats and reduce the file size by a factor of about 1/10, depending on the setting during compression.
There are many programs available that may do the conversion.

you have to install the IDS-software component 4.95. It works with Kinovea.
IDS-peak does not work

I actually use Pylon Version 6.0.1 with Kinovea 0.9.4 and it works perfect.
To my knowledge, version 6.0.1 is the highest version that will work with Kinovea (Joan may correct this information).

To get the drivers you may enter a web search:
pylon 6.0.1 english
and you may find the correct Basler web page. After entering your data (email etc.) you will have access to download all necessary drivers.

20

(6 replies, posted in Cameras and hardware)

Hi Joseph, all machine vision cameras from Daheng,Basler and IDS (global shutter cameras) may fit your need. If the specification of the camera is, for example 160fps, you can reduce the height of the image, resulting in an about proportional higher fps. That means, reducing to the half will double the fps. However, be aware that an increasing fps alone does not reduce the blur. Blurring is more related to the acquisition time (shutter speed) you use. While reducing the acquisition time you need a lot of lighting and (!) a light that has a low flicker rate. Going over 120fps and below 1000 microseconds shutter speed, you would need a light that is absolutely (!) flicker free.

That's a good choice.
To get the right lens, a lens calculator may help. Basler actually has updated their lens selection tool also to get infos of (cheaper) S-type lenses. You may enter the 1/3" chip, your desired field of view and the distance to your object and will get the correct lens type.
Be aware that when using S-type lenses the focus will be determined by screwing the lens into the camera. Therefore it is important that the focus center of the lens fits to the camera. To me it is always a high "fiddling factor" to get a sharp focus, when using the 2 threaded ring system. There are C-mount to S-mount adapters available that might ease this procedure. If you use a C-mount lens (min. 1/3") it makes it much easier.

The native video format Kinovea uses is a format (codec) that contains a full image for every frame. This can be mjpeg or rawvideo, whereby all compressed formats are using the mjpeg codec.
The compressed format can be stored as mp4, mkv or avi container.
The uncompressed format can be stored as mkv or avi container (the mp4 container always uses compressed images)
All these formats have a full image stored in each single video frame that is perfect in doing video observation and editing frame by frame. Cutting the video is simple due to the existence of a full images in every frames.

However, some video programs (like windows media player) cannot replay these formats (codecs), if not an appropriate codec is installed separately.

In your case, the video format (or better named codec) is H.264 in a mp4 container. This common codec can be replayed by most of all video players. However, it contains K-frames, having a full image and B-frames in between, not containing a full image.

Therefore, a video with a H.264 codec cannot be cut at any position without having black frames. It has to be re-encoded to get a clean output video.

The quality of the output video depends on the parameters you are using during re-encoding. If they are not specified, ffmpeg uses default values (about medium quality).

Every frame in a video (full frame like mjpeg, K-frame or B-frame) contains a PTS (presentation time stamp) that determines the position of this specific frame in the video line. The first frame contains the value 0 (under standard conditions).
If you cut or trim a video starting after the first frame, the first frame in the output video contains a value of non 0. Therefore, you have to correct the PTS during the trimming procedure. If you omit this step, the video program often does not know when to start the video. Kinovea expects the first frame to have a PTS as 0. VLC may recognize the non 0 value and corrects it.

To control the quality of the output, parameters may be used depending on the type of codec.
If the target should be H.264 codec (mp4 container), the -crf (value) and -preset (value) parameters are appropriate
-crf 0-51: 0 is the best, 51 is the lowest quality
-preset (value) has a literal parameter like fast, slow,…
a list can be found at https://trac.ffmpeg.org/wiki/Encode/H.264

I’ve never used the -g (value) parameters. You might use -g 0 to prevent any B-frames between K-frames. But I think it is more consistent to either use the H.264 or the mjpeg codec.


In the following examples, a segment of a video is cut from position 0.5 to 0.8 second

Example of creating a "good“ quality output video with the H.264 codec might be:
FFmpeg -i Infile.mp4 -ss 0.5 -to 0.8 -c:v libx264 -crf 5 -preset slow outfile.mp4

If the target should be a mjpeg codec (mp4 container), the -crf and -preset may not be used. Instead use
-q:v (value), value ranging from 2-32, 2: highest quality, 32: lowest quality
Example of creating a "good“ quality output video with the mjpeg codec might be:
FFmpeg -i infile.mp4 -ss 0.5 -to 0.8 -c:v mjpeg -q:v 5 outfile.mp4

Cutting a video at an exact position:
If the source video contains the mjpeg codec, the start/end/duration time position can be used without re-encoding:
FFmpeg -i Infile.mp4 -ss 0.5 -to 0.8 outfile.mp4
or better
FFmpeg -i infile.mp4 -ss 0.5 -to 0.8 -c:v copy outfile.mp4

(the "copy" parameters prevents re-encoding)

Influence of time position on the exactness:
If the start position is used before the infile, ffmpeg uses an approximation to find the start position, but it is faster:
FFmpeg -ss 0.5 -i infile.mp4 -to 0.8 …
If the start position is used after the infile, ffmpeg uses a more exact frame position to find the start position, but is somehow slower:
FFmpeg -i infile.mp4 -ss 0.5 -to 0.8 …


To create a video having a correct PTS-value of 0 for the first frame, a video-filter has to be inserted (re-encoding is mandatory)
FFmpeg -infile.mp4 -ss 0.5 -to 0.8 -vf "setpts=PTS-STARTPTS“ -c:v mjpeg -q:v 5 outfile.mp4

To tell ffmpeg the frame rate of the invideo, -r (frame rate) may be used before the infile, specifying the frame rate of the infile
FFmpeg -r 100 -i infile.mp4 …

However, you should be sure that this value is correct.
You might determine it using the ffprobe- program that comes with ffmpeg, creating a batch-file (i.e. ffprobe2.bat)

@echo off
<path to ffprobe>\ffprobe.exe -v error -show_format -show_streams %1
pause

Then call it at the command line:
ffprobe2 infile.mp4
and it displays the metadata of the infile.mp4



My recommendation in your cases could be the following:

high quality (not highest) H.264 target video:
ffmpeg -i unCut.MP4 -ss 18.440 -to 20.440 -vf "setpts=PTS-STARTPTS"  -c:v libx264 -crf 3 -preset slow cut.MP4

high quality mjpeg target video:
ffmpeg -i unCut.MP4 -ss 18.440 -to 20.440 -vf "setpts=PTS-STARTPTS"  -c:v mjpeg -q:v 5  cut.MP4


REMARK:
Only use Quote ABOVE for the Videofilter.

Hope that helps

Hi Mikel,

to my experience there are 3 options available:

1. USB2-Camera OVC compatible, global shutter (!) cameras from  ELP, Kayeton and many others
They cost about 50-100 Euro/Dollar. Available in black/white or color.
The disadvantage is, that you cannot control all parameters. You may select fixed frame size / fps - combinations but shutter speed may not be modified.
2. Machine vision cameras having the IMX273 1/3“chip, available from Basler,IDS, Daheng, working with Kinovea.
All are global shutter cameras. 1,6 MP resolution, 227 fps. Available in black/white or color. The interface is USB 3.0 (or better)
These cameras can be controlled in about all parameters. Reducing the frame height, the framerate can be tuned to over 500fps. The shutter speed can be fully controlled to reduce blurring in high speed video recording. 
Due to the relative small chip size, also cheap S12-Lenses can be used at a price between 15-100 Euro, depending on the quality. The monochrome models have a higher light intensity and binning can be used (combining multiple pixels to one pixel), that reduces the amount of necessary light dramatically.
The cheapest if from Daheng, about 225 Euros/Dollars plus shipping + VAT, so all about 310 Euro
3. Machine vision cameras having the IMX174 1/1.2“ chip. These cameras are of higher quality and need less light. However, the cheapest one is from Daheng, still at a price of 450 + VAT + handling. Due to the 1/1.2“ chip, the price of the lenses are high, starting at about 350 Euro.

My recommendation would be the IMX273 monochrome (or color if you use colored orientation points). It’s a solid camera (MTBF >30000h), all parameters can be controlled and cheap lenses may be used. I could go up to 15mm lenses. If you go higher, they have to be selected carefully to assure a proper focussing of the lens.

24

(15 replies, posted in Ideas and feature requests)

@AlexanderH
Finalized the function of overlaying either an image or a segmented video from a second camera to the main camera, like on the last example video.
A comprehensive toolset has been developed to create and recall even comprehensive setups of kinovea, allowing post-processing the videos after each recording.
If you are interested, you may send me a PM under  reiner(dot)hente(at)gmail(dot)com.

25

(15 replies, posted in Ideas and feature requests)

@AlexanderH
There is a new video in the onedrive directory (see previous post) that may fit your need.
It identifies the bib number AND the jumper for confidence reason

26

(15 replies, posted in Ideas and feature requests)

All of your conditions are met in the side-by-side solution, that is available right away.
Did you take a look?
Creating a superimposed image is of course possible but would take some time to create and is not as easy as it looks. It then should be versatile and adaptable.


Regarding your bandwidth:

Cam1:
1920x1024 * 60 = 125MB/s in Mono
1920x1024 * 60 * 3 = 375MB/s in Color

Cam2:
1280x720 * 20 = 18MB/s in Mono
1280x720 * 20 * 3 = 54MB/s in Color

summed up (NETTO without overhead, no compression):
Mono 143MB
Color 429MB

—> USB 2.0 supports about 30-40MB/s netto
—> USB 3.0 supports about 450 MB/s netto
—> Compression factor of jpeg mostly is about 1:10 (depending on the camera, mostly not specified by the manufacturer )
—-> USB 3.0 might be needed in color, depending on the image compression factor
—-> the critical camera might be cam1

—> if the USB-transfer rate of your laptop is too small, you will get arbitrarily dropped frames

27

(15 replies, posted in Ideas and feature requests)

To visualize what I mentioned 2 videos have been created, using the post-processing function combining a side and front video of a long jump. To see it working you might run the videos from the link below. An info-file is enclosed.

https://hente-my.sharepoint.com/:f:/g/p … Q?e=lKLA48

28

(15 replies, posted in Ideas and feature requests)

There might be a solution of using automatically post processing the recorded videos from both cams.

First there are some questions to clarify:

1. What type of information you would like to give to the jury, an (one) image or a video
2. At which time the judges will take a look on the result, just after the jump or do they scan the jumpers afterwards one by one
3. For what do you need to capture the image at the time of the jump? To see the bib number or to see the take-off?
4. How do you start the recording, manually or using a trigger at a given moment?
5. What is the resolution of both cameras in use?
6. Do you use the same framerate on both cameras and how high is it?

As Joan already mentions, the mode of recording in principal does not influence the framerate but may be related to the system bandwidth.
It might be better to use the retroactive-mode, it gives a more stable video-streaming due to exclusively working in the computer memory without disk access interference. To my personal experience it is even more stable to use separate instances for each camera and not to use the dual recording mode in one single instance. Comparing both methods on my computer it has been shown that the total cpu-load rather is smaller if one Kinovea-instance controls one camera, compared to the dual recording mode.

A technical more simple solution would be to create a horizontal side-by-side video of the whole jump, using the 1. cam on the left side as the leading video that controls fps, video resolution and image quality, padding the 2. cam to the right side.

29

(27 replies, posted in Bug reports)

@niraj_k

do not really understand at which point it stucks. Can you open the file in another video program ?

30

(27 replies, posted in Bug reports)

the log shows that it loads the camera plugin-manifests but did not initialize any machine vision cameras.

as a first step, I would try to remove/rename the plugin-folders to see if it starts:
rename the folder ...\appdata\plugins
to (for example)
...\appdata\plugins-org

If it will start, you could then add exclusively the folder of your cameras in use (IDS,Basler,Daheng)

What camera do you have installed?