Intégrer et personnaliser une vidéo en HTML

HTMLBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à intégrer et à personnaliser des éléments vidéo en HTML à l’aide de la balise <video>. Vous découvrirez les techniques essentielles pour créer des lecteurs vidéo interactifs : ajouter des contrôles, configurer les sources vidéo, définir des vignettes personnalisées et explorer différents attributs de la balise vidéo afin d’améliorer l’expérience de lecture.

Grâce à une progression étape par étape, vous développerez des compétences pratiques en intégration de vidéos HTML5, depuis la création d’un élément vidéo simple jusqu’à des configurations plus avancées. Vous apprendrez à ajouter plusieurs sources vidéo, à contrôler les paramètres de lecture, à définir des vignettes personnalisées et à créer des expériences vidéo plus attrayantes et conviviales directement dans des pages web.

Créer un élément vidéo de base avec des contrôles

Dans cette étape, vous apprendrez à créer en HTML un élément vidéo de base avec les contrôles essentiels. HTML5 fournit une balise <video> simple et puissante qui permet d’intégrer des vidéos directement dans des pages web.

Commencez par créer un fichier HTML pour tester l’intégration vidéo. Ouvrez le WebIDE et créez un fichier nommé video-demo.html dans le répertoire ~/project.

touch ~/project/video-demo.html
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Basic Video Element</title>
  </head>
  <body>
    <h1>My First Video Element</h1>

    <video controls width="640" height="360">
      Your browser does not support the video tag.
    </video>
  </body>
</html>

Voici le rôle des principaux éléments de l’élément vidéo :

  • Balise <video> : conteneur principal pour intégrer du contenu vidéo
  • Attribut controls : ajoute les contrôles par défaut du lecteur vidéo (lecture, pause, volume)
  • Attributs width et height : définissent les dimensions du lecteur vidéo
  • Texte à l’intérieur de la balise : message de remplacement pour les navigateurs qui ne prennent pas en charge les vidéos HTML5

L’attribut controls est essentiel, car il fournit aux utilisateurs les contrôles de lecture standard : lecture, pause, réglage du volume et mode plein écran.

Remarque : consultez Comment prévisualiser des fichiers HTML dans le WebIDE pour en savoir plus.

Élément vidéo HTML avec contrôles

Ajouter une source vidéo et désactiver le son

Dans cette étape, vous apprendrez à ajouter des sources vidéo à votre élément vidéo HTML et à contrôler son état de lecture initial. Vous allez modifier le fichier video-demo.html créé précédemment pour y intégrer des sources vidéo et désactiver le son par défaut.

Ouvrez le fichier ~/project/video-demo.html dans le WebIDE et remplacez son contenu par le code suivant :

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Video Source and Mute</title>
  </head>
  <body>
    <h1>Video with Multiple Sources</h1>

    <video controls width="640" height="360" muted>
      <source
        src="sample-video.mp4"
        type="video/mp4"
      />
      <source
        src="sample-video.webm"
        type="video/webm"
      />
      Your browser does not support the video tag.
    </video>
  </body>
</html>

Voici les nouveaux éléments ajoutés :

  • Balises <source> : permettent d’indiquer plusieurs formats vidéo afin d’assurer la compatibilité avec différents navigateurs

    • La première source est un fichier MP4
    • La deuxième source est un fichier WebM (format alternatif)
    • Le navigateur utilise le premier format pris en charge
  • Attribut muted : coupe automatiquement le son au chargement de la vidéo

    • Utile pour éviter une lecture audio inattendue
    • Vous pouvez le supprimer si vous souhaitez activer le son par défaut
  • Attribut type : indique le type MIME de la source vidéo

    • Aide le navigateur à déterminer s’il peut lire la vidéo

Le script d’installation crée localement les deux fichiers vidéo d’exemple afin que l’exemple fonctionne sans dépendre d’un hébergeur vidéo externe. Dans un contexte réel, vous remplaceriez ces fichiers par les chemins de vos propres vidéos.

Élément vidéo HTML avec plusieurs sources

Utiliser un poster vidéo comme vignette personnalisée

Dans cette étape, vous apprendrez à utiliser l’attribut poster pour ajouter une image de vignette personnalisée à votre élément vidéo avant le début de la lecture. Commencez par télécharger une image d’exemple à utiliser comme poster.

Exécutez la commande suivante pour télécharger une image d’exemple :

wget https://placehold.co/640x360.png?text=Video+Thumbnail -O ~/project/video-thumbnail.png

Modifiez ensuite le fichier ~/project/video-demo.html pour ajouter l’attribut poster :

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Video with Custom Poster</title>
  </head>
  <body>
    <h1>Video with Custom Thumbnail</h1>

    <video controls width="640" height="360" muted poster="video-thumbnail.png">
      <source
        src="sample-video.mp4"
        type="video/mp4"
      />
      <source
        src="sample-video.webm"
        type="video/webm"
      />
      Your browser does not support the video tag.
    </video>
  </body>
</html>

Points essentiels concernant l’attribut poster :

  • Affiche une image personnalisée avant le début de la lecture vidéo
  • Remplace la première image de la vidéo dans l’aperçu
  • Permet de créer une interface plus attrayante
  • Fonctionne avec des fichiers image locaux ou distants

L’image du poster fournit un aperçu du contenu vidéo et peut améliorer l’expérience utilisateur en donnant du contexte avant le début de la lecture.

Exemple de vignette poster pour une vidéo

Explorer les attributs et les configurations de la balise vidéo

