samedi 29 mars 2014

15 - Insertion d'une vidéo

0 commentaires

Il suffit d'une simple balise <video> pour insérer une vidéo dans la page :
1<video src="sintel.webm"></video>
Mais, là encore, vous risquez d'être déçus si vous utilisez seulement ce code. Aucun contrôle ne permet de lancer la vidéo !
Rajoutons quelques attributs (la plupart sont les mêmes que pour la balise <audio>) :
  • poster : image à afficher à la place de la vidéo tant que celle-ci n'est pas lancée. Par défaut, le navigateur prend la première image de la vidéo mais, comme il s'agit souvent d'une image noire ou d'une image peu représentative de la vidéo, je vous conseille d'en créer une ! Vous pouvez tout simplement faire une capture d'écran d'un moment de la vidéo.
  • controls : pour ajouter les boutons « Lecture », « Pause » et la barre de défilement. Cela peut sembler indispensable, mais certains sites web préfèrent créer eux-mêmes leurs propres boutons et commander la lecture avec du JavaScript. En ce qui nous concerne, ce sera largement suffisant !
  • width : pour modifier la largeur de la vidéo.
  • height : pour modifier la hauteur de la vidéo.
  • loop : la vidéo sera jouée en boucle.
  • autoplay : la vidéo sera jouée dès le chargement de la page. Là encore, évitez d'en abuser, c'est en général irritant d'arriver sur un site qui lance quelque chose tout seul !
  • preload : indique si la vidéo peut être préchargée dès le chargement de la page ou non. Cet attribut peut prendre les valeurs :
    • auto (par défaut) : le navigateur décide s'il doit précharger toute la vidéo, uniquement les métadonnées ou rien du tout.
    • metadata : charge uniquement les métadonnées (durée, dimensions, etc.).
    • none : pas de préchargement. Utile si vous souhaitez éviter le gaspillage de bande passante sur votre site.
Voici un code un peu plus complet :
1<video src="sintel.webm" controls poster="sintel.jpg" width="600"></video>
Pourquoi ouvrir et refermer immédiatement après la balise ?
La réponse est la même que pour la balise <audio>. Cela vous permet d'afficher un message ou d'utiliser une technique de secours (en Flash) si le navigateur ne reconnaît pas la balise :
1<video src="sintel.webm" controls poster="sintel.jpg" width="600">
2    Il est temps de mettre à jour votre navigateur !
3</video>
Comment contenter tous les navigateurs, puisque chacun reconnaît des formats vidéo différents ?
Vous utiliserez la balise <source> à l'intérieur de la balise <video> pour proposer différents formats. Le navigateur prendra celui qu'il reconnaît :
1<video controls poster="sintel.jpg" width="600">
2    <source src="sintel.mp4" />
3    <source src="sintel.webm" />
4    <source src="sintel.ogv" />
5</video>
Comment afficher la vidéo en plein écran ?
Ce n'est pas possible à l'heure actuelle. En fait, il existe bien un moyen sous Firefox mais il est un peu caché : il faut faire un clic droit sur la vidéo, puis sélectionner « Plein écran ».
Il n'y a pas de moyen de forcer le plein écran, même en JavaScript. Cela peut se comprendre, car des sites pourraient perturber fortement la navigation des visiteurs en affichant des vidéos en plein écran sans leur demander leur accord !
Comment protéger ma vidéo, je ne veux pas qu'on puisse la copier facilement !
Ce n'est pas possible. Les balises n'ont pas été conçues pour limiter ou empêcher le téléchargement. C'est assez logique quand on y pense : pour que le visiteur puisse voir la vidéo, il faut bien de toute façon qu'il la télécharge d'une manière ou d'une autre !
N'espérez donc pas empêcher le téléchargement de votre vidéo avec cette technique.

En résumé

  • Insérer de la musique ou de la vidéo n'était pas possible autrefois en HTML. Il fallait recourir à un plugin comme Flash.
  • Depuis HTML5, les balises <audio> et <video> ont été introduites et permettent de jouer de la musique et des vidéos sans plugin.
  • Il existe plusieurs formats audio et vidéo. Il faut notamment connaître :
    • pour l'audio : MP3 et Ogg Vorbis ;
    • pour la vidéo : H.264, Ogg Theora et WebM.
  • Aucun format n'est reconnu par l'ensemble des navigateurs : il faut proposer différentes versions de sa musique ou de sa vidéo pour satisfaire tous les navigateurs.
  • Il faut ajouter l'attribut controls aux balises <audio> et <video> pour permettre au visiteur de lancer ou d'arrêter le média.
  • Ces balises ne sont pas conçues pour empêcher le téléchargement de la musique et de la vidéo. Vous ne pouvez pas protéger votre média contre la copie.

Leave a Reply