← All posts
Recording & Capture·5 min read·

How to Record Dark Mode Software Without Flicker

Fix the flickering, banding, and compression artifacts that plague dark mode screen recordings. Covers frame rates, codec settings, and color temperature stability.

Dark mode UIs look sleek on screen but terrible in recordings. Flickering, color banding, blocky compression artifacts — dark themes expose every weakness in your recording pipeline. Here's how to capture dark interfaces cleanly.

Why dark mode is harder to record

Video codecs allocate most of their bitrate budget to bright, high-contrast areas. Dark regions get fewer bits, which creates:

  • Color banding: Smooth dark gradients turn into visible "steps" of color
  • Macro-blocking: Dark areas compress into visible squares (especially in H.264)
  • Temporal noise: Slight frame-to-frame variations in dark pixels that read as flicker

The solution is attacking the problem at every stage: display, recording, and export.

Fix #1: Match frame rate to refresh rate

Flicker most commonly occurs when your recording frame rate doesn't divide evenly into your display refresh rate.

  • 60Hz display: Record at 30fps or 60fps (not 24fps)
  • 120Hz display: Record at 30fps, 60fps, or 120fps
  • Variable refresh rate (ProMotion): Lock to a fixed rate before recording — System Settings → Displays → Refresh Rate → select a fixed value

On macOS with ProMotion, the variable refresh rate can cause subtle brightness fluctuations in recordings. Always lock it.

Fix #2: Disable UI animations

Animated transitions (fading panels, sliding menus) create rapid brightness changes that codecs struggle with in dark modes. The encoder sees the entire dark frame shifting brightness and allocates bits poorly.

Before recording: enable "Reduce Motion" (macOS: System Settings → Accessibility → Display). This eliminates system-level animations. For web apps, check if there's a reduced motion preference or disable CSS transitions temporarily in DevTools.

Fix #3: Increase recording bitrate

This is the most impactful fix. Default bitrate settings assume average content — dark UI needs 2-3x more bitrate to avoid artifacts.

Recommendations:

  • 1080p dark mode: Minimum 12 Mbps (vs typical 6-8 Mbps default)
  • 1440p dark mode: Minimum 20 Mbps
  • 4K dark mode: Minimum 40 Mbps

In OBS: Settings → Output → Recording → Rate Control: CRF, CRF Value: 16-18 (lower = higher quality). In ScreenFlow or Camtasia, use the highest quality preset.

Fix #4: Use the right codec

H.264 is the worst mainstream codec for dark content due to its 8-bit color depth limitation. Better options:

  • H.265 (HEVC): Better gradient handling, 10-bit support. Use if your editing software supports it.
  • ProRes 422: Overkill for delivery but perfect for recording originals — no compression banding at all. File sizes are 5-10x larger.
  • VP9/AV1: Excellent for dark content with better bit allocation. Good if your pipeline supports it.

Workflow: record in ProRes or high-bitrate H.265, edit as needed, then export to H.264 at high bitrate for delivery.

Fix #5: Stabilize color temperature

If your display has auto-brightness or Night Shift/True Tone enabled, the screen color subtly shifts during recording based on ambient light. On dark UIs, these shifts are magnified and visible as color flicker.

Before recording:

  • Disable True Tone (macOS: System Settings → Displays)
  • Disable Night Shift
  • Set brightness to a fixed level (70-80% recommended)
  • Disable auto-brightness

Fix #6: Add subtle noise in post

Counter-intuitive but effective: adding 1-2% film grain/noise to your final export actually hides compression banding. The noise breaks up the smooth gradients that cause visible banding, and the codec handles random noise better than it handles gradient steps.

This is a standard technique in film post-production for the same reason — dark scenes always get a touch of grain.

Quick checklist

  • ☐ Lock display to fixed refresh rate
  • ☐ Frame rate divides evenly into refresh rate
  • ☐ True Tone and Night Shift disabled
  • ☐ Auto-brightness disabled
  • ☐ Reduce Motion enabled
  • ☐ Recording bitrate at 2-3x default
  • ☐ 10-bit codec if available

Create polished product animations in minutes

No keyframes. No After Effects. No motion design experience required.

Try mmotion free