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 βΊ Recording menu are available out of the box on all platforms.
Quick-Start: Record in Three Steps
- Configure β Use Machine βΊ Recording 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 βΊ Recording βΊ Start 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 under Machine βΊ Recording. 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 βΊ Recording βΊ Pause Recording / Continue 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.
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 |