Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

hjorte

macrumors member
Original poster
Mar 28, 2023
35
12
I don't understand why fullscreen recordings I make end up with a resolution of 4096×2304.

  • I have a 5k external monitor connected to my M1 MacBook Pro, 16 GB RAM.
  • The system resolution for the monitor is 5120 x 2880, UI Looks like 2560 x 1440.
  • If I screen record the entire screen on the 5k monitor using CleanShotX, it saves a video with the resolution of 4096×2304.
  • CleanShotX video settings are set to "Max resolution: Original".
  • The same happens when screen recording using QuickTime, the saved file here is 4096×2304.
  • If I use CleanShotX to take a fullscreen screenshot, the saved screenshot is 5120 × 2880.

Why are the screen recording videos not 5120 × 2880?
 
QuickTime movie codecs (recording format) encode video by compressing the data in 16 pixel square blocks.

Do the sum… 😉
Dividing by 16 your screen recording comes out at 256x144.

The M1 SoC had a first generation Video Encode Engine, and my guess is that 256x144 blocks is the hardware limit of the M1’s encoder.

When the M1 Pro/Max were introduced they came with a better Video Engine, which maybe means later Macs have a higher limit?

Another factor is that the whole Display Engine in the M1 is at it’s upper limit when displaying 5K/60 on a monitor, and there probably aren’t the GPU resources to display an image AND simultaneously encode it into a video stream, so the 256x144 limit is the best that the original AS SoC can manage.
 
  • Like
Reactions: T'hain Esh Kelch
Encoding more than 4096×2304 60 fps probably is not fast enough to be used in real time, or someone forgot to remove that limitation.
 
Interesting. It makes sense if this is what the M1 is capable of. If so, do you think the M2, M3 and M4 are better and stronger at this?
 
Interesting. It makes sense if this is what the M1 is capable of. If so, do you think the M2, M3 and M4 are better and stronger at this?
Just tried QuickTime screen recording on my MBP 14 with M4 Max with Dell 6K monitor (U3224KB), the result is the same as yours: 4096×2304.

It doesn't look like a hardware limitation, but rather a software one.

1737071270215.png
 
Tried with OBS Studio (free, open source), it works perfectly. As long as you configure it correctly, it could record screen with native resolution. But expect large file size for high quality recording with 5k or 6k resolutions. My 2s recording with a resolution of 6144x3456 is about 1.5GB.

1737072817163.png


In OBS studio, the default output resolution is 1080p. You need to change to the one you desire.

1737072916635.png


In order to have a clean recording (not blured due to video compression), I chose the hardware accelerated ProRes codec.

1737073213316.png


You can also test other encoders. For me, the result looks very good without apparent video artifacts. But the file size is enormous and definitely not suitable for streaming.
 
  • Like
Reactions: T'hain Esh Kelch
It's not an (artificial) software limitation per se but a limitation of the H.264 codec which QuickTime uses to encode screen recordings.

The resolution limit derives from the highest level (5.2) that H.264/MPEG-4 AVC supports in its standardized form [ITU-T H.264 edition approved in 2011-06]:
4,096×2,160 @60.0 fps
4,096×2,304 @56.3 fps
Edit: An update in [2016-10] specified additional levels of decoder capability supporting larger picture sizes (Levels 6, 6.1, and 6.2). From my understanding, existing chips cannot hardware decode those levels.

In my case (MacPro6,1 with a 5K screen connected) QuickTime records at variable fps, but at a maximum of 55.046 fps which pretty much maxes out the above specification.
BTW, this Mac model has no hardware video encoding capabilities.
Code:
Writing library                          : Apple QuickTime
com.apple.quicktime.make                 : Apple
com.apple.quicktime.model                : MacPro6,1
com.apple.quicktime.software             : macOS 11.7.10 (20G1427)
com.apple.quicktime.creationdate         : 2025-01-18T02:18:45+0100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L5.2
Format settings                          : CABAC / 2 Ref Frames
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 2 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 6s 704ms
Bit rate                                 : 19.8 Mbps
Width                                    : 4 096 pixels
Height                                   : 2 304 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 14.619 fps
Minimum frame rate                       : 1.411 fps
Maximum frame rate                       : 55.046 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.143
Stream size                              : 15.8 MiB (100%)
Title                                    : Core Media Video
Encoded date                             : UTC 2025-01-18 01:18:47
Tagged date                              : UTC 2025-01-18 01:18:54
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709
Codec configuration box                  : avcC


But this only refers to the standard H.264 codec profiles that guarantee hardware en-/decode [approved in 2011].
Standards like MPEG-4 Part 10, Advanced Video Coding (AVC) / ITU-T Recommendation H.264 (H.264) exist to allow different hardware and software manufacturers to exchange video files with the guarantee they’ll actually work on someone else’s system.

Because of this standards have to impose limits on things like frame size, frame rate for a given frame size, and data rate in bits per second. For AVC/H264, the different sets of limits are called Levels. At its highest level, Level 5.2, AVC/H.264 has a maximum frame size of 4,096 x 2,304 pixels @ 56 frames per second, or 4,096 x 2,160 @ 60 frames per second, so that standard H.264 decoders don’t have to accommodate any frame size or frame rate larger than that.
Besides newer/higher levels [approved in 2016-10], there are ways to create non-standard H.264 profiles that also deliver up to 8K. Or in the example below, 5120 x 2880 @30fps using ffmpeg:

I suspect OBS studio can unlock similar possibilities for screen recordings in H.264. Besides obviously offering other video codecs that allow for higher resolution even in their standard profiles.

edit: added part of non-standard H.264
edit2: clarification of 5.2 and the existence of higher levels
 
Last edited:
Wikipedia has not been updated. AVC/H.264 has levels 6.0, 6.1, and 6.2 that allows a larger size and frame rate now.

But then it depends if the hardware encoder can output at that size/fps or not.
 
  • Like
Reactions: arw
Actually, the Wikipedia article on AVC/H.264 is up to date, so I'm not sure where @arw got his quote that it's limited to Level 5.2:
I'm sorry if my post was misleading or poorly worded. For clarification I added that since [2016-10] higher decoding levels have been approved.
But I did link the source of the quote. It is actually [5] of the text you marked in your screenshot where they explain 5K and 8K H.264 encodes are possible with non-standard profiles (the article is from 2017).

I'm no expert but I understand level 5.2 is the current maximum H.264 hardware encoders support. And also guarantees hardware decodes on older hardware.
And why therefore 4096 x 2304 is the 'safe' resolution Apple sticks to.
 
Last edited:
  • Like
Reactions: PaulD-UK
The limitation also holds true for 8K UHD screen recordings in Quicktime. The resulting video is limited to 4096 x 2304 with H.264 on an M2 Max as well.
 
That won't make a difference, as screenshots (.png) or screen recording (.mov) work at the native screen pixel resolution.
So screenshots get saved OK, but only ProRes* screen recordings get saved at full resolution.
(And the M1 SoC hasn't got a hardware ProRes encoder, like later M SoCs.)

The previous two posts explain why H.264 recordings are hardware limited to 256x144 16x16 pixel blocks.
That's a concatenation of 8 bit limits....
And it's higher than 4K video resolution, which is 'good enough'.

* Or other >8 bit recording codec.
 
Last edited:
  • Like
Reactions: arw
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.