Vidéo ActionScript
Gestion de la vidéo en ActionScript
La manière la plus simple d'exploiter une vidéo avec Flash est de faire appel à son assistant d'importation. Flash dispose en effet d'un outil complet pour sélectionner une vidéo, la compresser et lui adjoindre un habillage, le tout en quelques clics et sans connaissance aucune. Ouvrez l'assistant en choisissant l'option Fichier > Importer > Importer de la vidéo. Si besoin, suivez l'explication de JDN Développeurs.
Encoder une vidéo en FLV
Notez que Flash n'accepte que des vidéos au format FLV.
◊ Si vous avez une CreativeSuite complète (CSx) vous pouvez utiliser l'encodeur fournit. Démarrer > Programmes > Adobe Design Premium CSx > Adobe Flash CSx Video encoder :
1. Choisir le fichier source (une vidéo)
2. Cliquer sur le bouton "activer la file d'attente". Cela créer un double au format FLV à côté de votre vidéo.
◊ Sinon, vous devez utiliser un encoder comme le gratuit Riva FLV Encoder.
Incorporer une vidéo FLV dans un fichier FLA
Dans un nouveau fla, faire Fichier > Importer > Importer de la vidéo
Après avoir sélectionné votre FLV, choisir comment vous voulez déployé votre vidéo:
◊ Option 1 - "Téléchargement progressif à partir d'un serveur Web" :
C'est la cas le plus fréquent. Permet de rajouter un barre de lecture (un habillage - l'enveloppe de votre vidéo).
◊ Options 2 et 3 - "Diffusion en continu" (FVSS / Flash Media Server) :
Pour le streaming. Necessite un serveur de Streaming.
◊ Option 4 - "En tant que vidéo pour périférique portable" :
Nécessite le lecteur pour portable "Flash Lite".
◊ Option 5 - "Incorporer la vidéo" :
La vidéo est intégrée dans le scénario de flash. Comme si on avait déroulée la pélicule du film. On a le choix d'une "vidéo intégrée" directement sur la séquence (pas génial) ou dans un graphique (pour travailler les images) ou, enfin, dans un clip (idéal). C'est une technique idéal si l'on veut réaliser un sous titrage.
Les classes NetConnection, NetStream et Video
ActionScript comporte des classes permettant de manipuler des données à l'aide de méthodes et de propriétés pour gérer la connexion puis le chargement et le contrôle de la vidéo, et enfin, la gestion de la fonction d'affichage et de de lecture de fichiers Flash Video (FLV).
-> Attention, les seules vidéos acceptées par Flash sont au format FLV (voir Riva FLV Encoder).
Chargement dynamique d'une vidéo (Streaming AS3)
1 vidéo et 3 boutons sur la scène
Clique droit de souris sur un espace vide de votre bibliothèque, et dans le menu contextuel, choisissez : Nouvelle Vidéo... Donnez-lui n'importe quel nom. Glissez, ensuite, cette vidéo sur votre scène pour en créer une occurrence. Donnez à votre occurrence, les propriétés de largeur : 320px et de hauteur : 240px
// Connexion
var connexion:NetConnection = new NetConnection();
connexion.connect(null);
// Chargement
var flux_video:NetStream = new NetStream(connexion);
var mc_video:Video = new Video();
mc_video.attachNetStream(flux_video);
flux_video.play("video.flv");
addChild(mc_video);
// --------------------------------------------------------
// les différents boutons (facultatif) :
// Bouton Pause
function pose(evt:Event):void {
flux_video.pause();
}
btn_pause.addEventListener(MouseEvent.CLICK,pose);
// Bouton Lecture
function lecture(evt:Event):void {
flux_video.resume();
}
btn_lecture.addEventListener(MouseEvent.CLICK,lecture);
// Bouton Arret
function arret(evt:Event):void {
//flux_video.seek(0); // positione la vidéo à l'instant 0
flux_video.seek(0);
flux_video.pause();
}
btn_arret.addEventListener(MouseEvent.CLICK,arret);
1 vidéo et 3 boutons sur la scène
Clique droit de souris sur un espace vide de votre bibliothèque, et dans le menu contextuel, choisissez : Nouvelle Vidéo... Donnez-lui n'importe quel nom. Glissez, ensuite, cette vidéo sur votre scène pour en créer une occurrence. Donnez à votre occurrence, les propriétés de largeur : 320px et de hauteur : 240px
// Connexion
var connexion:NetConnection = new NetConnection();
connexion.connect(null);
// Chargement
var flux_video:NetStream = new NetStream(connexion);
var mc_video:Video = new Video();
mc_video.attachNetStream(flux_video);
flux_video.play("video.flv");
addChild(mc_video);
// --------------------------------------------------------
// les différents boutons (facultatif) :
// Bouton Pause
function pose(evt:Event):void {
flux_video.pause();
}
btn_pause.addEventListener(MouseEvent.CLICK,pose);
// Bouton Lecture
function lecture(evt:Event):void {
flux_video.resume();
}
btn_lecture.addEventListener(MouseEvent.CLICK,lecture);
// Bouton Arret
function arret(evt:Event):void {
//flux_video.seek(0); // positione la vidéo à l'instant 0
flux_video.seek(0);
flux_video.pause();
}
btn_arret.addEventListener(MouseEvent.CLICK,arret);
Explication: La classe NetConnection permet d'ouvrir une connexion. On charge et on contrôle la vidéo avec la classe NetStream. La méthode attachVideo() - de la classe Video (qui ne s'occupe que de l'affichage du film) - fait le lien entre l'objet vidéo sur la scène et l'objet NetStream. La méthode seek() permet de se positionner à un endroit de la vidéo en transmettant l'instant en secondes comme argument.
Note faire un "flux_video.close();" pour couper la connexion.
Note: La classe Video permet aussi l'affichage de la vidéo d'une webcam en continu en direct sur la scène. Vous capturez la vidéo en utilisant Camera.get().
Convertir swf en avi
-> "swf2avi converter" visible et téléchargable (gratuitement) sur avi-swf-convert.com
-> "swf2avi converter" visible et téléchargable (gratuitement) sur avi-swf-convert.com
Si on veut une animation pour une projection TV
Le format TV PAL (europe,...) est de 720 x 576 pixels avec une cadence de 25 images pas secondes.
Le format TV NTSC (usa,japon,...) est de 720 x 480 pixels avec une cadence de 29.97 images pas secondes.
Pour éviter des problèmes sous flash:
- Jamais de blanc 100 % pour les textes flash et les éléments animés : ça a tendance à scintiller - pas de problème pour les fonds.
- On evite les corps de textes flash en dessous de 14 - ça scintille.
- On règle les ips de flash à 25 ips (ou plus si problème de fluidité) pour le PAL.
- Régler la taille de la scène flash à 720 * 576 pixels. Attention: prévoire 50 pixels de marge de sécurité dans laquelle ne pas mettre d'info importante, selon les téléviseur l'image finale sera plus ou moins rognée.
Le format TV PAL (europe,...) est de 720 x 576 pixels avec une cadence de 25 images pas secondes.
Le format TV NTSC (usa,japon,...) est de 720 x 480 pixels avec une cadence de 29.97 images pas secondes.
Pour éviter des problèmes sous flash:
- Jamais de blanc 100 % pour les textes flash et les éléments animés : ça a tendance à scintiller - pas de problème pour les fonds.
- On evite les corps de textes flash en dessous de 14 - ça scintille.
- On règle les ips de flash à 25 ips (ou plus si problème de fluidité) pour le PAL.
- Régler la taille de la scène flash à 720 * 576 pixels. Attention: prévoire 50 pixels de marge de sécurité dans laquelle ne pas mettre d'info importante, selon les téléviseur l'image finale sera plus ou moins rognée.