This page covers:
- Render-to-video features
- How render-to-video works
- How specific features work
- Limitations
This page does not cover how to effectively utilise render-to-video, see this guide for that.
Key features
- Render profiles
- Support for any resolution, up to 16,384 x 16,384
- Any framerate between 10 - 240 (integer-only)
- Downsampling (4x or 16x) to increase quality
- Audio file mixing
- Basic fade-in / fade-out control
- Intro / watermark / outro image overlays
How render-to-video works
Unreal Engine 4 cannot natively export videos at runtime, and so render-to-video in Keysight relies on a number of workarounds. The overall process (simplified a little) is this:
- Time calculation is advanced by a fixed amount per frame, regardless of how long the frame took to render
- The main camera is disabled, and a scene-capture camera with arbitrary resolution is used
- Scene camera draws the full-size image to a UI material
- The material is exported (at a smaller resolution, if using Pixels-per-pixel greater than
1
) to a JPG image on disk - Once all frames are rendered to the disk, FFMPEG is triggered to combine those frames into a video
- Intermediate frames are then deleted
Info
FFMPEG is triggered by a tool external to Keysight called Vidgen,➚ created by HeapUnderflow➚ specifically for Keysight. Vidgen is open source, but fun reading through the Rust!
Info
It is possible to access the raw frames generated by Keysight, which can be useful if you need multiple screenshots of different presets at the exact same point in MIDI playback (something only I have a need for, most likely). When a render is cancelled, the intermediate frames are not deleted until a new render is started. The folder icon under MIDI > Global settings, Select frame directory will take you directly to those frames.
Warning
Due to caching all intermediate frames, the disk space requirements can be quite high for video rendering! An alternate folder for frame caching can be specified under MIDI > Global settings if you have a drive with more space, but a particularly slow drive (HDD as opposed to SSD) may cause issues. A conservative estimate (i.e. higher than is likely) for the frame cache size is given under the Render to video button.
Particle rendering modes
MIDI > Quality, Fidelity section
For partially unknown reasons, if the material export to disk happens on the same frame as particle simulation, particle pathing becomes incredibly broken. As such, Keysight must at least alternate every frame between simulating particles and exporting an image to the disk. MIDI > Quality, Fidelity section's Particle rendering controls this. Choosing the right particle rendering mode can drastically speed up renders, or ensure perfect quality export:
OFF
- Particles are completely disabled, and Keysight both simulates and exports one frame per frameFAST
- (Default) Keysight simulates one frame, and then exports on the next frame (giving a rate of 1:2 export-to-simulation)SAFE
- Keysight simulates one frame, waits two frames, and then exports on the fourth frame (giving a rate of 1:4 export-to-simulation)CPU
- Keysight simulates particles on the CPU rather than the GPU, and both simulates and exports one frame per frame
Warning
FAST
mode is likely to still contain one "broken" frame every couple thousand frames, where all particles on-screen collapse to a single point per-system for a single frame before fixing themselves. SAFE
mode exists to counteract this, but it does slow the render down. If rendering a final-quality video, SAFE
mode is strongly recommended.
Info
OFF
mode is automatically used if no particle systems are currently being simulated during the render (i.e. the preset has no particles).
Warning
CPU
mode is best used if you have very low-particle count systems that do not last very long. Under the right circumstances, CPU
mode can be faster than FAST
and be as risk-free as using SAFE
. Under the wrong circumstances (i.e. lots of particles) it can contain broken particles every frame and also be substantially slower even than SAFE
.
Feature details
Render profiles
Most settings for render-to-video operations are contained within Profiles. This allows you to quickly switch between different quality settings for rapid testing, or rendering different aspect ratios for different platforms.
Some settings (such as Post FX and Layout) will either inherit a global set shared across all profiles or use their own local set, similar to global vs. local Core > Visual layout settings.
Resolution
MIDI > Quality, Fidelity section
The maximum internal resolution Keysight support is 16,384 x 16,384 in 1
pixels-per-pixel mode, or 8192 x 8192 in 4
pixels-per-pixel, or 4096 x 4096 in 16
pixels-per-pixel. The given resolution is the final frame export size; internally, the given resolution is multiplied by the square root of the pixels-per-pixel setting under MIDI > Quality, Fidelity section.
Warning
If rendering at high resolution, Keysight has a strong chance of crashing if your graphics card does not have enough VRAM. It is strongly recommended to not exceed 3840x2160 (4k) resolution at 4
pixels-per-pixel, and even then, the quality increase is not worth the crash risk and extra rendering time. I've only seen max-resolution renders complete on RTX 4080-class-and-above GPUs.
Framerate
MIDI > Quality, Fidelity section
Keysight has one-click buttons to set 30
or 60
frames-per-second as the render framerate, but the Custom
field below these buttons allows for any integer value between 10 - 240
.
Info
Keysight does not support dropped-timecode formats such as 59.97
or 23.974
. It is strongly recommended to stick to 60
when making digital content, since the majority of display devices are 60Hz.
Pixels-per-pixel (downsampling)
Downsampling is the process of taking a larger image and making it smaller. In computer graphics, this can often give a substantial increase in quality due to combating aliasing and ensuring fine details are present.
The Pixels-per-pixel options control downsampling. At 1
, there is no downsampling.
Warning
Using 16
pixels-per-pixel is incredibly taxing and may cause Keysight to crash. Most of the quality increase is already achieved with just 4
in any case.
Audio files
MIDI > Global settings, Audio section
Keysight does not generate or play back any audio. However, as part of exporting frames to a video via FFMPEG, an audio file can be included in the video. Supported formats are: .MP3, .WAV, .FLAC. Including an audio file in combination with fading and splash images can be a great way to save time video editing if you only need a basic MIDI visualisation video.
Warning
While Audio offset does allow for shifting the audio file playing start time, if your audio file does not sync with the MIDI file, this is almost certainly due to the audio file being generated with a different MIDI tempo than the one present in the file. This comes up with extreme regularity, and the culprit is always the digital audio workstation program that exported the audio doing so with some kind of additional tempo automation that is not present in the MIDI file as given to Keysight.
Fade-in, fade-out, and padding
MIDI > Post FX
To aid in making video editing optional for simple videos, Keysight can add padding and fading to the beginning and end of renders. The timing operates as following:
- Padding-in time
- MIDI file playback starts
- Render fades in using given fade-in time
- Render begins fading out from
[MIDI playback end + time delay (if top down) time] - [fade out time]
- MIDI file playback ends
- Time delay time is added if in top down mode
- Padding-out time
Branding images
MIDI > Post FX
Keysight can also add three images on top of the render, again with a view to remove video editing if making very simple videos. Supported formats are .PNG and .JPG, but .PNG is strongly recommended due to alpha channel support.
- Intro splash image - shown for a set time from the start of the render
- Watermark image - shown throughout the render, offset from each end
- Outro splash image - shown for a set time at the end of the render
Warning
These images are stretched across the whole render. Make sure they are the correct aspect ratio! Additionally, make sure the images are the exact same resolution as your final render for the best visual results (resampling on branding images is not as high quality as proper bicubic).
Settings reference
Source quality
This relates to the JPEG compression level used when exporting frames from Keysight to the disk.
LOW
- 80%MEDIUM
- 85%HIGH
- 90%ULTRA
- 95% (default)OVERKILL
- 100%
Output quality
This relates to the FFMPEG settings used when combining frames into a video.
LOW
30
CRFfaster
encoding preset128KB/s
AAC audio target
MEDIUM
20
CRFfaster
encoding preset224KB/s
AAC audio target
HIGH
10
CRFmedium
encoding preset512KB/s
AAC audio target (often encodes using less bitrate, ~256KB/s output)
ULTRA
5
CRF- `slower encoding preset
512KB/s
AAC audio target (often encodes using less bitrate, ~256KB/s output)
Limitations
Transparent video
Transparent video is not supported by Keysight. However, transparency can be added via a video editor with some tricks, see this guide for more information.
Video compositing
Another common question is "can I add footage of my hands to my Keysight render?", to which the answer is no. Any video compositing will need to be performed in a video editor.
Video length
While there are no limits on video length, be very cautious about rendering long videos as all frames need to be cached to the disk. A 30 minute MIDI file might produce 60GB of intermediate files!