Unfortunately until Unity 2022.1 the backend video support that the Unity Recorder used did not expose custom bitrates and even when set to ‘High’ used an absurdly low bitrate of 8Mbps or less! This means any degree of motion in the video will cause the image quality to look very bad.
At this point you have a few options.
- Record using Apple ProRes
Any of the settings will provide near perfect quality, but at the expense of massive file sizes and ( on my PC ) non-real-time recording. It is likely you can get away with using the lower ProRes settings, such as ‘ProRes 422 LT’. You’ll likely want to then re-encode it to MP4 I’ve used VLC in the past, though I guess the Mac might have a native program to do that ( Quicktime?).
Note: Apparently Recorder 4.00-pre4 has improved ProRess performance but at the expense of not allowing odd resolutions.
- Upgrade your project to Unity 2022.1 and Recorder 4.00-pre3 or above
You’ll get access to custom bitrate settings for MP4 and so can increase the values to get far better quality and likely retain real-time recording. For more information see this thread announcement .
- Try VP8 or PNG
Honestly I’ve never got VP8 to work well, it had awful performance. PNG also had poor performance and then afterwards you have to find a way to convert it into a video.
- Use an Asset Store Plugin
I’ve had a lot of success with NatCorder, though it lacks the ‘immediacy’ that the Recorder provides.
Though you could also just write your own recorder if you get into FFMPEG.