Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opposite CRF Behavior with Apple VT HEVC Encoder on macOS (Increasing Quality/Bitrate/Filesize with Higher CRF) #11830

Open
jacobdavidstern opened this issue Feb 5, 2025 · 1 comment
Assignees
Labels
macOS Affects macOS UI/UX Anything to do with changes or additions to UI/UX elements.

Comments

@jacobdavidstern
Copy link

Operating System Info

macOS 15

Other OS

No response

OBS Studio Version

31.0.1

OBS Studio Version (Other)

No response

OBS Studio Log URL

OBS Studio Log (Recording Session - CRF 0): https://anonymfile.com/BE61W/2025-02-04-18-17-07tx.txt OBS Studio Log (Recording Session - CRF 10): https://anonymfile.com/adlJE/2025-02-04-18-17-07.txt OBS Studio Log (OBS Launch - Before Recordings): https://anonymfile.com/EjVnQ/2025-02-04-18-17-28.txt

OBS Studio Crash Log URL

No response

Expected Behavior

In macOS OBS Studio the Apple VT HEVC hardware encoder Constant Rate Factor (CRF) setting is behaving opposite of expected. Instead of lower CRF values resulting in higher quality and larger file sizes, and higher CRF values result in lower quality and smaller files,

Current Behavior

I am observing the opposite: as CRF values increase, the video bitrate, file size, and visual quality also increase.

Steps to Reproduce

  1. Installed OBS Studio using the official installer from the OBS Project website
  2. Created a new, clean profile in OBS Studio
  3. Created a basic scene with only one source: macOS Screen Capture
  4. Configured output settings for recording:
    · Output Mode: Advanced
    · Type: Standard
    · Recording Path: /Volumes/Storage/OBS
    · Format: MP4
    · Video Encoder: Apple VT HEVC Hardware Encoder
    · Rate Control: CRF
    · Keyframe Interval: 2 seconds
    · Profile: main
    · Use B-Frames: Checked
    · Audio Encoder: CoreAudio AAC
    · Audio Bitrate: 64 kbps (mono)
  5. Created five separate 5-minute recordings with CRF values: 0, 10, 16, 24, and 32.
  6. Used QuickTime Player to analyze, noting video bitrate, file size, and visual quality.

Anything else we should know?

<style type="text/css"></style>
CRF File Name Video Bitrate (Kbps) File Size (MB) Visual Quality
0 2025-02-04_crf0.mp4 80.93 6 Very Low, Blurry
10 2025-02-04_crf10.mp4 119.73 6.9 Low, Blurry
16 2025-02-04_crf16.mp4 117.51 7.8 Soft, Smudgy
24 2025-02-04_crf24.mp4 168.24 8.9 Detailed
32 2025-02-04_crf32.mp4 204.81 10.3 Very Detailed

As shown in the table, the video bitrate and file size increase as the CRF value increases, which is the opposite of expected behavior. The visual quality also follows this trend, with higher CRF values incorrectly resulting in sharper, more detailed images.

Video Samples:

Screenshots:

@Fenrirthviti
Copy link
Member

Apple's encoders seem to do their own thing. What is normally known as "CRF" is just "Quality" and higher numbers are expected to give better quality. Probably something we could communicate better, but this is what Apple wants.

@Fenrirthviti Fenrirthviti added macOS Affects macOS UI/UX Anything to do with changes or additions to UI/UX elements. labels Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
macOS Affects macOS UI/UX Anything to do with changes or additions to UI/UX elements.
Projects
None yet
Development

No branches or pull requests

3 participants