Need help playing MP4 files from a SD card

I am trying to play a sound file from my SD card. I've made sure that my speaker is working(through tone library), my MP4 file is formatted correctly(I've used a sample file from tutorials to test it), and my SD card reader is connected. How do I fix this?(Code and diagram below)
Note: I am not good at drawing diagrams so excuse me for any mistakes

Edit: Serial screen gives "WAV ERROR" when I try it

#include "SD.h"
#define SD_ChipSelectPin 4
#include "TMRpcm.h"
#include "SPI.h"

TMRpcm tmrpcm;

void setup()
{
tmrpcm.speakerPin=9;
Serial.begin(9600);
if(!SD.begin(SD_ChipSelectPin))
{
  Serial.println("SD fail");
  return;
}
tmrpcm.setVolume(2);
tmrpcm.play("5.wav");

}

void loop() {
  // put your main code here, to run repeatedly:

}

TMRpcm plays uncompressed WAV files (with a certain format). MP4 files are compressed, and compression is a lot like encryption... It's garbage if not decompressed/decoded properly.

Plus, the regular Arduino is not fast enough to decompress an MP4 in real-time, especially while TMRpcm is running.

Do you mean MPEG4 audio layer? That's too complicated for most microcontrollers to handle,
you use specialized hardware (a special chip) or a full blown processor for such files.