How ToRecording the Emulator Screen

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

  1. Configure β€” Use Machine β€Ί Recording to choose your format, quality, and frame rate before you start (settings are locked while recording).
  2. 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.
  3. 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:

ColourWhat it meansWhat to do
Default (grey)Idle β€” not recordingClick to arm the recorder; it will wait for the machine to start
🟑 GoldArmed β€” waiting for the machineStart or run the machine; recording begins automatically
πŸ”΄ RedRecording β€” capturing nowRecording is live; frames and audio are being saved
🟠 OrangePaused β€” recording suspendedThe machine is paused (e.g., debug step); resume to continue recording

How it flows:

  1. Click the gold Record button β†’ the button turns gold (armed). Now the recorder is ready.
  2. Start or run the machine β†’ the button turns red (recording). Frames are being captured.
  3. Pause the machine (for debug) β†’ the button turns orange (paused). Recording pauses too.
  4. Resume the machine β†’ the button turns red again. Recording continues seamlessly.
  5. 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

FormatVideo codecAudio codecBest for
MP4 (default)H.264AACMaximum device compatibility, YouTube, social media
WebMVP9OpusModern web browsers, web streaming
MKVH.265 (HEVC)AACArchival, 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.

SettingCRFFile sizeUse when
Highest (lossless)0Very largeArchiving, post-processing in a video editor
High10LargeShort demos, maximum visual fidelity
Best compression (default)18ModerateEveryday 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

SettingFPS (PAL machine)FPS (NTSC machine)Use when
Native (default)50 fps60 fpsAccurate playback speed, full smoothness
Half25 fps30 fpsSmaller 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   # Windows

Tips

  • 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

ContainerVideo codecAudio codecCRF supportNotes
MP4H.264 (libx264)AAC0 – 51Best compatibility
WebMVP9 (libvpx-vp9)Opus (libopus)0 – 63Best for web sharing
MKVH.265 (libx265)AAC0 – 51Best compression, requires modern player