View Videos and RMCTools Plots with VideoSync (Qt C++ and Python versions)

VideoSync is a Qt C++ application that allows the user to load an RMCTools plot file alongside one or more video files and play them simultaneously. In doing this, the user can observe what was happening to their physical system while the RMC was reporting data.

C++ version

Executable

Download Windows executable (85.1 MB)
With the exception of the K-Lite Codec Pack (see the Requirements section below), this executable should contain everything you need to try VideoSync. Simply extract the zip file, install the K-Lite Codec Pack, then run VideoSyncCPP.exe.

Source code

Download C++ source code (2.6 MB)
This project was built with the Qt framework. For more information on developing and running Qt applications, see Getting Started | Qt Creator Manual.

Requirements

The user should make sure the K-Lite Codec Pack is installed (the Basic version is sufficient). If it is not installed, the application may be unable to load videos.

Building the Help Documentation

The help documentation is built using Jekyll; see their website for instructions on setting it up. Once it is set up and installed, along with Qt, the help documentation can be built by running the script help/makehelp.bat. Then, copy the folder help/_site, paste it into the same folder as VideoSync.exe, and rename it help.

Known bugs

VideoSync has not been thoroughly tested, and is provided without any warranty.
The following bugs have been observed in VideoSync:

  • If the K-Lite Codec Pack is not installed, the application may crash after attempting to load a video.
  • In some cases after installing the K-Lite Codec Pack, the application may fail to display videos in their views, instead showing a black rectangle. Saving this configuration, restarting the application, and reloading the configuration may fix the issue.

Python + PyQt6 version


Download Python source code (4.43 MB)

Before the C++ version started development, VideoSync was being developed using Python and the PyQt bindings for Qt. It includes some features not present in the C++ version, but also has some drawbacks.

Comparison of C++ and Python versions

C++ Python
Likely faster, due to being compiled Likely slower
No arbitrary limit on the number of additional videos Only one additional video allowed
Each additional video can have its own offset from the base video Additional video cannot be offset from base video
Only base video plays live; additional videos update once base video is paused Additional video plays alongside base video
No video export Video can be exported with input videos and plot information
Plot display should more closely resemble RMCTools Plot display may differ from RMCTools