BUG (v15.4.1) - h264 encodes are poor quality on M1 MacMini
h264 exports done on an M1 MacMini show significantly more compression artefacts than those done on non-M1 hardware. In investigating the problem I noticed that the file sizes are significantly smaller than expected and digging into the export shows that the resultant bitrate is only around 60% of what it should be. This is across all the built-in presets that use single-pass h264 hardware encoding as well as any custom ones. To prove the point I encoded the same file on several platforms, (both Mac and PC), with several export presets. See the attached file that shows the results.
h264 exports on M1 hardware only achieve 60-65% of the target bitrate, where-as other hardware is in the 80-90% range.
Bitrate isn't the whole story as increasing it such that the resultant file has the intended bitrate still produces files with more noticeable macro-blocking, (although the differences are now more subtle).
I have also tried using v22.1 BETA of both Premiere and Media Encoder, which give the same low bitrate exports on M1 hardware.
Jim Dahl commented
I had the same issue and found that changing the export Bitrate Encoding setting from VBR (variable bit rate) to CBR (Constant Bit Rate) fixed it.
Anthony Gilbert commented
I think I am getting this same issue on M1 Pro chip! Also noticed the same with Rosetta or ARM. Tried previous versions of Premiere Pro too - the same!
Thomas Desch commented
I've experienced this exact same issue on an M1 iMac. Also, attempted to use Premiere Pro 22.1 BETA and saw no improvement.
Antoine Autokroma commented
Hi Andy ! That's really weird ! Even weirder when you say that increassing the bitrate doesn't solve it. Maybe M1 chips don't have integrated hardware encoding like with intel chips.
I'd recommend trying out AfterCodecs for Adobe CC https://www.autokroma.com/AfterCodecs
there is a free 500 frames trial and unlimited free H264 for resolution <= 720p
It is software encoding that is compiled (almost) the same way according to each platform targeted
I should add that this behaviour is the same whether you run in ARM or Rosetta mode.