16.3.09

M40 - David Tardiveau - Lundi 9 mars ...

M40 - David Tardiveau - Lundi 16 mars 2009
la vidéo le son dans Flash
Vidéo pour le Web c'est le rapport Poids/débit
Attention :les paramètres qui vont influencer
  • le nombre de plan dans une séquence va influencer l'encodage vidéo
  • les mouvements de caméra également
  • l'éclairage :  une séquence avec un mauvais éclairage va produire un fichier plus gros

tous ces paramètres vont détorier la vidéo à la compression car on est limiter en débit
 

- Scénario (notion de plan, de mouvement de caméra, et d'éclairage)  
- Tournage
- Montage
---------------
- Film---------------
- Numérisation (acquisition)
---------------
- montage
 ---------------
- Encodage
 
I) Encodage
c'est de compresser et de choisir un codec de compression compatible avec le lecteur final
Flash ne reconnaît que le FLV et H264
(on n'utilise pas la fonction importer de la vidéo dans Flash pour encoder)
Logiciels gratuit d'encodage : sur Mac "visualHub" sur PC "RIVA SUPER" compressor vendu avec Final Cut Pro
Adobe avec CS4  Adobe media encoder
autre logiciels conseillés le "sorenson sqeeze" http://www.sorensonmedia.com/et "on2flix" http://www.on2.com/
 
Pour diffuser de la vidéo sur internet :
  • en téléchargement tout formats de fichier .mov .avi .mpg on attend tout le chargement avant de lire la vidéo
  • Téléchargement progressif préchargement de la vidéo et on peut commencer à lire la vidéo je ne peux pas changer la tête de lecture
  •  En streaming le téléchargement lien entre un serveur et mon ordinateur  je peux changer la tête de lecture
 
Quick time Pro (est un mini-première) retouche un vrai couteau suisse de dernière minute
Touche I in entrée  -  touche O out  sortie
 
 
FLV c'est un codec sorensson
F4V c'est un codec  H264 à un meilleur rendu que du FLV mais actuellemnt il faut le dernier lecteur de Flash Adobe
Dans media encoder d'adobe : inserer la séquence et les dupliquer
Onglet autres :
Onglet  vidéo :  images/si beaucoup de mouvement choisir identique à la source
réglages du débit choisir VBR, 2passes il lit et encode en 2 passes c'est plus optimisé qu'en 1 passe
pour du online
Débit cible 0,5 et pas plus c'est déjà énorme
débit maximun 0.6 MBits/seconde soit 60 ko
Faire des tests des essais benchmark sur des ordinateurs à distance
choisir SkinOverAll avec tous les boutons possible
SkinAutoHide le contrôleur disparait si mon curseur
SkinBackground c'est la transparence pas en dessous de 0.6
Volume 1 => 100% et 0.5 à 50 % du volume
 Fichier/paramètres de publication/onglet HTML/Flash seulement autorisation du plein ecran
cocher détecter la version de flash
 
II) Intégration
fenêtre/composant/ flv play back
fenêtre//inspecteur de composant double cliquer source indiquer le nom du f4v (bug)
autoplay sur false
preview choisir la scène qui va s'afficher
 la skin c'est le contrôleur
 
 
III) Programmation
  • Placement dynamique
  • contrôle
  • Synchro
 
Pour retrouver les skins :
applications/program files/Flash/commun/configuration/flvplaybackskins/fla c'est f=dans se dossier que se trouvent les sources des skin
 
 
Code Flash :  

import fl.video.FLVPlayback;

var ecran:FLVPlayback = new FLVPlayback()
addChild(ecran)
ecran.setSize(480,272)
ecran.x =20
ecran.y =20
ecran.source ="mavideo.f4v"
//ecran.skin="SkinOverAll.swf"
ecran.autoPlay=true
ecran.autoRewind = true

 
-------------------------------------
2- Contrôle :
fichier videoControlee.fla
Donner un nom à l'occurence de la vidéo mise sur la scene
céer un texte dynamique affichage
créer un
 
Code Flash :  

ecran.autoPlay = false
btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireVideo);
btPause.addEventListener(MouseEvent.MOUSE_DOWN,lireEnPause);

function lireVideo(evt:MouseEvent)
{
 ecran.play ()
 }
function lireEnPause(evt:MouseEvent)
{
 ecran.pause ()
 }
-------------------------------------------

Code Flash :  

ecran.autoPlay = false
btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireVideo);
btPause.addEventListener(MouseEvent.MOUSE_DOWN,lireEnPause);
btRetour.addEventListener(MouseEvent.MOUSE_DOWN,RetourDebut);

function lireVideo(evt:MouseEvent)
{
 ecran.play ()
 }
function lireEnPause(evt:MouseEvent)
{
 ecran.pause ()
 }
function RetourDebut(evt:MouseEvent)
{
 ecran.seek (0) pour le retour vers le début
 }

-------------------------------------------

Code Flash :  
import fl.video.VideoEvent
ecran.autoPlay = false
btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireVideo);
btPause.addEventListener(MouseEvent.MOUSE_DOWN,lireEnPause);
btRetour.addEventListener(MouseEvent.MOUSE_DOWN,RetourDebut);

