OrientView is an orienteering video analyzing program which displays the video and the map side-by-side in real-time. Many image and video file formats are supported. Routes are created and calibrated using QuickRoute. Resulting video can be exported to an MP4 video file.
- Author: Mikko Ronkainen
- Website: github.com/mikoro/orientview
Download the latest version:
Windows 64-bit | Mac OS X | Linux |
---|---|---|
OrientView-1.1.0-Setup.msi | OrientView-1.1.0-mac.zip | Arch Linux AUR |
OrientView-1.1.0-win.zip |
For testing out the program, you can also download test data (mirror 1) (mirror 2).
Note: You will need a pretty recent video card (less than four years old) with up-to-date graphics drivers.
- Opens the most common image file formats (e.g. JPEG, PNG and TIFF).
- Plays all the video files that are supported by FFmpeg.
- Reads route data from JPEG images created with QuickRoute.
- Split times are input manually using simple formatting (absolute or relative).
- Supports video seeking and pausing. Different timing offsets are also adjustable to make the video and route/runner match.
- Supports basic video stabilization using the OpenCV library. Stabilization can be done real-time or by using preprocessed data.
- Different parts of the UI are fully adjustable.
- Draws all the graphics using OpenGL. Also utilizes shaders to do custom image resampling (e.g. high quality bicubic).
- Video window and exported video are completely resizable -- original video resolution does not pose any restrictions.
- Resulting video can be exported to an MP4 file with H.264 encoding.
- Program architecture is multithreaded and should allow maximal CPU core usage when for example exporting video.
- You need the video of the run, the map, the gps track, and the split times.
- If the video is in multiple parts, you need to stitch it together using e.g. Avidemux.
- Scan the map with high resolution (600 dpi TIFF format is preferable).
- Fix the map (orientation, cropping, levels etc.) and export one version with the original resolution (TIFF format preferable) and export a smaller version for use with QuickRoute. Modern GPUs can easily take in 8192x8192 250 MB TIFF image - so there is no need to scale down or compress the map image that gets sent to the GPU. The QuickRoute image data will not be used so its quality doesn't matter (only data inserted by QuickRoute to the JPEG file headers is used).
- Using QuickRoute cut and align the gps track to the map. You can use as many adjustment points as you want. Then export the map as a JPEG image.
- Format the split times to a single string. Format is "hours:minutes:seconds" with hours and minutes being optional and the separator between splits being "|" or ";". For example:
1:23|1:23:45
. Time separator can also be ".". For example:1.23;1.23.45
. Split times can be absolute or relative. - Open OrientView and browse for the map image file, the QuickRoute JPEG file, and the video file. Input the split times and press Play.
- Adjust the control time offset to move the controls to correct positions. Then seek the video to the first control and pause. Now adjust the runner time offset to move the runner to the correct position. Press F1 and take note of the adjusted values which you can then input back at the settings window.
- Most of the UI controls have tooltips explaining what they are for.
- Not all settings are exposed to the UI. You can edit the extra settings by first saving the current settings to a file, opening it with a text editor (the file is in ini format), and then loading the file back.
- The difference between real-time and preprocessed stabilization is that the latter can look at the future when doing the stabilization analysis. This makes the centering faster with sudden large frame movements and also makes the stabilization a little bit more responsive to small movements.
- The rescale shaders are in the data/shaders folder. The bicubic shader can be further customized by editing the rescale_bicubic.frag file (currently there are five different interpolation functions and some other settings).
- If the route rendering doesn't work (route appears as a large rectangle), try setting the route color to 100% opaque.
Key | Action |
---|---|
F1 | Toggle info panel on/off |
F2 | Select map/video/none for scrolling |
F3 | Select render mode (map/video/all) |
F4 | Select route render mode (none/discreet/highlight/pace) |
F5 | Select tail render mode (none/discreet/highlight) |
F6 | Select route view mode (fixed split / runner centered / runner centered fixed orientation) |
F7 | Toggle runner on/off |
F8 | Toggle controls on/off |
F9 | Toggle video stabilization on/off |
Space | Pause or resume video Ctrl + Space advances one frame |
Ctrl | Slow/small modifier |
Shift | Fast/large modifier |
Alt | Very fast/large modifier |
Ctrl + 1 | Reset map modifications |
Ctrl + 2 | Reset video modifications |
Ctrl + 3 | Reset route modifications |
Ctrl + 4 | Reset timing offset modifications |
Left | Seek video backwards Scroll map/video left |
Right | Seek video forwards Scroll map/video right |
Up | Scroll map/video up |
Down | Scroll map/video down |
Q | Zoom map in |
A | Zoom map out |
W | Rotate map counterclockwise |
S | Rotate map clockwise |
E | Increase map width |
D | Decrease map width |
R | Zoom video in |
F | Zoom video out |
T | Rotate video counterclockwise |
G | Rotate video clockwise |
Y | Increase route scale |
H | Decrease route scale |
Page Up | Increase runner offset |
Page Down | Decrease runner offset |
Home | Increase control offset |
End | Decrease control offset |
Insert | Increase tail length |
Delete | Decrease tail length |
OrientView
Copyright © 2014 Mikko Ronkainen
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
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.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.