Худший вариант - base64, лишняя работа и лишняя память на кодирование/декодирование, да и объем пересылаемых данных на 33% больше.
FormData лучше, там байты пересылаются как есть, но на сервере придется всё равно парсить multipart/form-data, вырезать оттуда файл.
Самый быстрый вариант - просто отправить файл или блоб прямо в fetch. На бэке можно будет простримить его в файл, или ещё куда, без всякого парсинга.