What is MIME type "video/mp4"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

video/mp4 is a MIME type for a multimedia container. It handles video, audio, and text data in one file.

This format is popular for online streaming and playback. It enables smooth delivery on web pages and mobile devices. Files with this MIME type can store high-quality video and synchronized audio. They also support subtitles and chapter markers.

Various file types use this MIME type. For instance, video files often have the format MP4. Audio files in this container use M4A. Other variants include M4V, M4B, M4P, and M4R among others.

Developers and content providers choose video/mp4 because it is simple, efficient, and widely supported. More details can be found at IANA.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: video/mp4    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="video/mp4">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'video/mp4');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

Which browsers support the video/mp4 MIME type?

Almost all modern web browsers support video/mp4 natively via the HTML5 <video> tag. This includes Google Chrome, Mozilla Firefox, Safari, Microsoft Edge, and Internet Explorer 9+. For the widest compatibility, the MP4 container should use the H.264 video codec and AAC audio codec.

How do I configure my web server to serve MP4 files correctly?

For Apache, add the line AddType video/mp4 .mp4 to your .htaccess or httpd.conf file. For Nginx, ensure your mime.types file includes the directive video/mp4 mp4;. If configured incorrectly, browsers may force the user to download the file instead of playing it.

Why does my MP4 video download instead of playing in the browser?

This usually happens because the server is sending the wrong MIME type, such as application/octet-stream, instead of video/mp4. Browsers interpret the generic binary type as a file to be saved. You can fix this by updating your server's MIME type configuration.

What is the difference between video/mp4 and video/webm?

video/mp4 typically uses the H.264 codec and has superior compatibility with iOS and Safari. video/webm (often using VP8 or VP9) is an open web standard that provides excellent compression but historically had lower support on Apple devices. Best practice is to include both formats in your HTML <video> element.

Should I use video/mp4 for audio files like .m4a?

While video/mp4 can technically describe an MP4 container holding only audio, it is standard practice to use audio/mp4 for files like .m4a or .m4b. Using the video MIME type for audio-only files may cause players to display a black screen or confusing playback controls.

Does video/mp4 support subtitles?

Yes, the MP4 container format supports embedded subtitle tracks (often in Tx3g format). However, for web playback, it is more common to use a separate WebVTT file linked via the <track> element in HTML5, rather than embedding the subtitles directly into the video/mp4 file.

How do I use video/mp4 in HTML code?

You should use the <source> tag within a video element. Example: <source src="movie.mp4" type="video/mp4">. Defining the type attribute is crucial because it allows the browser to check if it supports the specific codec before attempting to download the large video file.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.