Vidéo FLV en PHP Streaming avec le JW FLV Player de Jeroen Wijering
Mise à jour /Updated - 14 octobre 2008
Traduire/Translate : English - Deutsch (by Google)
Pour visualiser cette vidéo, vous devez activer Javascript et avoir installé la dernière version Adobe Flash Player.
Téléchargez gratuitement Flash Player maintenant.
Sources - version 1.35 - Mise à jour/Updated - 2 mai 2008
Exemples sans video - Sample applications without video file (238 ko) - Mise à jour/Updated - 14 Octobre 2008
Exemples avec videos - Sample applications with video files (57 774 ko) - FTP - Mise à jour - 14 Octobre 2008
Autre exemple de vidéo avec sous-titres
Demo 2 : Cliquez-ici pour un autre exemple de vidéo en PHP Streaming avec sous-titres
Elephants dream
Introduction
Avec le format vidéo Flash flv, il existait deux modes : le mode progressif et le mode streaming.
L'inconvénient du mode progressif est qu'il faut attendre le chargement complet de la vidéo si on veut se positionner à un endroit précis dans la vidéo.
L'inconvénient du mode streaming est qu'il faut utiliser un serveur spécialisé (et donc cher) tel que Flash Media Server par exemple.
Depuis la fin 2005, il existe un 3ème mode : le PHP Streaming. Le grand intérêt du PHP Streaming est de se positionner à n'importe quel endroit dans une vidéo. Et il suffit d'avoir un serveur PHP "tout simple".
Pour une introduction sur le PHP Streaming, consultez la FAQ (in English).
Dans un précédent article, nous utilisions le FLVplayback pour visualiser des vidéos en PHP Streaming.
Mais, il existe des bugs bloquants avec le player 9.
Dans certains cas, le FLVPlayback avec le PHP Streaming casse les navigateurs (avec Internet Explorer ou FireFox) avec le player 9.
Nous avions donc besoin d'un autre player pour le PHP Streaming.
Notre choix s'est porté sur le Flash Video Player de Jeroen Wijering.
JW FLV Player de Jeroen Wijering
Le JW FLV Player de Jeroen Wijering est un lecteur de vidéo dont les sources sont disponibles.
Le lecteur est disponible sous licence Creative Commons License
Il peut-être utilisé et modifié pour des applications non-commerciales.
Pour un usage commercial, le prix d'une licence est de 20 Euros.
Pour des informations supplémentaires sur les licences, consulter la page sur les licences sur le site de Jeroen Wijering.
PHP Streaming avec le JW FLV Player
En standard, le lecteur Flash Video Player a une option pour visualiser des vidéos en PHP streaming (Jeroen utilise le terme Http Streaming).
Il suffit de positionner une variable streamscript avec un script PHP et d'ajouter des metadatas (avec par exemple, le FLV MetaData Injector de Burak Kalayci : http://www.buraks.com/flvmdi/).
Malheureusement, cette option 'Http streaming' a de nombreux bugs.
Par exemple, si on effectue un saut dans la vidéo et lorsque le player arrive en fin de vidéo, le player revient à la position du dernier saut (et pas au début de la vidéo).
Ayant une bonne expérience du PHP Streaming (et des nombreux problèmes rencontrés avec le FLVPlayback), nous avons décidé de créer une version spéciale pour le PHP Streaming avec des fonctions supplémentaires :
- affichage de la première image de la vidéo au démarrage si on est en mode pause (autostart = false),
- en mode pause, possibilité de se positionner à n'importe quel endroit dans la vidéo avec affichage de l'image
- utilisation de la playlist pour effectuer un chapitrage de la vidéo.
Comment ajouter une vidéo en PHP Streaming avec le FLash Video Player
Voici la marche à suivre :
- Encoder votre vidéo
- TRÈS IMPORTANT
Injecter les metadata. Pour ceci, utiliser le produit gratuit FLV MetaData Injector de Burak Kalayci - Uploader votre vidéo sur votre serveur PHP
- Uploader les 4 fichiers : phpsflvplayer.swf, flvprovider.php, playerProductInstall.swf et swfobject.js
Ces fichiers sont disponibles dans les exemples (répertoire scripts) - Ajouter dans le fichier HTML le code suivant (Mise à jour octobre 2008 pour SWFObject 2.1)
(les scripts dont swfobject.js dans la partie head puis un div flashcontent dans la partie body) :<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var attributes = {};
var params = {};
// for fullscreen
params.allowfullscreen = "true";
var flashvars = {};
// the video file or the playlist file
flashvars.file = "myvideo.flv";
// the PHP script (1.5 is a recommended value for PHP Streaming for bufferlength)
flashvars.streamscript = "flvprovider.php";
flashvars.bufferlength = "1.5";
// width and height of the player (h is height of the video + 20 for controlbar)
// required for IE7
flashvars.width = "320";
flashvars.height = "260";
// width and height of the video
flashvars.displaywidth = "320";
flashvars.displayheight = "240";
flashvars.autostart = "true";
flashvars.showdigits = "true";
// for fullscreen
flashvars.showfsbutton = "true";
// 9 for Flash Player 9 (for ON2 Codec and FullScreen)
swfobject.embedSWF("phpsflvplayer.swf", "flashcontent", "320", "260", "9.0.0", "playerProductInstall.swf", flashvars, params, attributes);
</script>
</head>
<body>
<div id="flashcontent">
</div>
...
</body>
- Uploader le fichier HTML.
- C'est fini. Vous pouvez tester votre vidéo en PHP Streaming avec votre navigateur.
La vidéo de l'exemple : Rouler à l'huile
La vidéo est une vidéo en Creative Commons license: Lipopropulsion de Radhanath Gagnon, Mathieu Poulin, Raphael Lorand et David Chabot.
Vous pouvez la télécharger en différents formats ici : http://www.archive.org/details/collectifLipopropulsion
C'est une vidéo de 7:32 minutes. Elle a été encodée avec l'encoder Flix Pro d'ON2 à 420K avec les paramètres suivants :
- width="320", height="240", maximum-bitrate-value="372", framerate="15.00", keyframe-interval="30" en "2 pass"
- audio samplingrate="22050" bitrate="48" flvaudioformat="mp3" stereo="TRUE"
FAQ
Consulter la FAQ (in English).
Version et release
version 1.35r2 du 14 octobre 2008
- Utilisation de SWFObject 2.1 pour les démonstrations
version 1.35 du 2 mai 2008
- Portage sur la version 3.16 du JW FLV Player
version 1.32 du 17 novembre 2007
- corrections pour le cas : une vidéos avec playlist et différents chapitres
version 1.31 du 10 novembre 2007
- corrections mineures + nouveaux exemples
version 1.3 du 14 octobre 2007
- Portage sur la version 3.12 du JW FLV Player
version 1.2 du 2 juin 2007
- Changement sur hauteur du texte dans playlist pour pourvoir mettre des titres sur plusieurs lignes
Exemple : <title><![CDATA[La voiture qui fonctionne <br/>à l'huile à patate.]]></title>
version 1.1 du 27 mai 2007
- Correction sur démarrage par un chapître sur playlist
- correction sur la position des sous-titres en fullscreen
version 1.0 du 17 mai 2007
Cette version utilise la version 3.8 du Flash Video Player.
Les sources sont livrées. Les lignes modifiées sont préfixées par PhilFlash.
Les modifications importantes sont dans le fichier com/jeroenwijering/players/FLVModel.as