Recording the Emulator Screen
Klive can capture the emulator display (plus audio) as a video file. This is ideal for sharing gameplay clips, building tutorials, or demonstrating your retro programs to the community.
FFmpeg is bundled with Klive — no separate installation is required. The Record button and Machine › Record menu are available out of the box on all platforms.
Quick-Start: Record in Three Steps
- Configure — Use Machine › Record › Recording Settings… (the Recording page of Settings) to choose your format, quality, and frame rate before you start (settings are locked while recording).
- Arm — Click the Record button (⏺) in the toolbar, or choose Machine › Record › Start Video Recording. The button turns gold — the recorder is now armed and waiting for the machine to run.
- Play — Start or continue the machine. Recording begins automatically the moment the machine runs. The Record button turns red while capturing.
To finish, click the Record button again (or stop the machine). The video file is written to disk immediately.
Understanding the Record Button
The Record button shows the recorder’s current status by changing colour:
| Colour | What it means | What to do |
|---|---|---|
| Default (grey) | Idle — not recording | Click to arm the recorder; it will wait for the machine to start |
| 🟡 Gold | Armed — waiting for the machine | Start or run the machine; recording begins automatically |
| 🔴 Red | Recording — capturing now | Recording is live; frames and audio are being saved |
| 🟠 Orange | Paused — recording suspended | The machine is paused (e.g., debug step); resume to continue recording |
How it flows:
- Click the gold Record button → the button turns gold (armed). Now the recorder is ready.
- Start or run the machine → the button turns red (recording). Frames are being captured.
- Pause the machine (for debug) → the button turns orange (paused). Recording pauses too.
- Resume the machine → the button turns red again. Recording continues seamlessly.
- Stop the machine or click the button again → back to default. The video file is saved.
Because the recorder arms before the machine starts, you never miss the first frame. Arm it, then click Run — the recording captures everything from the very first instruction.
Configuring the Recording
All options live on the Recording page of the Settings dialog (Machine › Record › Recording Settings…). They can only be changed while recording is idle.
Output Format
| Format | Video codec | Audio codec | Best for |
|---|---|---|---|
| MP4 (default) | H.264 | AAC | Maximum device compatibility, YouTube, social media |
| WebM | VP9 | Opus | Modern web browsers, web streaming |
| MKV | H.265 (HEVC) | AAC | Archival, smallest file sizes, modern players |
If in doubt, use MP4. It plays everywhere — phones, tablets, all major desktop players, and video platforms.
Quality
Quality is expressed as a CRF (Constant Rate Factor) value passed to FFmpeg. Lower CRF = higher quality = larger file.
| Setting | CRF | File size | Use when |
|---|---|---|---|
| Highest (lossless) | 0 | Very large | Archiving, post-processing in a video editor |
| High | 10 | Large | Short demos, maximum visual fidelity |
| Best compression (default) | 18 | Moderate | Everyday sharing; visually near-lossless |
Lossless mode produces enormous files. A one-minute ZX Spectrum recording at lossless MP4 can exceed several hundred megabytes.
Frame Rate
| Setting | FPS (PAL machine) | FPS (NTSC machine) | Use when |
|---|---|---|---|
| Native (default) | 50 fps | 60 fps | Accurate playback speed, full smoothness |
| Half | 25 fps | 30 fps | Smaller files; still very smooth on screen |
When Half is selected, both video frames and audio samples are sub-sampled together so audio and video remain in perfect sync.
Pausing and Resuming a Recording
You can pause a recording independently of the machine:
- Machine paused (debug step, Pause button): the recorder automatically suspends. It resumes the moment the machine runs again.
- Manual pause/resume (via Machine › Record › Pause Video Recording / Continue Video Recording): pause the capture while the machine keeps running. Use this to skip sections you don’t want in the output.
During a pause the output file stays open — no data is lost, and the resume is seamless.
Audio Recording
Stereo audio from the emulated machine (beeper, AY, SID, …) is captured automatically at the emulator’s native sample rate (typically 44.1 kHz). Audio and video are muxed into the same file.
If the machine produces no sound, the video will contain silence — that is normal.
Recording the IDE and the Emulator Together
To show your code and the running machine in one video — a tutorial, a bug report, a debugging session — record both windows side by side.
Choose Machine › Record › Start IDE + Emulator recording, or press Ctrl+Shift+F7. Both window titles show ● REC while the recording runs. Use the same command (or shortcut) again to stop; the file is saved to the same folder as any other recording.
This recording runs on the clock, not on the machine: it starts at once and keeps recording while the machine is stopped or paused, so you can show the IDE before you run anything. The IDE window must be visible to start it.
Arranging the windows
The two windows are placed next to each other in the video, wherever they are on your screen. Settings › Recording › IDE position sets where the IDE goes relative to the emulator: Left (default), Right, Top, or Bottom. The video is just large enough to hold both; the smaller window is centred along the shared side, and the space around it is filled with your theme’s background colour.
If you resize a window while recording, its picture is scaled to fit the space it had when the recording started.
Options
| Option | Default | What it does |
|---|---|---|
| Include pointer | On | Draws the mouse pointer when it is over either window. |
| Show mouse clicks | On | Draws a ring around the pointer while a button is held, and a short fading ring when it is released — in your accent colour for the left button and the secondary accent colour for the right. Available when Include pointer is on. |
| Full resolution (HiDPI) | Off | Records at your display’s full pixel density (twice the size on a Retina display) instead of normal size. Much larger files and more work for the encoder. |
The format and quality settings above apply to this recording too. The frame rate is 30 fps (15 fps with Half fps), since the IDE has no machine frame rate of its own.
Sound
The machine’s sound is recorded while it runs. While the machine is paused or stopped, the recording carries silence, so the sound always stays in step with the picture.
Only one recording runs at a time: while the IDE + Emulator recording runs, the emulator’s own Start Video Recording is unavailable, and the other way round. The recording options are locked while either recording runs.
To use another shortcut, set the shortcuts.recordIdeEmu user setting with the
set command, for example:
set -u shortcuts.recordIdeEmu "CmdOrCtrl+Shift+R"CmdOrCtrl means Cmd on macOS and Ctrl elsewhere; the default’s Ctrl is
the Control key on macOS too. The menu shows the shortcut in effect.
Where Files Are Saved
Klive writes each recording to:
~/KliveExports/video/recording_YYYYMMDD_HHMMSS.{mp4|webm|mkv}The filename is generated from the date and time the recording started. Navigate there in Finder / Explorer, or open a terminal and run:
open ~/KliveExports/video # macOS
explorer %USERPROFILE%\KliveExports\video # WindowsTips
- Set options before arming — format, quality, and fps are locked while the recorder is armed or recording.
- Arm before starting — clicking Record while the machine is already running starts capturing immediately (no armed state shown because the machine is already live).
- Lossless for editing — if you plan to edit or re-encode the clip, use lossless quality and MKV for the smallest lossless file.
- Keep recordings short — native 50 fps recordings generate a lot of data. For long game sessions, use Half fps + Best compression.
- Check FFmpeg version — older FFmpeg versions may not support all codecs. FFmpeg 5.x or later is recommended.
Codec Reference
| Container | Video codec | Audio codec | CRF support | Notes |
|---|---|---|---|---|
| MP4 | H.264 (libx264) | AAC | 0 – 51 | Best compatibility |
| WebM | VP9 (libvpx-vp9) | Opus (libopus) | 0 – 63 | Best for web sharing |
| MKV | H.265 (libx265) | AAC | 0 – 51 | Best compression, requires modern player |