Kurs HTML

Lekcja 10.3: Osadzanie wideo (<video>)

Strona główna > Rozdział 10: Multimedia > Osadzanie wideo (<video>)

Dodawanie filmów do strony

Znacznik <video> jest kluczowym elementem HTML5 umożliwiającym osadzanie i odtwarzanie treści wideo bezpośrednio na stronie internetowej, bez potrzeby używania zewnętrznych wtyczek. Pozwala na umieszczanie filmów, animacji, prezentacji wideo i innych materiałów wizualnych.

Podstawowe użycie z atrybutem `src`

Podobnie jak w przypadku <audio>, najprostszym sposobem jest użycie atrybutu src do wskazania pliku wideo oraz controls do wyświetlenia kontrolek. Dodatkowo, dla wideo często określa się wymiary za pomocą atrybutów width i height.

<video controls width="640" height="360" src="moj-film.mp4">
  Twoja przeglądarka nie obsługuje elementu video.
</video>

(Poniżej powinien pojawić się odtwarzacz wideo, jeśli przeglądarka go obsługuje)

Ważne atrybuty znacznika <video>

Znacznik <video> dzieli wiele atrybutów z <audio>, ale ma też kilka specyficznych dla siebie:

Przykład z atrybutami `poster`, `autoplay` (wyciszony) i `loop`:

<!-- Krótka, zapętlona animacja w tle, bez dźwięku -->
<video autoplay loop muted playsinline width="300" height="200" poster="animacja-poster.jpg">
  <source src="krotka-animacja.webm" type="video/webm">
  <source src="krotka-animacja.mp4" type="video/mp4">
  Twoja przeglądarka nie obsługuje wideo.
</video>

Dostarczanie wielu formatów: element <source>

Podobnie jak w przypadku audio, użycie elementu <source> jest zalecane do zapewnienia kompatybilności wideo. Pozwala to podać ten sam film w różnych formatach (kontenerach i kodekach).

Popularne formaty wideo i ich typy MIME:

Format MP4 (H.264/AAC) jest obecnie najszerzej wspierany. Format WebM jest również dobrze wspierany i jest formatem otwartym, często preferowanym ze względów licencyjnych.

Przykład użycia <source> z formatami MP4 i WebM:

<video controls width="720" height="405" poster="film-plakat.jpg" preload="metadata">
  <source src="film.mp4" type="video/mp4">
  <source src="film.webm" type="video/webm">
  <!-- Tekst zastępczy dla starszych przeglądarek -->
  Niestety, Twoja przeglądarka nie obsługuje odtwarzania wideo. 
  Możesz <a href="film.mp4">pobrać film w formacie MP4</a>.
</video>

Przeglądarka spróbuje odtworzyć film.mp4. Jeśli nie może, spróbuje film.webm. Jeśli oba formaty zawiodą, wyświetli tekst zastępczy.

Dostępność wideo

Aby treści wideo były dostępne dla szerszego grona odbiorców, należy rozważyć:

Zadanie praktyczne (z rozwiązaniem)

Zadanie: Osadź na stronie odtwarzacz wideo o wymiarach 480x270 pikseli z kontrolkami. Użyj atrybutu poster, aby ustawić obrazek migawka.jpg jako miniaturę. Za pomocą <source> podaj dwa formaty wideo: wideo-testowe.mp4 (typ video/mp4) i wideo-testowe.webm (typ video/webm). Dodaj tekst zastępczy.

Rozwiązanie:

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Odtwarzacz Wideo</title>
    <style>
        video {
            display: block; /* Aby uniknąć dodatkowego miejsca pod wideo */
            margin: 20px auto; /* Wyśrodkowanie */
            border: 1px solid #ccc;
        }
        .fallback-text {
            text-align: center;
            color: #777;
            margin-top: 10px;
        }
    </style>
</head>
<body>

<h1>Obejrzyj nasze wideo testowe</h1>

<video controls width="480" height="270" poster="migawka.jpg" preload="metadata">
  <source src="wideo-testowe.mp4" type="video/mp4">
  <source src="wideo-testowe.webm" type="video/webm">
  <p class="fallback-text">
    Twoja przeglądarka nie obsługuje odtwarzania wideo HTML5. 
    Możesz pobrać plik: 
    <a href="wideo-testowe.mp4" download>Pobierz MP4</a> lub 
    <a href="wideo-testowe.webm" download>Pobierz WebM</a>.
  </p>
</video>

</body>
</html>

Dodatkowe zadania do samodzielnego wykonania:

  1. Dodaj atrybuty autoplay, muted i loop do odtwarzacza z zadania. Zaobserwuj, czy wideo zaczyna się odtwarzać automatycznie i czy jest zapętlone.
  2. Usuń atrybuty width i height. Jak zachowuje się odtwarzacz? Spróbuj ustawić szerokość za pomocą CSS (np. width: 100%; height: auto;), aby uzyskać responsywny odtwarzacz.
  3. Znajdź krótki film w formacie Ogg Theora (.ogv) i dodaj go jako trzecie źródło (<source src="film.ogv" type="video/ogg">).

Najczęściej zadawane pytania

Jak dodać odtwarzacz wideo do strony HTML?

Użyj znacznika <video>. Dodaj atrybut `controls` dla kontrolek, `width` i `height` dla wymiarów, oraz `src` (lub zagnieżdżone <source> z `src` i `type`) do wskazania pliku(ów) wideo.

Co to jest atrybut `poster`?

Atrybut `poster` w znaczniku <video> pozwala określić URL obrazka, który będzie wyświetlany jako miniatura lub "plakat" przed rozpoczęciem odtwarzania wideo.

Jakie formaty wideo są najlepiej wspierane?

Format MP4 z kodekiem H.264 (typ MIME `video/mp4`) jest najszerzej wspierany. Format WebM (z VP8/VP9, typ MIME `video/webm`) jest również dobrze wspierany i jest formatem otwartym.

Dlaczego moje wideo z `autoplay` się nie odtwarza?

Większość przeglądarek blokuje automatyczne odtwarzanie wideo z dźwiękiem. Aby `autoplay` zadziałał, zazwyczaj musisz dodać również atrybut `muted` (wyciszenie).

Jak dodać napisy do filmu?

Napisy (subtitles/captions) dodaje się za pomocą zagnieżdżonego znacznika <track> wewnątrz <video>, wskazując na plik z napisami (np. w formacie WebVTT). Zostanie to omówione w następnej lekcji.