geek space web solutions

Qu'est-ce que StageVideo ?

Lundi, 27 Février 2012 00:00
flash stage vidéo
Depuis quelques années la vidéo est une tendance forte sur le Web, cela a été possible grâce au décodage du h264 et par la prise en charge du Full-screen introduite en 2007 avec Flash Player 9. Le développement des technologies mobiles a fait apparaître de nouvelles problématiques et pour améliorer les performances en matière de vidéo, Adobe propose à partir de Flash Player 10.2 StageVideo


(Cet article est inspiré de la documentation officielle Adobe)


Pourquoi un nouveau moteur de rendu Vidéo ?

La méthode traditionnelle pour afficher une vidéo avec Flash Player est de l'afficher comme un object graphique classique (DisplayObject). Ce qui permet une grande manipulation, on peut par exemple afficher la vidéo sur toutes les faces d'un cube... Pour rendre cela possible, Flash doit faire une quantité importante de traitement pour chaque image de la vidéo. Flash sera obligé de réduire le framerate si le CPU de la machine n'arrive pas à suivre...

Pour minimiser l'impact d'un rendu vidéo en DisplayObject, Adobe propose un nouveau système de rendu appelé StageVideo. Cette approche tire parti du hardware vidéo sous-jacent afin d'alléger en calcul le CPU. Le résultat est un meilleur framerate et un usage de la mémoire moins important sur les machines moins puissantes. Avec ce mode de rendu, l'objet StageVideo n'est pas contenu dans la Stage habituelle mais est placé derrière !


Limitations :

- On peut appliquer au StageVideo uniquement des rotations à des angles multiples de 90°  (0° 90° 180° 270°).
- Un StageVideo ne supporte aucune transformation de type colorTransform, 3D transformations ou Matriciel.
- Les propriétés suivantes n'existent pas sur un StageVideo : alpha channel, blendMode, filter, mask, or scale9Grid. 
- La Video data ne peut être copié en BitmapData (fonction draw() non disponible)
- La vidéo ne peut être "bitmap-cached".
- La StageVideo ne peut être utilisée qu'avec des vidéos provenant d'un objet NetStream (La vidéo ne doit pas être embedded).
- En fonction de la machine de l'utilisateur, certaines couleurs peuvent être substituées.
- En fonction de la machine de l'utilisateur, le nombre de vidéos pouvant être lues est limité.
- Pour assurer la compatibilité de Flash Player sur différentes plateformes le wmode doit être "direct" (par exemple Google TV ne supporte pas le wmode="transparent" ).


wmode="direct"

Le wmode="direct" est très important. Il permet au Flash Player de mobiliser les ressources GPU en utilisant Direct3D sur Windows et OpenGL sur Mac OS et Linux.
Dans ce mode, il n'est pas possible deplacer des éléments HTML au-dessus du Flash !


StageVideo API

Méthode d’utilisation d’un objet StageVideo pour lire une vidéo :

1. Il faut d'abord écouter l'événement StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY pour savoir quand l’objet vectoriel Stage.stageVideos a changé.
stage.addEventListener(StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY, onStageVideoState);
private function onStageVideoState(event:StageVideoAvailabilityEvent):void { if (event.availability == StageVideoAvailability.AVAILABLE) { // Au moins un StageVideo est disponible dans le Vector stageVideos }
if (event.availability == StageVideoAvailability.UNAVAILABLE) { // Le Vector stageVideos est vide // Utiliser l'objet Video traditionnel... } }

2. Utiliser l’objet vectoriel Stage.stageVideos à l’intérieur du gestionnaire d’événement pour accéder à un objet StageVideo
        var v:Vector.<StageVideo> = stage.stageVideos;
var sv:StageVideo;
if ( v.length >= 1 ) {
sv = v[0];
}

4. Ecouter l’événement StageVideoEvent.RENDER_STATE sur l’objet StageVideo afin de déterminer l’état de lecture de la vidéo. La réception de cet événement indique également que les propriétés width et height de la vidéo ont été initialisées ou modifiées
sv = stage.stageVideos[0];
sv.addEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);
private function stageVideoStateChange(event:StageVideoEvent):void { trace("StageVideoEvent received"); trace("Render State : " + event.status); }

5. Associez-lui un objet NetStream à l’aide de StageVideo.attachNetStream() et lire la vidéo avec NetStream.play()
sv.attachNetStream(ns);
ns.play("video_filename.flv");


 

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Sections

Éditeur de fichier XML en ligne


"XML Manager" est un éditeur sécurisé permettant d'administrer en ligne un fichier XML.
Il fournit des fonctions avancées de recadrage et de redimensionnement des images...

Sondages

Pensez-vous que le HTML5 puisse complètement remplacer Flash ?
 
Seriez-vous intéressé par un éditeur d'XML en ligne ?
 

Paypal

paypal

Code du plugin Joomla AutoSEO 1.2 par www.geek-space.fr