Embedding a video file in an HTML document allows the video playback directly in the web browser without needing a separate video player application. HTML video embedding is also important because it will enable videos to be played on mobile devices that do not have a dedicated video player application. For example, many smartphones and tablets do not have a video player application installed, but they can still play video files embedded in an HTML document. Additionally, HTML video embedding can be used to create a video gallery, where multiple videos can be displayed on a single page. An embed code is a chunk of HTML allowing you to embed content from one website into another. Most commonly, embed codes are used to embed video in HTML from video-sharing sites like YouTube. Embed codes are important because they allow you to embed content on your website without hosting it on the same server. This can save you a lot of bandwidth and storage space and prevent you from having to deal with copyright issues.
In this article, we will discuss major methods of embedding video files in an HTML document. The methods are easy enough, and most often, they require copying and pasting of an HTML string. These strings are available through your sharing snippet that either contains a video tag or an iframe tag. We will discuss about both methods of using a video tag and an iframe tag with their features and attributes.
Embed Video in HTML using < Video > tag
The < video > embed element in HTML is used to embed a video file into an HTML document. The HTML video element shows a video on a web page without the requirement of Flash Player, like additional plugins. After implementing HTML5, embedding videos to a web page became as easy as adding an image. Although the data in the video element is supposed to be video, you can also add images and audio. The content is written in between the opening < video > and closing < /video > tags.
Web browsers commonly supported video formats are mp4, WebM and Ogg. The < video > tag contains < source > tags that contain different video sources. The browser picks the one it supports. For example, different video sizes for iPad and retina displays can be provided with different source URLs. This can be seen in the below code snippet:
< video src=”video.webm” type=”video/webm” controls >
< /video >
< video controls >
< source src=”movie.mp4″ type=”video/mp4″ >
< source src=”movie.ogg” type=”video/ogg” >
< /video >
Note: < source > tag is an empty tag. There is no need to close it except in the case of XHTML.
Attributes of video element for embedding in HTML
There are three attributes which get mainly used with < video > tag namely, “src”, “controls” and “type”.
src – This attribute gets used to specify the source URL of the video. It specifies the URL or video file location to embed.
If you are not using the ‘src’ attribute of the video tag, then you need to use the < source > tag with its ‘src’ attribute to specify the source URL. The additional benefit a < source > tag provides is of having different source URLs for different display sizes and video types.
< video controls >
< source src=”movie-1080p.mp4″ type=”video/mp4″ >
< source src=”movie-480p.mp4″ type=”video/mp4″ >
< /video >
type – This attribute specifies one of the three supported video format types. Similar to the ‘src’ attribute, this attribute can also be specified with the < source > tag and have multiple types.
|Video Format||Type value|
controls – The controls attribute displays player controls supported by browsers. If this attribute is not used, the player won’t display any controls, not even pause and play. If specified, the browse will offer video controls to the user, such as volume, play, pause, resume playback and more.
autoplay – A boolean expression, when specified, automatically starts the video as soon as the data has finished loading.
The automatic video playback (mostly with an audio track) when a visitor visits a website is not liked by many and is often considered a bad user experience. Some browsers like Chrome70.0 allow autoplay only when the muted attribute is present.
To autoplay a video with muted audio, add ‘muted’ after ‘autoplay’.
< video width=”340″ height=”260″ autoplay muted >
preload – This attribute gives the author the freedom to hint to the browser whether to download the video or the metadata or not to load the video when the page loads the first time. The attribute allows 3 values to pass:
- none – The video will not be preloaded. The video content part of the page will be displayed as a blank region on the screen.
- metadata – Only the video metadata (height, width, duration etc) is fetched before the user starts video playback
- auto – The entire video is downloaded irrespective of user interest. The auto request can be ignored by the browser.
Note: The autoplay attribute can override the preload. The preload attribute is just a hint for the browser.
loop – A boolean expression, when specified, plays the video again once the playback has come to end.
height – Sets the video display area height.
width – Sets the video display area width.
muted – A boolean attribute to initially mute the audio in a video. If set to ‘false’, the audio will play when the video starts.
poster – A preview image that is shown when the video is loading or until the time user hits the play button. If the attribute is not specified, nothing is displayed till the time the first video frame is available. The first frame then becomes the poster frame.
Embed Video in HTML using < iframe > tag
The <iframe> HMTL element specifies an inline frame containing independent HTML. With this frame, you can embed another HTML page or external URL into the current page (parent page). Commonly it is used to embed videos, external ads, maps and other media.
The content is referenced in the ‘src’ attribute of each element, which makes it a completely independent resource in reference to the current document.
Here is an example of a YouTube video embed code using an iframe element. The <iframe> tag below would load a 560x315px player, which will play the YouTube video id ‘M7lc1UVf-VE’. The below embed code from YouTube also uses the ‘allow’ parameter to specify multiple features like autoplay, picture-in-picture, etc.
<iframe width=”560″ height=”315″ src=”https://www.youtube.com/embed/M7lc1UVf-VE” title=”YouTube video player” frameborder=”0″ allow=”accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture” allowfullscreen></iframe>
How an iframe loads a video element?
Once an < iframe > element is placed with a ‘src’ attribute, it will start loading the HTML content of the source URL. The HTML content will load with a < video > element containing the source or blob URL of the video. For example, the above YouTube iframe embed code will eventually unfold to,
< html >
< head >< /head >
< body >
…… < video >…..< /video >
< /body >
< /html >
Attributes of iframe element for Video embed in HTML
allow – specifies the feature policy of the <iframe>. The policy is used to define features available to the <iframe> based on the request origin. The allow attribute values are the following features which can be used as per need.
- unoptimized-images ExperimentalNon-Standard
- unsized-media ExperimentalNon-Standard
allowfullscreen – when set true, activates full screen via requestFullscreen() method.
height – defines frame height in CSS pixels. The default value is 150
weight – defines frame width in CSS pixels. The default value is 300
name – name for the embedded browsing context.
allowpaymentrequest – is set to true, a cross-origin <iframe> is allowed to invoke Payment Request API
loading – specifies how the web browser should load iframe
- eager: immediately load the iframe
- lazy: defer iframe loading as defined by the browser (upon reaching a calculated distance from the viewport).
sandbox – applies a set of restrictions for the iframe content. The attribute value is either empty for applying all restrictions or space-separated tokens to lift particular restrictions.
srcdoc – defines the HTML content of the page to show in the <iframe>
The <iframe> tag supports Global and Event attributes in HTML. Few events triggered by media are ‘onabort’, ‘oncanplay’, ‘ondurationchange’, ‘onplay’, ‘onvolumechange’ and more.
How to securely Embed Videos preventing illegal downloads
The best way to prevent your premium videos from being illegally downloaded is to use VdoCipher embed code. VdoCipher embed code is similar to that of YouTube, containing an < iframe > element but with DRM Encryption enabled ‘src’ player.
<iframe src=”https://player.vdocipher.com/playerAssets/1.x/vdo/embed/index.html#otp=20160313versASE323NbiX5si4N3R6iqCixmcl4u41SZMyP9ABAsAs12tehmBPG2&playbackInfo=eyJ2aWRlb0lkIjoiYmNiMDdkYmRmOWE1OTZkNDkwZTRhZDRkNzViMDBlYmQifQ==” style=”border:0;height:360px;width:640px;max-width:100%” allowFullScreen=”true” allow=”encrypted-media”></iframe>
This iframe code unfolds to contain a < video > element containing video ‘src’ URLs, and these video source URLs are protected by multi-DRM technology. This not only protects video downloads but also screen capture on all Google and Apple devices with their browsers. When opened, even the video source URL will generate an error page with a missing key error. This happens because DRM encryption uses dynamic cloud-based key generation and is break-proof.
<Message>Missing Key-Pair-Id query parameter or cookie value</Message>
Apart from providing secure embed code for your videos, VdoCipher has many advanced features as follows:
- Hollywood-Grade DRM Encryption
- URL Whitelist (Domain restriction)
- VdoCipher WordPress Plugin with easy integration
- Smart HTML5 Video Player with Adaptive Bitrate Streaming
- Dynamic Watermarking
- Secure offline downloads on Android
- API and SDKs
Can video element tag be used to play an audio file?
Yes, you can play the audio using the < video > tag, but using the < audio > tag will give a better user experience via consolidated UI.
Is it possible to edit an iframe video inner HTML elements?
Not possible in the case of src being another domain as it is against the browser’s cross-origin policy. Else, it can be done via the use of JS or jquery.
What browsers support the HTML <video> tag?
The HTML <video> tag is supported by all major browsers, including Google Chrome, Mozilla Firefox, Internet Explorer, Safari, and Opera.
What are the benefits of using an iframe?
Iframes offer several benefits over traditional HTML frames, including the ability to load content asynchronously and support for modern web standards.
What are the drawbacks to using an iframe?
One major drawback of having iframes is that they may impact the performance of your page if not used correctly. For example, iframes can slow down page loading time.
Supercharge Your Business with Videos
At VdoCipher we maintain the strongest content protection for videos. We also work extremely hard to deliver the best viewer experience. We'd love to hear from you, and help boost your video streaming business.
I love exploring the nexus between tech, marketing, culture, space, and politics by lying awake at night pondering over the myriad facets of life. In my spare time, I enjoy watching nature documentaries, sci-fi and drama series.