This is really weird, I began working on a similar project recently, although I tried to implement all of the audio processing and rendering client-side using canvas and ffmpeg.js. Kept running into memory issues though. Using a MediaRecorder was going to be my next step.
One suggestion: on the export screen, you provide two options. I would add some text that clarifies what quality basic and full HD are (or how else these two options differ).