function lireVideo(evt:MouseEvent)
{
 ecran.play ()
 }
function lireEnPause(evt:MouseEvent)
{
 ecran.pause ()
 }
function RetourDebut(evt:MouseEvent)
{
 ecran.seek (0)
 }

 ecran.addEventListener(VideoEvent.PLAYHEAD_UPDATE,lectureEnCours)
 ecran.playheadUpdateInterval=100;
 function lectureEnCours(evt:Event){
  
  affichage.text=ecran.playheadTime.toString();
  }
------------------------------------

Code Flash :  
import fl.video.VideoEvent

ecran.autoPlay = false
btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireVideo);
btPause.addEventListener(MouseEvent.MOUSE_DOWN,videoEnPause);
btRetour.addEventListener(MouseEvent.MOUSE_DOWN,retourDebut);
function lireVideo (evt:MouseEvent) {
 ecran.play()
}
function videoEnPause (evt:MouseEvent) {
 ecran.pause()
}
function retourDebut (evt:MouseEvent) {
 ecran.seek(0)
}


ecran.addEventListener(VideoEvent.PLAYHEAD_UPDATE,lectureEnCours);
//ecran.playheadUpdateInterval = 100;

function lectureEnCours(evt:VideoEvent) {
 affichage.text = ecran.playheadTime.toString();
 jauge.scaleX = ecran.playheadTime/ecran.totalTime
}

jaugeClic.addEventListener(MouseEvent.MOUSE_DOWN,deplacerTete)

function deplacerTete (evt:MouseEvent) {
 var part = jaugeClic.mouseX/jaugeClic.width
 ecran.seek(ecran.totalTime*part)
}

 

--------------------------------------
Code Flash :  
import fl.video.MetadataEvent;
ecran.addASCuePoint(1.55,"hello");
ecran.addASCuePoint(3.1,"hein?");
ecran.addASCuePoint(4.7,"c'est moi");
ecran.addEventListener(MetadataEvent.CUE_POINT,afficher)
function  afficher(evt:MetadataEvent) {
 affichage.text =evt.info.name
}
 
--------------------------------------
Code Flash :  son1.fla

var adresseSon:URLRequest = new URLRequest ("happyTv.mp3");
var ecouteur:Sound = new Sound ()
var piste:SoundChannel;
ecouteur.load(adresseSon)

btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireSon)
btArret.addEventListener(MouseEvent.MOUSE_DOWN,arreterSon)

function lireSon(evt:MouseEvent) {
 piste = ecouteur.play()
}
function arreterSon(evt:MouseEvent) {
 piste.stop()
}


--------------------------------------
Code Flash :  son2.fla

var adresseSon:URLRequest = new URLRequest ("happyTv.mp3");
var ecouteur:Sound = new Sound ()
var piste:SoundChannel;
ecouteur.load(adresseSon)

btArret.mouseEnabled = false


btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireSon)
btArret.addEventListener(MouseEvent.MOUSE_DOWN,arreterSon)

function lireSon(evt:MouseEvent) {
 piste = ecouteur.play()
 btLecture.mouseEnabled = false
  btArret.mouseEnabled = true
}
function arreterSon(evt:MouseEvent) {
 piste.stop()
 btLecture.mouseEnabled = true
 btArret.mouseEnabled = false
}

--------------------------------------
Code Flash :  son2.fla

var adresseSon:URLRequest = new URLRequest ("happyTv.mp3");
var ecouteur:Sound = new Sound ()
var piste:SoundChannel;
ecouteur.load(adresseSon)
btLecture.buttonMode = true
btArret.buttonMode = true


btArret.mouseEnabled = false


btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireSon)
btArret.addEventListener(MouseEvent.MOUSE_DOWN,arreterSon)

function lireSon(evt:MouseEvent) {
 piste = ecouteur.play()
 btLecture.mouseEnabled = false
  btArret.mouseEnabled = true
}
function arreterSon(evt:MouseEvent) {
 piste.stop()
 btLecture.mouseEnabled = true
 btArret.mouseEnabled = false
}

--------------------------------------
Code Flash :  son2.fla
var adresseSon:URLRequest = new URLRequest ("happyTv.mp3");
var ecouteur:Sound = new Sound ()
var piste:SoundChannel;
ecouteur.load(adresseSon)
btLecture.buttonMode = true
btArret.buttonMode = true


btArret.mouseEnabled = false


btLecture.addEventListener(MouseEvent.MOUSE_DOWN,lireSon)
btArret.addEventListener(MouseEvent.MOUSE_DOWN,arreterSon)

function lireSon(evt:MouseEvent) {
 piste = ecouteur.play()
 piste.addEventListener(Event.SOUND_COMPLETE,sonFini)
 btLecture.mouseEnabled = false
  btArret.mouseEnabled = true
}
function arreterSon(evt:MouseEvent) {
 piste.stop()
 btLecture.mouseEnabled = true
 btArret.mouseEnabled = false
}
function sonFini(evt:Event) {
 btLecture.mouseEnabled = true
  btArret.mouseEnabled = false

 
}