The message “no video with supported format and MIME” means a browser declined to play a video because the file format, codec, server MIME type, or cross-origin setup does not match what the page expects. This guide explains the technical causes, shows how to check browser and server settings, and provides reliable fixes you can apply quickly.
What the error means in simple terms
When a browser refuses to play a video and surfaces a message about no supported format or MIME type, the root issue is usually one of four things: the file extension does not match the actual encoding, the server sends an incorrect or missing Content-Type header, the browser lacks a compatible codec, or CORS blocks access to the video data. The browser’s media stack first inspects the file extension and the MIME type delivered by the server, then checks container and codec compatibility. If any of these checks fail, playback is blocked and developers may see errors in the browser console such as HTTP "video/mp4" mismatch or 406 Not Acceptable.
Browser MIME checks
Every modern browser maintains a list of video formats and codecs it can decode. Before requesting a video, the browser evaluates whether the declared MIME type matches a supported profile. If the server sends video/webm but the file is actually an MP4 stream, or if an .mp4 file is served without a correct Content-Type header, the browser may decline playback for security and spec compliance.
Why MIME and codecs matter
MIME types tell the browser how to handle a resource. A mismatched MIME type can trigger fallback behavior, wasted bandwidth, and console errors. Codecs determine whether the browser can decode the video stream, even when the container format appears acceptable. Missing codec support is common on mobile devices or older browsers that do not include patent-licensed codecs.
Common causes of the error
- Incorrect or missing Content-Type header on the origin server.
- URL extension does not match actual file encoding (for example, a .mp4 file that is encoded as WebM).
- Browser does not support the container or the chosen codec.
- CORS or referrer policies block the video bytes from reaching the page.
- Misconfigured CDN or proxy that rewrites headers incorrectly.
How to verify the MIME type being sent
Open browser DevTools, go to the Network tab, reload the page, and inspect the video request. Look for the Response Headers section and find Content-Type. It should reflect both the correct media type and, when possible, the codec. You can also use command-line tools like curl -I <url> to inspect headers from the server directly.
Inspecting response headers
Check that the Content-Type header is present and accurate. For example, an MP4 file should typically be served as video/mp4, WebM as video/webm, and AV1 or H.264 tracks should be documented in the codec parameter when space permits. The absence of a Content-Type header or a generic type such as application/octet-stream often leads to playback failures.
Server and CDN configuration fixes
Ensure your origin and CDN serve the correct MIME type for each extension and include the Accept-Ranges header to support byte-range requests, which are required for most HTML5 video playback. For static assets, configure your server to send standard mappings: .mp4 → video/mp4, .webm → video/webm, and .ogg → video/ogg. If you use a CDN, verify that it does not override these headers unless explicitly instructed.
Sample mappings for common servers
| Extension | Standard MIME type | Common use case |
|---|---|---|
| .mp4 | video/mp4 | H.264 or HEVC, often with AAC audio |
| .webm | video/webm | VP9 or AV1, common for open-source workflows |
| .ogv | video/ogg | Theora video, less common today |
| .mov | video/quicktime | ProRes or H.264 in QuickTime container |
Codec, container, and browser compatibility
Beyond MIME type, verify that the container and codecs align with browser support. MP4 with H.264 and AAC is widely supported across browsers and devices. WebM with VP9 or AV1 is well supported in Chrome, Edge, and Firefox but may require fallbacks for Safari. Older browsers and some enterprise environments may lack support for newer codecs like AV1, so consider providing multiple sources.
Baseline compatibility guide
- H.264 in MP4: near-universal support, recommended for broad reach.
- VP9 in WebM: strong support in Chromium-based browsers and Firefox.
- AV1 in WebM: growing support, verify for legacy user segments.
- HEVC in MP4: efficient at high resolutions but licensing and device compatibility can vary.
Debugging workflow for developers
Use a repeatable checklist when troubleshooting: confirm the file plays locally, inspect HTTP headers, verify MIME type and codec, test across browsers, and ensure CORS allows cross-origin access. If you host on a CDN, temporarily bypass it to rule out header rewriting. For HTML, prefer the <source> element with multiple formats and include poster attributes to improve perceived performance.
Quick debug checklist
- Confirm the video file is not corrupted (try opening it locally).
- Check server response headers for correct Content-Type.
- Validate that the extension matches the encoding.
- Test in at least two browsers with different codec support.
- Review console for CORS or MIME mismatch messages.
CORS and referrer policies
CORS can block video playback when pages and media are served from different origins. Ensure the server includes appropriate Access-Control-Allow-Origin headers if the video is cross-origin. Overly restrictive referrer policies may also prevent the browser from including credentials needed to decrypt or range-request the video, which can manifest as a missing or unsupported stream.
Progressive and adaptive streaming considerations
For progressive downloads, a simple MP4 or WebM file with correct MIME headers is usually sufficient. For adaptive streaming (HLS or DASH), you must also ensure the browser supports the manifest and segment formats. HLS on iOS and Safari typically requires an MPEG-TS or fMP4 presentation, while DASH works best with MP4 fragments and a manifest served with application/dash+xml or application/x-mpegURL where supported.
When to provide multiple formats
Serving more than one format increases compatibility, especially when you cannot guarantee the browser, device, or network conditions. A robust setup might include MP4 (H.264/AAC), WebM (VP9/AV1), and Fallback options for legacy contexts. Document which combinations you test and set expectations around performance and compatibility.
Summary and next steps
“No video with supported format and MIME” is a browser-level signal that the video source, headers, or codec do not satisfy the page’s requirements. Resolve it by aligning file extensions, containers, and codecs with standard MIME types, confirming server headers, and addressing CORS where needed. Start with the debugging checklist, add fallbacks for critical audiences, and monitor console logs for recurring mismatches.