Dans cette étape, vous allez approfondir les différents attributs et configurations disponibles pour l’élément vidéo HTML5. Modifiez le fichier ~/project/video-demo.html pour tester les paramètres avancés suivants :

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Advanced Video Configurations</title>
  </head>
  <body>
    <h1>Exploring Video Tag Attributes</h1>

    <video
      controls
      width="640"
      height="360"
      muted
      poster="video-thumbnail.png"
      preload="metadata"
      loop
      playsinline
    >
      <source
        src="sample-video.mp4"
        type="video/mp4"
      />
      <source
        src="sample-video.webm"
        type="video/webm"
      />
      Your browser does not support the video tag.
    </video>
  </body>
</html>

Examinons les nouveaux attributs :

  • preload="metadata" :

    • Contrôle le chargement de la vidéo avant sa lecture
    • Options : auto (charge la vidéo entière), metadata (charge uniquement les métadonnées), none (ne précharge pas la vidéo)
  • loop :

    • Relance automatiquement la vidéo lorsqu’elle se termine
    • Utile pour un contenu d’arrière-plan ou répétitif
  • playsinline :

    • Permet de lire la vidéo directement dans la page sur les appareils mobiles
    • Empêche le passage automatique en mode plein écran sur les appareils iOS

Vous pouvez également expérimenter avec les attributs suivants :

  • autoplay : démarre automatiquement la lecture de la vidéo
  • crossorigin : gère les sources vidéo provenant d’une autre origine
  • disablepictureinpicture : empêche l’utilisation du mode image dans l’image

Conseils pratiques :

  • Tous les navigateurs ne prennent pas en charge chaque attribut
  • Testez toujours votre page sur différents appareils et navigateurs
  • Tenez compte de l’expérience utilisateur lorsque vous utilisez autoplay ou loop

Améliorer l’expérience de lecture vidéo

Dans cette étape, vous apprendrez à améliorer l’expérience de lecture vidéo en ajoutant des contrôles personnalisés et une mise en forme. Créez un nouveau fichier ~/project/video-enhanced.html avec le contenu suivant :

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Enhanced Video Player</title>
    <style>
      .video-container {
        max-width: 640px;
        margin: 0 auto;
        position: relative;
      }
      .custom-controls {
        display: flex;
        background-color: rgba(0, 0, 0, 0.7);
        color: white;
        padding: 10px;
      }
      .custom-controls button {
        background: none;
        border: none;
        color: white;
        margin-right: 10px;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <div class="video-container">
      <video id="myVideo" width="640" height="360" poster="video-thumbnail.png">
        <source
          src="sample-video.mp4"
          type="video/mp4"
        />
        Your browser does not support the video tag.
      </video>

      <div class="custom-controls">
        <button onclick="togglePlay()">Play/Pause</button>
        <button onclick="muteToggle()">Mute/Unmute</button>
        <input
          type="range"
          min="0"
          max="100"
          value="50"
          onchange="changeVolume(this.value)"
        />
      </div>
    </div>

    <script>
      const video = document.getElementById("myVideo");

      function togglePlay() {
        if (video.paused) {
          video.play();
        } else {
          video.pause();
        }
      }

      function muteToggle() {
        video.muted = !video.muted;
      }

      function changeVolume(value) {
        video.volume = value / 100;
      }
    </script>
  </body>
</html>

Si vous débutez en CSS et en JavaScript, ne vous inquiétez pas. Cet exemple propose une méthode simple pour créer des contrôles vidéo personnalisés et mettre en forme l’interface du lecteur vidéo.

Améliorations principales de cet exemple :

  • Contrôles vidéo personnalisés :

    • Création d’un panneau de contrôle personnalisé avec des boutons de lecture/pause et de désactivation du son
    • Ajout d’un curseur pour régler précisément le volume
  • Mise en forme CSS :

    • Mise en forme du conteneur vidéo et des contrôles
    • Utilisation de Flexbox pour la disposition
    • Ajout d’un arrière-plan semi-transparent aux contrôles
  • Interactions JavaScript :

    • togglePlay() : contrôle manuellement la lecture et la pause de la vidéo
    • muteToggle() : active ou désactive le son de la vidéo
    • changeVolume() : règle le volume de la vidéo par programmation

Cette approche offre davantage de souplesse pour concevoir l’interface d’un lecteur vidéo que les contrôles par défaut du navigateur.

Exemple d’interface de lecteur vidéo personnalisé

Résumé

Dans ce laboratoire, vous avez appris à intégrer et à personnaliser des éléments vidéo en HTML à l’aide de la balise <video>. Le laboratoire a présenté les techniques essentielles pour créer des lecteurs vidéo interactifs, notamment l’ajout de contrôles de base, la définition de plusieurs sources vidéo et la configuration des paramètres de lecture. Les principales compétences acquises comprennent le réglage des dimensions de la vidéo, la mise en place d’un contenu de remplacement, l’ajout des contrôles du lecteur par défaut, ainsi que la gestion de la désactivation du son et de la sélection des sources vidéo.

Vous avez également exploré des techniques pratiques d’intégration de vidéos HTML5 en créant un élément vidéo de démonstration avec des fonctions standard telles que les contrôles de lecture/pause, la définition de la largeur et de la hauteur, ainsi que la prise en charge de différents formats vidéo. Ce laboratoire vous a permis de vous familiariser avec les attributs de la balise vidéo et d’améliorer l’interaction de l’utilisateur avec du contenu vidéo intégré grâce à différentes options de configuration.