MPEG-4 H.264 video plays in Chrome 4+, Edge 12+, Safari 3.2+, Firefox 35+, Opera 25+, and IE 9+. Learn MPEG-4 browser support, features, and known issues.

Prince Dewani
May 6, 2026
MPEG-4 is a family of audio, video, and container standards from the ISO/IEC Moving Picture Experts Group, published as ISO/IEC 14496. Web browsers play MPEG-4 H.264 video from Chrome 4, Edge 12, Safari 3.2, Firefox 35, Opera 25, IE 9, and Samsung Internet 4 on, while Opera Mini never added support.
This guide covers what MPEG-4 is, the browsers that support it, the key features, the difference between MPEG-4 and MP4, the use cases, and the known issues.
MPEG-4 is a family of audio, video, and container standards from the ISO/IEC Moving Picture Experts Group, published as ISO/IEC 14496. The standard has more than 30 parts. The most used in web browsers are Part 10 (H.264 video), Part 3 (AAC audio), and Part 14 (the MP4 container).
Almost every modern browser plays MPEG-4 H.264 video. Chrome, Edge, Safari, Firefox, Opera, Samsung Internet, Android Browser, and Internet Explorer 9 and later all decode it through the HTML5 video element, while Opera Mini never added support.
Chrome plays MPEG-4 H.264 video from Chrome 4 on Windows, macOS, Linux, and ChromeOS. Chrome on Android plays it from Chrome 4 on, with hardware decoding on most devices. Chrome bundles the FFmpeg-based libavcodec decoder, so the same H.264 pipeline works on every platform without extra OS plugins. AAC audio inside the MP4 container plays through the same decoder.
Microsoft Edge plays MPEG-4 H.264 video from Edge 12 on. Both the legacy EdgeHTML build and the modern Chromium-based Edge use the Media Foundation H.264 decoder on Windows and the bundled FFmpeg decoder on macOS and Linux. Hardware-accelerated playback is on by default when the GPU exposes a Direct3D 11 H.264 decoder.
Firefox plays MPEG-4 H.264 from Firefox 35 on Windows, macOS, and Android. Firefox 21 to 34 had partial support tied to Windows 7 and later. Firefox 2 to 20 did not decode H.264 at all. On Linux, Firefox calls the system FFmpeg or GStreamer libraries, so distributions without those packages cannot play MPEG-4 video. Mozilla picked this path to avoid bundling licensed H.264 code in the browser binary.
Safari plays MPEG-4 H.264 from Safari 3.2 on macOS, and Safari on iOS plays it from iOS 3.2 on. Apple ships the H.264 decoder as part of macOS and iOS, so MPEG-4 video plays in Safari, Safari View Controller, and WKWebView without extra plugins. Hardware decoding runs on every Mac and iPhone made since the iPhone 4.
Opera plays MPEG-4 H.264 from Opera 25 on Windows, macOS, and Linux. Opera 9 to 24 did not decode H.264. Opera Mobile plays it from Opera Mobile 11 on. Opera Mini never added support, because the proxied rendering pipeline does not run a video decoder on the device, so MPEG-4 video falls back to the source URL.
Samsung Internet plays MPEG-4 H.264 from Samsung Internet 4 on. The browser uses the Android MediaCodec API to hand decoding to the device's hardware H.264 block, which ships on every Galaxy phone and tablet. AAC audio inside the MP4 container plays through the same MediaCodec path.
Chrome for Android plays MPEG-4 H.264 from Chrome 4 on. The legacy stock Android Browser added full support in Android 4.4 KitKat. Android 2.1 to 4.3 had partial support tied to the device's hardware decoder, with playback breaking on phones whose chipsets only handled the baseline profile. Firefox for Android picked up MPEG-4 from Firefox 17 on.
Internet Explorer plays MPEG-4 H.264 from IE 9 on Windows 7 and later. IE 5.5 to 8 did not decode H.264, since the HTML5 video element itself only landed in IE 9. Microsoft has retired Internet Explorer as a supported browser, so any project still on IE should plan a fallback through a server-side transcoder or a polyfill player such as JW Player.
Note: MPEG-4 playback breaks across older Firefox builds, Linux distros without FFmpeg, and Opera Mini. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
MPEG-4 bundles a video codec, an audio codec, a container, and a streaming model into one standard. The features below decide whether MPEG-4 is the right pick for a web video pipeline.
MPEG-4 and MP4 sound interchangeable but describe different layers of the same standard. MPEG-4 is the family of compression standards. MP4 is the container format defined inside that family as Part 14. The table below maps the differences side by side.
| Dimension | MPEG-4 | MP4 |
|---|---|---|
| Definition | Family of audio, video, and container standards | Specific container file inside MPEG-4 Part 14 |
| Standard ID | ISO/IEC 14496 (umbrella) | ISO/IEC 14496-14 |
| What it covers | Video (Part 10), audio (Part 3), container (Part 14), DRM, scene description | One file that wraps video, audio, subtitles, chapters, and metadata |
| File extension | None directly. Parts use their own extensions. | .mp4, .m4v, .m4a, .m4b, .m4p, .m4r |
| Codec inside | Defines codecs such as H.264, AAC, ALS, MPEG-4 Visual | Holds H.264, H.265, AV1, AAC, Opus, AC-3 streams |
| Browser playback | Web browsers play MPEG-4 only through the H.264 + AAC profile inside an MP4 file. | Plays in Chrome 4+, Edge 12+, Safari 3.2+, Firefox 35+, Opera 25+, and IE 9+. |
| Patent licensing | Codec parts (H.264, AAC) need a Via LA license for paid use. | Container itself is royalty-free; only the codec inside triggers fees. |
| Best fit | Term used in standards docs and codec discussions. | Default video file for the web, mobile, and consumer hardware. |
MPEG-4 is the default video format on the web, mobile devices, and consumer electronics. The list below covers where it shows up in production.
A typical MPEG-4 video element looks like the snippet below. The codecs string locks the browser to H.264 baseline plus AAC-LC, so only browsers that can decode both ever request the file:
<!-- Play an MPEG-4 H.264 file in the HTML5 video element.
The codecs string locks the browser to H.264 baseline plus
AAC-LC audio, so it can pick the file up only if it can decode
both. The webm source is the fallback for older Firefox builds. -->
<video controls width="800" height="450" preload="metadata">
<source src="trailer.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
<source src="trailer.webm" type="video/webm" />
<p>Your browser cannot play MPEG-4 video.
<a href="trailer.mp4">Download the file</a> instead.</p>
</video>MPEG-4 plays almost everywhere, but the long tail still trips up real projects. The list below covers the failures that surface in production logs and bug trackers.
In my experience, the most painful MPEG-4 bug shows up on Linux CI runners. A test hits a Firefox container, the container ships without ffmpeg, and the playback test fails with a silent MEDIA_ERR_SRC_NOT_SUPPORTED. The fix is small (apt install ffmpeg or libavcodec-extra), but the failure looks like a code regression until someone checks the container packages.
All MPEG-4 version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance