browser cannot play the chunk sent by the server?

When i am reading i need to load the whole file in the memory which is not very efficient.so i tried to see if browser can play the chunk but for some reason it cant play it.

 @GetMapping
    public ResponseEntity<byte[]> video1() throws IOException {

        byte[] data = streamingService.getVideo();
        return   ResponseEntity.status(HttpStatus.PARTIAL_CONTENT)
                .header("Content-Type", "video/mp4")
                .header("Accept-Ranges", "bytes")
                .header("Content-Length", String.valueOf(20480))
                .body(data);
    }

my getVideo Method to read video file

public byte[] getVideo(){
        byte[] data = new byte[20480];
        try {
            InputStream inputStream = new FileInputStream(file);
            inputStream.read(data);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return data;
    }

is their a efficient way to read file without using memory equivalent of whole file size