Yes, MP4 normally means you will be dealing with H.264 video in many cases, but the important point is that decoding H.264 is not a simple MCU task.
For a 1024x600 display, software decoding H.264 on a normal STM32 MCU is not realistic, especially if you want smooth playback and fast startup. You need either:
-
A device with a hardware video decoder
-
A Linux-capable MPU
-
Or an external video decoder / multimedia chip
Most STM32 MCUs, including STM32H7, do not have an H.264 hardware decoder. Some parts have JPEG acceleration, DMA2D, LTDC, Chrom-ART, etc., but that helps with graphics/framebuffer handling, not MP4/H.264 decoding.
STM32N6 has H.264 hardware encoder, but encoder is not the same as decoder. If your requirement is to play MP4 files, you specifically need H.264 decoding support.
For this type of application, I would look more toward STM32MP1/MP2 series or another MPU running Linux, because then you can use GStreamer/FFmpeg/video frameworks and hardware multimedia blocks where available. Startup time will be slower than a bare-metal MCU, but it is the more realistic architecture for MP4 video playback.
If quick boot is very important, another option is to avoid MP4 and use a simpler format, such as MJPEG or a sequence of compressed JPEG frames. File size will be larger than H.264, but decoding is much easier on MCU hardware.
So in short: for STM32 MCU only, MP4/H.264 playback on 1024x600 is probably not a good fit. Use an MPU with video decode support, or change the video format to something simpler.
https://www.st.com/en/microcontrollers-microprocessors/stm32n6-series.html (discusses video playback on STM32MP devices)