Stream API upload video returns 400

I am following the documentation on how to upload a video to Stream API in my Node.js application https://developers.cloudflare.com/stream/uploading-videos/upload-video-file/ and the following is the request I am trying to make.

import * as FormData from 'form-data';

const uploadVideo = (video: Express.Multer.File): => {
    const formData = new FormData();
    formData.append('file', video.buffer);

    let cloudflareResponse;

    try {
        cloudflareResponse = await axios.post(
            `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream/copy`,
            formData,
            {
                headers: {
                    Authorization: `Bearer ${API_KEY}`,
                    'Content-Type': 'multipart/form-data',
                    //'Tus-Resumable': '1.0.0',
                    //'Upload-Length': '600',
                    //'Upload-Metadata': 'maxDurationSeconds 600'
                }
            }
        );
    } catch (e) {
        console.log('Error while trying to upload video to Cloudflare API ', e);
    }
}

It keeps returning 400 and I do not understand where is the issue in my code. I pasted below some of the response that I am getting.

  config: {
    url: 'https://api.cloudflare.com/client/v4/accounts/...../stream/copy',
    method: 'post',
    data: 'file=%5Bobject+Object%5D',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'multipart/form-data',
      Authorization: 'Bearer .....',
      'Tus-Resumable': '1.0.0',
      'Upload-Length': '600',
      'Upload-Metadata': 'maxDurationSeconds 600',
      'User-Agent': 'axios/0.21.1',
      'Content-Length': 24
    },
  data: { result: null, success: false, errors: [Array], messages: null }