getUserMedia возвращает тебе Stream ты его укладываешь чанками в Typed Array или Blob и отправляешь на сервак.
Только это слишком примитивно. Потом условный гигабайт записи целиком грузить? MediaRecorder api зачем тогда придумали, если можно «так просто» записывать?))
У меня приложуха для веб-конференций, запись в реалтайме шлёт блобы на сервер, можно поставить запись на паузу и продолжить, и всё это потом склеится на серве в файл