Syntax
<video src="movie.mp4" controls width="640"></video>Examples
Basic Video Player
A video with standard browser playback controls, using MDN’s hosted flower sample. An internet connection is required.
<video controls playsinline preload="metadata" width="640" style="max-width: 100%; height: auto;">
<source src="https://developer.mozilla.org/shared-assets/videos/flower.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>Multiple Source Formats
Providing fallback formats for broader browser support.
<video controls playsinline preload="metadata" width="640" style="max-width: 100%; height: auto;">
<source src="https://developer.mozilla.org/shared-assets/videos/flower.webm" type="video/webm">
<source src="https://developer.mozilla.org/shared-assets/videos/flower.mp4" type="video/mp4">
Your browser does not support HTML5 video.
</video>Autoplay Muted Background Video
A muted looping video with controls so visitors can pause it. Browser settings may still prevent autoplay.
<video controls autoplay muted loop playsinline width="640" style="max-width: 100%; height: auto;">
<source src="https://developer.mozilla.org/shared-assets/videos/flower.mp4" type="video/mp4">
</video>Attributes
- controls (boolean): Shows the browser's built-in playback controls
- autoplay (boolean): Starts playback automatically (most browsers require muted for this to work)
- loop (boolean): Restarts the video automatically when it ends
- muted (boolean): Mutes audio by default
- poster (URL): An image shown before playback starts
Best practices
- Always include the controls attribute unless you have a very specific reason to hide them — autoplay-only videos are a poor user experience
- Autoplay only works reliably in most browsers when combined with muted
- Provide multiple <source> formats (MP4, WebM) for cross-browser compatibility
- Include fallback text between the tags for very old browsers that do not support <video>
- Use the poster attribute to show a meaningful thumbnail before playback
Browser compatibility
Support applies to the named feature, not every attribute or behaviour in this article. Versions refer to browsers, not operating systems.
Element support does not guarantee every codec, media file or autoplay policy. Choose each relevant attribute below; actual playback also depends on the media resource and browser policy.
<video>
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 3.5 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 10.5
Mobile
- Safari on iOS
- Supported
From 3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 3
Firefox
- From 3.5
Safari
- From 3.1
Edge
- From 12
Opera
- From 10.5
Safari on iOS
- From 3
Chrome for Android
- From 18
Firefox for Android
- From 4
Samsung Internet
- From 1.0
<video> controls
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 3.5 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 10.5
Mobile
- Safari on iOS
- Supported
From 3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 3
Firefox
- From 3.5
Safari
- From 3.1
Edge
- From 12
Opera
- From 10.5
Safari on iOS
- From 3
Chrome for Android
- From 18
Firefox for Android
- From 4
Samsung Internet
- From 1.0
<video> autoplay
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 3.5 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 10.5
Mobile
- Safari on iOS
- Supported
From 10 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 3
Firefox
- From 3.5
Safari
- From 3.1
Edge
- From 12
Opera
- From 10.5
Safari on iOS
- From 10
Chrome for Android
- From 18
Firefox for Android
- From 4
Samsung Internet
- From 1.0
<video> loop
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 11 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 10.5
Mobile
- Safari on iOS
- Supported
From 6 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 14 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 3
Firefox
- From 11
Safari
- From 3.1
Edge
- From 12
Opera
- From 10.5
Safari on iOS
- From 6
Chrome for Android
- From 18
Firefox for Android
- From 14
Samsung Internet
- From 1.0
<video> muted
Desktop
- Chrome
- Supported
From 30 - Firefox
- Supported
From 11 - Safari
- Supported
From 5 - Edge
- Supported
From 12 - Opera
- Supported
From 17
Mobile
- Safari on iOS
- Supported
From 4.2 - Chrome for Android
- Supported
From 30 - Firefox for Android
- Supported
From 14 - Samsung Internet
- Supported
From 2.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 30
Firefox
- From 11
Safari
- From 5
Edge
- From 12
Opera
- From 17
Safari on iOS
- From 4.2
Chrome for Android
- From 30
Firefox for Android
- From 14
Samsung Internet
- From 2.0
<video> poster
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 3.6 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 10.5
Mobile
- Safari on iOS
- Supported
From 3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 3
Firefox
- From 3.6
Safari
- From 3.1
Edge
- From 12
Opera
- From 10.5
Safari on iOS
- From 3
Chrome for Android
- From 18
Firefox for Android
- From 4
Samsung Internet
- From 1.0
<source>
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 3.5 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 15
Mobile
- Safari on iOS
- Supported
From 2 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 3
Firefox
- From 3.5 · Until Firefox 15, Firefox picked the first source element that has a type matching the MIME-type of a supported media format; see bug 449363 for details.
Safari
- From 3.1
Edge
- From 12
Opera
- From 15
Safari on iOS
- From 2
Chrome for Android
- From 18
Firefox for Android
- From 4 · Until Firefox for Android 15, Firefox for Android picked the first source element that has a type matching the MIME-type of a supported media format; see bug 449363 for details.
Samsung Internet
- From 1.0
<video> playsinline
Desktop
- Chrome
- Supported
From 75 - Firefox
- Not supported
- Safari
- Supported
From 10 - Edge
- Supported
From 79 - Opera
- Supported
From 62
Mobile
- Safari on iOS
- Supported
From 10 - Chrome for Android
- Supported
From 75 - Firefox for Android
- Not supported
- Samsung Internet
- Supported
From 11.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 75
Firefox
- Not supported
Safari
- From 10
- From 8 · Alternative name: webkit-playsinline
Edge
- From 79
Opera
- From 62
Safari on iOS
- From 10
- From 8 · Alternative name: webkit-playsinline
Chrome for Android
- From 75
Firefox for Android
- Not supported
Samsung Internet
- From 11.0
<video> preload
Desktop
- Chrome
- Supported
From 3 - Firefox
- Supported
From 4 - Safari
- Supported
From 3.1 - Edge
- Supported
From 12 - Opera
- Supported
From 15
Mobile
- Safari on iOS
- Supported
From 3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 3 · Defaults to metadata in Chrome 64.
Firefox
- From 4
Safari
- From 3.1
Edge
- From 12
Opera
- From 15 · Defaults to metadata in Opera 51.
Safari on iOS
- From 3
Chrome for Android
- From 18 · Defaults to metadata in Chrome Android 64.
Firefox for Android
- From 4
Samsung Internet
- From 1.0 · Defaults to metadata in Samsung Browser 9.0.
MDN BCD 8.1.5 · Dataset built 2026-10-08 · Mapping reviewed 2026-10-21. These dates are not individual browser-test or claim-verification dates. Unknown means the data does not establish support.