Bird
Raised Fist0
HTMLmarkup~8 mins

Video tag basics in HTML - Performance & Optimization

Choose your learning style10 modes available
Performance: Video tag basics
MEDIUM IMPACT
This affects page load speed and rendering performance by how video files are loaded and displayed in the browser.
Embedding a video on a webpage
HTML
<video controls preload="metadata" poster="thumbnail.jpg" src="optimized-video.webm" loading="lazy"></video>
Loads only video metadata first, defers full video loading, and uses a smaller optimized format.
📈 Performance GainReduces blocking, improves LCP by loading main content faster
Embedding a video on a webpage
HTML
<video src="large-video.mp4" autoplay controls></video>
Loading a large video file immediately blocks page load and delays main content rendering.
📉 Performance CostBlocks rendering until video metadata loads, increasing LCP by several seconds
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Eager large video loadMinimal1 (layout for video size)High (large video frames)[X] Bad
Lazy load with metadata preloadMinimal1 (layout for video size)Low (small metadata first)[OK] Good
Rendering Pipeline
The browser first loads video metadata to reserve space, then loads video frames as needed. Large video files can block rendering if loaded eagerly.
→Resource Loading
→Layout
→Paint
→Composite
⚠️ BottleneckResource Loading stage due to large video file size
Core Web Vital Affected
LCP
This affects page load speed and rendering performance by how video files are loaded and displayed in the browser.
Optimization Tips
1Use preload="metadata" to avoid blocking full video load on page start.
2Choose modern, compressed video formats like WEBM for faster loading.
3Add a poster image to improve visual stability and user experience.
Performance Quiz - 3 Questions
Test your performance knowledge
What attribute helps reduce blocking by loading only video metadata initially?
Apreload="metadata"
Bautoplay
Ccontrols
Dloop
DevTools: Performance
How to check: Record page load and look for video resource loading times and main content paint times.
What to look for: Long blocking times or delayed Largest Contentful Paint caused by video loading

Practice

(1/5)
1. What is the main purpose of the <video> tag in HTML?
easy
A. To embed videos directly on a webpage
B. To create audio playlists
C. To add images to a webpage
D. To style text content

Solution

  1. Step 1: Understand the role of the <video> tag

    The <video> tag is designed to embed video content directly into HTML pages.
  2. Step 2: Compare with other options

    Options A, B, and C relate to audio, images, and text styling, which are not the purpose of <video>.
  3. Final Answer:

    To embed videos directly on a webpage -> Option A
  4. Quick Check:

    <video> tag = embed videos [OK]
Hint: Remember: <video> is for videos, not audio or images [OK]
Common Mistakes:
  • Confusing <video> with <audio> tag
  • Thinking <video> adds images
  • Assuming <video> styles text
2. Which of the following is the correct way to add playback controls to a video using the <video> tag?
easy
A. <video src="movie.mp4" play></video>
B. <video src="movie.mp4" playcontrols></video>
C. <video src="movie.mp4" control></video>
D. <video src="movie.mp4" controls></video>

Solution

  1. Step 1: Identify the correct attribute for controls

    The correct attribute to add playback controls is controls without any extra letters.
  2. Step 2: Check each option's attribute spelling

    <video src="movie.mp4" controls></video> uses controls correctly; others have incorrect or non-existent attributes.
  3. Final Answer:

    <video src="movie.mp4" controls></video> -> Option D
  4. Quick Check:

    Use controls attribute to add buttons [OK]
Hint: Use exactly 'controls' attribute to show video buttons [OK]
Common Mistakes:
  • Misspelling 'controls' as 'control' or 'playcontrols'
  • Using non-existent attributes like 'play'
  • Forgetting to close the video tag properly
3. What will the following HTML code do when opened in a modern browser?
<video controls>
  <source src="video.webm" type="video/webm">
  <source src="video.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>
medium
A. Show error message and no video
B. Play video.mp4 only, ignoring video.webm
C. Play video.webm if supported, else video.mp4
D. Play both videos simultaneously

Solution

  1. Step 1: Understand multiple <source> tags in <video>

    The browser tries each <source> in order and plays the first supported format.
  2. Step 2: Analyze the source order and browser support

    If the browser supports WebM, it plays video.webm; otherwise, it falls back to video.mp4.
  3. Final Answer:

    Play video.webm if supported, else video.mp4 -> Option C
  4. Quick Check:

    Multiple sources = fallback to supported video [OK]
Hint: Browser picks first supported source in order [OK]
Common Mistakes:
  • Assuming both videos play at once
  • Thinking only the last source is used
  • Ignoring fallback text for unsupported browsers
4. Identify the error in this video tag code:
<video src="movie.mp4" controls>
  <source src="movie.webm" type="video/webm">
</video>
medium
A. The controls attribute is misspelled
B. The src attribute should not be used with <source> tags inside <video>
C. The <source> tag is missing a closing slash
D. The <video> tag cannot have multiple sources

Solution

  1. Step 1: Understand usage of src and <source> tags

    When using multiple <source> tags, the src attribute on <video> should be omitted to avoid conflicts.
  2. Step 2: Check other options for errors

    controls is spelled correctly, <source> tags do not require closing slashes in HTML5, and multiple sources are allowed.
  3. Final Answer:

    The src attribute should not be used with <source> tags inside <video> -> Option B
  4. Quick Check:

    Use either src or <source>, not both [OK]
Hint: Don't mix video src attribute with source tags [OK]
Common Mistakes:
  • Using src on video with source tags
  • Thinking <source> needs closing slash
  • Believing controls attribute is misspelled
5. You want to embed a video that automatically plays, loops, and is muted by default for better user experience. Which of the following is the correct <video> tag to achieve this?
hard
A. <video src="clip.mp4" autoplay loop muted></video>
B. <video src="clip.mp4" autoplay muted></video>
C. <video src="clip.mp4" autoplay loop controls></video>
D. <video src="clip.mp4" loop controls></video>

Solution

  1. Step 1: Identify required attributes for autoplay, loop, and mute

    The attributes autoplay, loop, and muted enable automatic play, repeating, and silent start respectively.
  2. Step 2: Check which option includes all three without extra controls

    <video src="clip.mp4" autoplay loop muted></video> has all three attributes and no controls, matching the requirement exactly.
  3. Final Answer:

    <video src="clip.mp4" autoplay loop muted></video> -> Option A
  4. Quick Check:

    Use autoplay, loop, muted together for silent looping video [OK]
Hint: Combine autoplay, loop, muted attributes for silent looping video [OK]
Common Mistakes:
  • Forgetting muted causes autoplay to block
  • Adding controls when not needed
  • Missing one of the required attributes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard