Encoding/decoding in H.264 or H.265 (HEVC)

With some Mac you can use the hardware acceleration to encode and decode to H.264. This is very nice as it can lower the use of the CPU. But there are some limitations. 

 

Computers limitations 

Basically all computers released in or after 2016. Only computers with a Core i3, i5, i7, i9  (recent Mac mini, iMac, iMac Pros and MacBook Pro) can encode H.264 or H.265 (HEVC) using Intel's Quick Sync hardware acceleration.

2019 Mac Pros also have a hardware acceleration thanks to the graphics card. So depending on the graphics card that you use, you will have different performances, but note that:

  • for H.264 encoding and decoding, a 2018 Mac mini will outperform a Mac Pro even with the Radeon Pro Vega II.  
  • for HEVC encoding and decoding, a Mac Pro with a Radeon Pro Vega II will do better.

2013 Mac Pros can not use that hardware acceleration as they are using a Xeon processor. So they are not a good fit to encode in H.264. You will have much better results with a Mac mini than with a Mac Pro when it comes to H.264 or H.265 encoding...

The hardware acceleration can happen on Intel's built-in GPU, so for example on the 2018 Mac mini, as all models have the same built-in GPU, performances will be the same, and thus the Core i3 quad core model will encode approximately the same number of H.264 or HEVC channels as the Core i7 hexa core.

A few precisions,

  • eGPUs won't have an impact on the hardware acceleration
  • only H.264 and H.265 (HEVC) can be hardware accelerated on Intel's Quick Sync, all other codecs encoding will be done on the CPU.

 

What can impact performances?

GPU usage

As the GPU can be used, be aware that if you start another application that is using Intel's built in GPU as well, it may lower the number of channels that you can encode. So be aware of the applications you start.

Effects or overlays in MovieRecorder

In MovieRecorder, when using effects (rotating, deinterlacing,...) or overlays (timecode, image), the GPU will be used an thus H.264 or H.265 encoding performances can be greatly impacted.

 

macOS limitations 

H.264

For best performances you should use macOS 10.13 or later. Previous versions of macOS only supported 1 channel of H.264 to be hardware accelerated.

H.265

Support for H.265 encoding is supported only with macOS 10.13 or later.

 

Level and Profile limitations

H.264

There can be limitations depending on the H.264 profile and level chosen. See below the Max Width, Height, fps and bitrate for each case.

Level Max Width Max Height Max Frame Rate Max Average Bitrate (kbps) - With Profile
        Baseline, Main High Extended
1.3 352 288 30 768000 N/A N/A
3.0 720 - - 10000000 12500000 N/A
3.1 1280 720 30 14000000 17500000 N/A
3.2 1280 720 - 20000000 25000000 N/A
4.0 1920 1080 30 20000000 25000000 N/A
4.1 1920 1080 30 50000000 62500000 N/A
4.2 1920 1080 - 50000000 62500000 N/A
5.0 2560 1920 30 135000000 1687500000 135000000
5.1 4096 2160 25 240000000 300000000 N/A
5.2 4096 2160 - 240000000 300000000 N/A

 When you choose a profile with an "automatic level", the best level will be chosen depending on the incoming video format and the chosen bitrate.

 

H.265

In H.265 there is no selection of Profile and Level because only the "Main Automatic Level" is supported, so the best level will be chosen depending on the incoming video format and the chosen bitrate.

The maximum bitrate of HEVC is currently of 32 Mbit/s.

 

About the bitrate

The bitrate that is set is an average bitrate, and the bitrate of your recorded file will also depend on the format and frame rate of your video. We can not prevent you from setting it to an unsupported value because the AVPreset is made in the preferences where we have no idea on which type of video it will be used.

For example, in HD, HEVC encoder will produce bitrates from about 2.5Mb/s to 15Mb/s (so you won't reach the maximum of 32Mb/s). Also if you have set it to a bitrate in the range above, but he signal is very easy to compress (such as color bars), the file will have a lower bitrate than what you have set.

So we recommend that you test with your specific signal to make sure of the resulting bitrate.

 

 

Bit Depth

Currently only 8bit is supported.

 

Have more questions? Submit a request

Comments