
Mise en ligne de vidéos
Sur le site de
Toulibre, on commence à avoir quelques vidéos de conférences passées (sur le Logiciel Libre, sur Jabber, sur IRC, sur le droit d'auteur, la conférence de Richard Stallman, etc), et au lieu de simplement les mettre en téléchargement, j'aimerais permettre aux visiteurs de les visionner directement en ligne.
Une solution serait simplement de les uploader sur
Youtube,
Dailymotion ou
Google Vidéo, mais bon, c'est quand même plus sympa de les héberger chez soi. J'ai donc commencé à chercher des solutions, et j'ai expérimenté
ITheora et
Flowplayer.
ITheora
ITheora est un emballage en PHP autour de
Cortado, une applet Java qui permet de visionner des vidéos encodés en Ogg Theora. Itheora y ajoute la possibilité de passer par le visionneur intégré dans le navigateur si il est disponible, ce qui est sympathique si l'on a pas Java ou qu'on ne souhaite pas l'utiliser. Cela étant, pour ceux qui n'ont pas de visionneur installé, il faut passer par Java, et Java est nettement moins souvent installé sur les machines qu'un visionneur Flash, tout propriétaire soit-il. Je suis pas fan de Java pour des applets Web, mais en l'occurence, c'est la seule alternative bientôt-libre à Flash que je vois.
L'installation est très facile, et on arrive rapidement à streamer un gros fichier Ogg Theora. Seul soucis: la barre de progression dans ma vidéo ne fonctionne pas, et il n'arrive pas à trouver la durée de la vidéo. Je peux seeker dans la vidéo, mais à chaque fois que je seeke, la barre revient au début, même si il a bien seeké dans la vidéo. Étrangement,
mplayer a aussi du mal à seeker dans mes vidéos Ogg Theora (alors que
Xine y arrive très bien). Elles sont pourtant simplement générées avec
ffmpeg2theora, sans magie particulière. C'est plutôt ennuyeux de ne pas pouvoir se balader dans une vidéo, surtout quand elle fait plus d'1h30 comme la conférence de Richard Stallman.
En plus du fait que c'est en Java, l'autre "inconvénient" de ITheora, c'est que l'habillage PHP n'est pas parfaitement intégré avec l'applet Java: l'habillage PHP propose des boutons lecture, arrêt, mais pas la barre de progression, et l'applet Java propose elle aussi les boutons de lecture, arrêt et également une barre de progression, bref les contrôles sont en double. Pas hyper gênant, mais pas très élégant non plus.
Flowplayer
Flowplayer est un visionneur de vidéos Flash libre. Vous avez toujours besoin d'un player Flash (je n'ai testé qu'avec le player Flash privateur d'Adobe, il faudrait tester avec Gnash pour voir si ça fonctionne). Flowplayer n'accepte pas les vidéos au format Ogg Theora, il faut d'abord les
convertir au format FLV. C'est un point ennuyeux, car cela signifie qu'il faut deux versions de chaque vidéo sur son site Web: une au format Ogg Theora pour ceux qui veulent télécharger, une au format FLV pour ceux qui veulent regarder en ligne. Là dessus, ITheora marque un point, car il utilise directement la vidéo en Ogg Theora.
Une fois converti en FLV, si la vidéo est de courte durée, on arrive assez rapidement à faire fonctionner Flowplayer. Par contre, dès qu'on attaque une vidéo de plus longue durée, ça ne fonctionne plus: comme expliqué sur
cette page, il faut un serveur de streaming. Ils proposent plusieurs solutions, assez compliquées puisqu'il faut mettre en place un vrai serveur de streaming.
J'ai donc cherché un peu et suis tombé sur un
module Apache permettant de streamer les FLV. Livré sans aucun Makefile, sans aucune documentation, j'ai bataillé pendant un moment pour compiler ce module. Une fois qu'il était compilé et installé, ça ne fonctionnait toujours pas. J'ai commencé à débugger le code, compris quelques problèmes du machin, corrigé ces problèmes, mais ça ne fonctionnait toujours pas (cela, il peut être intéressant de reprendre ce travail, et de packager proprement ce module, il peut certainement être utile à d'autres personnes).
Je me suis donc rabattu sur la solution
bidouille PHP proposée sur le site de Flowplayer. Et effectivement, en dix minutes, c'était fonctionnel. On peut seeker dans la vidéo sans soucis. Flowplayer est agréable à utiliser, l'interface est propre et soignée (bien plus que pour ITheora/Cortado).
Mais évidemment, deux inconvénients restent de taille: l'utilisation de Flash et l'obligation de convertir les vidéos au format FLV et donc de les avoir en double.
Conclusion
Au final, je n'ai donc toujours pas trouvé de solution qui me convenait totalement. Si j'arrive à résoudre le problème de seek avec les Ogg Theora et Cortado, peut-être que ce sera le bon choix. Cela étant, ça oblige aussi à avoir toutes les vidéos en Ogg Theora (ce qui n'est pas le cas aujourd'hui), et cela pose aussi des soucis: tout le monde, notamment les gens sous Microsoft Windows, n'a pas de lecteur capable de lire le Ogg Theora, et le Ogg Theora n'est
clairement pas un bon codec en terme de qualité d'image, même ça semble bouger de ce coté.
Une autre alternative serait de tester Flowplayer avec Gnash et de voir si ça fonctionne. Mais même si cela fonctionne, ce n'est pas vraiment satisfaisant de faire la promotion d'un format fermé comme Flash sur un site de promotion des Logiciels Libres.