Autoblog de sebsauvage.net

Ce site n'est pas le site officiel de sebsauvage.net
C'est un blog automatisé qui réplique les articles de sebsauvage.net

Héberger des vidéos sur son propre serveur... sans le tuer

mercredi 3 octobre 2012 à 14:07


YouTube censure à tour de bras:

Il faut sérieusement réfléchir à héberger ses vidéos soi-même. (Mitsukarenai est un expert sur le sujet, alors ma petite diatribe du jour va sûrement le faire sourire.)

Seulement voilà, héberger soi-même des vidéos pose des problèmes épineux:


J'ai fini par trouver une solution très simple et qui ne tue pas votre serveur. Voici comment procéder:

  1. Encodez vos vidéos en WebM et MP4, et placez-les quand même sur votre serveur.

  2. Ajoutez un fichier .htaccess pour servir les vidéos avec le bon type MIME:
    AddType video/mp4 .mp4
    AddType video/webm .webm
  3. Prenez le lecteur opensource Video.js: Il utilise HTML5/balise video et javascript pour lire la vidéo WebM. C'est très simple:
    <script src="http://sebsauvage.net/rhaa/video-js/video.js"></script>
    <script>_V_.options.flash.swf = "video-js/video-js.swf";</script>

    <video id="test_video_1" class="video-js vjs-default-skin" controls preload="none" width="854" height="480"
           poster="http://mondomaine.com.nyud.net/videos/video1_miniature.jpg" data-setup="{}">
        <source src="http://mondomaine.com.nyud.net/videos/video1.webm" type='video/webm' />
        <source src="http://mondomaine.com.nyud.net/videos/video1.mp4" type='video/mp4' />
    </video>
  4. Si le navigateur ne supporte pas WebM ou HTML5, Video.js bascule sur Flash et MP4, ce qui assure une compatibilité avec pratiquement tous les navigateurs.

  5. Comme vous pouvez le voir dans les balises source, ajoutez .nyud.net au nom de domaine dans les URLs de vos vidéos.

C'est tout: Video.js vous assure que le lecteur marchera dans pratiquement tous les navigateurs. Les navigateurs supportant HTML5+WebM l'afficheront directement (Firefox, Opera, Chrome...), les autres (Safari, IE...) se rabattront sur MP4 (soit en HTML5 aussi, soit via Flash).

Vous avez remarqué le ".nyud.net" ? Par le simple fait d'appeler votre vidéo à travers cette URL, le CDN CoralCache ira lire une seule fois la vidéo de votre serveur et la répliquera dans le monde au fur et à mesure qu'elle est consultée. Plus de problème de bande passante: Ce sont leurs serveurs qui fournissent la vidéo, et non le vôtre. Et plus de problème de débit non plus: Avec 300 serveurs répartis dans le monde, même des internautes éloignés pourront lire la vidéo sans coupure. (CoralCache est gratuit depuis 8 ans et sans contrepartie.)

Accessoirement, cela fait la nique aux limites de débit posées artificiellement par les fournisseurs d'accès sur des sites comme YouTube (coucou Free, coucou Orange).

Petit bémol de cette solution: Les fichiers sont limités à 50 Mo. Au delà de 50 Mo, CoralCache ne fait plus office de cache et renvoie vers votre serveur en direct.

Voilà le résultat (j'ai mis la vidéo du trailer du jeu Dustforce - me gusta).

<link src="http://sebsauvage.net/rhaa/../test_video/video-js/video-js.css" rel="stylesheet" type="text/css"> <script src="http://sebsauvage.net/rhaa/../test_video/video-js/video.js"> <script>_V_.options.flash.swf = "../test_video/video-js/video-js.swf";


Très simple à mettre en place, compatible (pratiquement) tous navigateurs, vous gardez le contrôle de l'hébergement de la vidéo, ça ne tue pas votre bande passante et ça assure un bon débit n'importe où dans le monde. Chouette, non ? Avec ça, on a plus vraiment besoin de YouTube pour publier ses vidéos... à part un peu d'espace sur son hébergement. Il est reste quand même la facilité de publication sur YouTube et ses petits outils (commentaires, stabilisation de vidéo, plusieurs résolutions de vidéo fournies, etc.) qui peuvent faire préférer ce dernier.

Quant à la liberté d'expression, jusqu'à présent je n'ai jamais vu CoralCache censurer quoi que ce soit. Au pire, le risque est que votre vidéo soit illisible si le domaine nyud.net est bloqué, mais ce n'est pas pire que YouTube. Au moins la vidéo est (virtuellement) "chez vous".


De rien, ça me fait plaisir :-)


EDIT 5 oct.: Et crotte, je viens de m'apercevoir que CoralCache, pour le moment, ne met en cache que les fichiers de moins de 50 Mo. :-/ Flûte. Si le fichier fait 50 Mo ou plus, il y a une redirection transparente vers votre site (avec un ?coral-no-serve dans l'URL). Ils sont en train de travailler à une manière plus efficace de mettre en cache les gros fichiers.

Source : http://sebsauvage.net/rhaa/index.php?2012/10/03/12/07/39-heberger-des-videos-sur-son-propre-serveur-sans-le-tuer