Load a video, and then work your way down the left-side buttons from Calibrate down to Get Data Points. Use the single step buttons to position the video to the frame you want to set as t = 0. The zero positions for x and y are not critical. Set them wherever you like. When you are done tracking the object, use the buttons at the lower right to copy the data into the clipboard for pasting into a spreadsheet or nPlot. If all else fails, try reading the longer instructions below.
This browser-based app is designed to allow the video tracking of a moving object, like a tossed ball. The basic idea is simple: load a movie, use an object in the video to set the scale, and then click on the moving object in successive video frames to get position vs. time data. Sadly, it will not run properly on a smartphone, only on a Chromebook or other laptop.
This program works with mp4 format videos only. Most smartphones record movies in this format. Movies from iPhones have a different file extention (.mov instead of .mp4) but work just the same. Depending on your web browser, your phone settings might need to be changed. If your Chrome version is earlier than 104 and you can't update (as will be true for older Chromebooks), or you otherwise made a video and it won't play, then you need to record your videos using the H.264/AVC format. This can be done through the camera settings on your phone. The setting you want will be called "most compatible" or dissed as "less efficient". Use The Google to figure how to change this on your phone.
Do not edit the video on your phone. This scrambles the location of key information in the video file. While I may, at some point, figure out how to unscramble things, the strategy for now is to download the video from the phone without making any edits.
This should feel more or less like every other video playing app you've used. There's a play/pause button, a button to reset the video to the start, and a pair of buttons to step one frame forward or one frame backward. The progress bar can be used to jump to any point in the video, or dragged to move through it at pretty much any speed you like. To the right of the progress bar is a display to show you which frame you're looking at, and the total number of frames in the video. The Skip This Frame button is explained in the Taking Data section below.
If you were planning ahead, there is something like a meter stick in your video. Press the Calibration button to start. Click on the video where you want to start defining a line of known length, then click again where you want that line to end. Enter the actual length of this line and the units for that length in the popup window. The units in the data table headings will be updated to reflect your input. The calibration line will remain on the screen. You can toggle the display of the length value with the Show Scale button. You can re-do the calibration if you think you messed up, but you will lose any collected data.
This is an optional step. There are three buttons. The t = 0 button sets the zero of time at whatever frame is currently displayed. You set the positions for the zeroes of x and y with the cursor. You can re-do this, but if you have collected any data, you will lose it. The Show Origin will toggle the display of the x and y axes you just set up. It will also scroll the video to show the frame you set as t = 0. This can be useful for quickly resetting the video to the point where you started taking data.
If you do not set an origin, the point (0,0) will be in the upper left corner of the video, and t = 0 occurs at the first frame.
Click the Get Data Points button to start. Each time you click on the image, you will get a red dot, and the position of the dot will be loaded into the data table. When you click, the movie will automatically be moved ahead by the Frame Advance number in the lower left. If the movement of the object is small, the red dots can make it difficult to see things. You can hide the points (with the Hide Points button) while taking data. Everything will work the same, you just won't get that red dot when you click.
Click the Done button when you have finished, or Cancel to erase all your data and start over. (This does not affect the calibration or zero point.)
Acquiring a new set of data (by clicking Get Position Data again) means erasing the old set. Be sure you have copied that data to the clipboard (and pasted it into a spreadsheet!) before proceeding. If, for some reason, you don't want to save the old data, just lie and say that you have.
While you are tracking an object, the video controls remain active, so you can use them to move forward or backward before clicking the next point. The player always knows what frame it is showing, so the time information will always be correct...BUT read the next paragraph.
The timing of videos that have been grabbed off YouTube can be pretty messed up. This can show up as duplicate frames or missing frames. The Skip This Frame button is designed to address this. If you click to take a data point and you do not see the video image change, then you are looking at a duplicate frame. Click the Skip This Frame button. Sometimes the next frame will be a duplicate too. Just use the button again. But be aware that this is probably only a partial fix. If there are duplicate frames, then the there is a good chance that the whole time base for the video is off, and you are likely to get problematic values for things like the acceleration due to gravity. If you have access to a video editor, and the required expertise, you can maybe fix it. Otherwise, you will have better results making your own movies.
You can upload the horizontal and vertical postions (vs. time) separately. Pressing either the "x vs. t " or "y vs. t " buttons will copy two columns of data to the clipboard so that you can paste them directly into nPlot or some other graphing program. (But why would you want to use any other program?) If you want column headers with the data (for pasting into an electronic lab notebook) hold down the shift key while pressing the button. For your convenience, there is a Launch nPlot button right below the copy data buttons.
Use this tool to measure distances in the video. If there is no calibration set, the distance will be reported in screen pixels. The interface works just like the calibration: click at one end of the distance you want to measure, then click again at the other. Hold down the shift-key while clicking the Measure button to clear all the previous measurements.
In the Church of iPhone, a slow motion video will report that its playback frame rate is the frame rate actually used when filming it. When you play the video, it plays back at the same high frame rate, and so appears to be at normal speed. To get accurate motion timing, you do not need to adjust the time base. In the Church of Android, the video reports its frame rate as 30 fps, so that playback appears in slow motion. In that case, you do need to adjust the time base. Controls for that are at the bottom of the app window, towards the right.
Sigmund Video Analyzer v1.00
© 2022, 2023, Geoff Nunes
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License Version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Questions, brickbats, and requests for new features can be sent to doc at this website (noragulfa.com). Please don't expect a rapid response.
Change Log
v2.03
Front panel update: Adjusted margin to prevent scroll bars.
Documentation update: Added advice to not edit videos on the phone before download.
v2.02
Updates to Instructions.
v2.01
Bug Fix: Single step buttons were glitchy immediately after pressing the Show Origin button.
Minor Change: Corrected typos and added clarifications to the Instructions.
v2.00
Change: Frame rate now obtained by reading video movie data.
Change: Quicktime format from iPhone (.mov extension) can be read without modifying the file name.
Change: Warning message if user changes the time base for an iPhone slo-mo video.
Change: User gets confirmation message when setting the t = 0 frame.
Change: Video player now uses native video engine to eliminate laggy playback.
Minor Change: Tooltips now show up a bit sooner.
Minor Change: Instructions start with TLDR version for the impatient.
Minor Change: Added tool tips to the copy data buttons.
v1.08a
Minor Change: Version update text now handled in the script. Different message for first time use.
v1.08
Video frame rate display added to the front panel.
Minor Change: Typos fixed.
v1.07
New Feature: Pop-up message the first time Sigmund is run after an update.
Documentation: More details on video formats and files from iPhones added to the instructions.
v1.06
New Feature: Skip This Frame button to skip over duplicated frames.
New Feature: Launch nPlot button opens nPlot in a new tab.
Cleanup: Repair lack of adequate proof reading of the instructions.
v1.05
New Feature: Settings for analyzing videos up to 240 fps (1/8x).
Change: Clicking on the noragulfa.com logo now opens the home page in a new tab.
v1.04
Tweak: Improvements to frame rate determination.
v1.03
Change: Data upload is now accomplished with 3 separate buttons to make subsequent analysis easier.
v1.02
Bug fix: Issues related to using the app with a screen larger than a standard Chromebook.
v1.01
Change: Number of allowed data points increased to 100, because some people just want more.
Improvement: Warning message displayed for videos above 32 fps.
v1.00
Initial release: Aug. 16, 2022