L'insertion de vidéo est assez simple en HTML5. C'est même l'une des principales nouveautés qui libèrent de Flash et de Youtube, par rapport à XHTML. Surtout ils permettent de se dégager des boîtes noires de type embed
ou object
qui étaient jusqu'alors utilisées.Mais tout n'est pas aussi simple qu'on souhaiterait le voir, en particulier grâce aux supports aléatoires selon les navigateurs et les spécifications de codecs, donc spécifiques à la vidéo elle-même, en général méconnus.
Pour insérer une vidéo, codez par exemple :
<video src="#/video/sintel_trailer-480p.mp4" controls width="320" height="240"/>
L'élément video
crée la zone. Les attributs width
et height permettent de définir une dimension d'affichage. Enfin controls
permet d'afficher la barre de navigation dans la vidéo.
La vidéo utilisée ci-dessus est celle de Sintel, court-métrage réalisé avec Blender. Vous trouverez de nombreux exemples sur internet de vidéos dans différents formats dont :
Formats vidéo supportés
Malheureusement, aucun navigateur ne supporte tous les formats vidéo. Il est donc important de bien évaluer le besoin de vidéo dans un site avant de les mettre en œuvre.
Une seconde notation incluant l'élément source
à la place de l'attribut src
permet de définir plusieurs sources pour la même vidéo et ainsi laisser le logiciel de lecture choisir le format le plus approprié pour lui. Attention cependant, car cela alourdit évidemment d'autant les fichiers HTML, mais pas nécessairement le temps de chargement, car le navigateur fera son propre choix et ne téléchargera que la version qu'il préfère parmi les sources mentionnées. Il n'en reste pas moins que l'espace d'hébergement nécessaire est alors largement accru.
<video id="video3" controls width="320" height="240"> <source src="video/sintel_trailer-480p.mp4" type="video/mp4"/> <source src="video/sintel_trailer-480p.webm" type="video/webm"/> <source src="video/sintel_trailer-480p.ogv" type="video/ogg"/> </video>
Notons que width définit la largeur de la fenêtre vidéo et height sa hauteur.
Les principaux formats sont donc :
Pour vérifier le support des différents formats par les navigateurs, nous vous conseillons de visiter http://caniuse.com/#search=video.
Certains attributs facilitent grandement la façon dont le site et l'utilisateur peuvent interagir.
L'attente de la vidéo se définit par deux attributs principaux : preload
et poster
.
L'attribut poster
de l'élément video
permet de spécifier l'adresse d'une image, en général extraite du film, et qui servira d'illustration statique (en pause) en attendant le déclenchement de la lecture. Il peut ainsi être comparé à l'attribut src
de la balise img
. Cela est particulièrement utile dans le cas des films commençant pas une image noire.
Dans le cas, où aucun poster n'est défini ou qu'il est erroné ou introuvable, les navigateurs sont libres de gérer le remplacement. Cela peut selon les cas être un fond noir ou la première image du film en attente de lancement.
<video width="300" controls poster="http://peach.blender.org/wp-content/uploads/title_anouncement.jpg">
<source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4" />
<source src="http://techslides.com/demos/sample-videos/small.webm" type="video/webm" />
<source src="http://techslides.com/demos/sample-videos/small.ogv" type="video/ogg" />
</video>
Il est implicite que le contenu du poster est un contenu représentatif de la vidéo et qu'il n'a pas de raison d'être si la vidéo est en autoplay
.
Dans l'exemple présent, nous avons choisi une illustration de Big Buck Bunny qui n'a rien à voir avec la vidéo affichée (cf plus haut) de manière à bien montrer la différence.
L'attribut preload
permettra de charger la vidéo en arrière-plan, juste après le chargement global de l'ensemble de la page. Cet attribut n'a pas de raison d'être dans le cas d'une vidéo en autoplay
. Dans les autres cas, elle permettra un gain éventuel de fluidité pour les personnes disposant d'une bande passante assez faible étant donné le temps nécessaire à chargement des fichiers vidéo en général assez lourds. Cela peut le cas échéant minimiser les saccades voire les pauses intempestives et désagréables pour l'utilisateur. En revanche, le preload
chargeant le fichier vidéo occupe la bande passante et peut de fait ralentir la navigation du visiteur s'il visite plusieurs sites ou pages de votre site simultanément, voire aussi ralentir les personnes partageant la même connexion internet.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.