Forums Développement Multimédia

Aller au contenu

Créer une image à partir d'un flv

PAO Flash

19 réponses à ce sujet

#1 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 28 May 2007 - 09:43 AM

Bonjour à tous,

Voilà g un petit problème. J'utilise RED5 pour capturer ma webcam et j'enregistre cette capture sur mon disque. Apres j'ai soit la possibilité de supprimer la vidéo soit de la sauvegarder. J'aimerais que lorsque je clic sur sauvegarder ça me génére une image de la video que je viens d'enregistrer.

#2 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 28 May 2007 - 09:44 AM

salut
tu veux une photo de la premiere image de la video ?

#3 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 28 May 2007 - 10:14 AM

oui par exemple

#4 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 28 May 2007 - 10:34 AM

et bien tu fais un seek(0) sur la video que tu viens d'enregistrer avec avec un bitmapdata.draw() tu créés ton image
voici un exemple de mon cru :
http://jeanphiblog.media-box.net/dotclear/...camera-snapshot

#5 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 28 May 2007 - 10:45 AM

je vais regarder ça cet aprem je te tiens au courant

#6 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 28 May 2007 - 13:36 PM

j'ai un petit problème je n'arrive pas à créer une image en 320x240.

CODE
var bitmap = new flash.display.BitmapData(320,240,true,0x000000);
this.createEmptyMovieClip("img",2);
img.attachBitmap(bitmap, 20, "auto", true);
img._x = 40;
img._y = 9.1;

save_btn.onRelease = function(){
    //code à écrire
    bitmap.draw(cam_video);
    
}


#7 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 28 May 2007 - 13:51 PM

ah c'est bon, j'ai fait comme ça !

CODE
save_btn.onRelease = function(){
    
    bitmap.draw(video_preview.seek(0));
    
}


Par contre ce que j'aimerais maintenant c'est enregistrer cette image sur le serveur linux qui contient mes videos.

#8 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 09:34 AM

Je n'y arrive pas ! Si je lance mon application depuis Flash le bitmap.draw(cam_video) se fait bien mais si j'exécute mon appli depuis une page php avec wamp j'ai l'impression que mon bitmap.draw ne se fait pas (je ne le vois pas alors que depuis Flash oui). Ensuite j'essaye d'envoyer un tableau avec tous les pixels de mon image. Avec Flash mon tableau est bien rempli avec les valeurs (verif grace au trace). Quand j'exécute avec PHP ce tableau est vide (que des 0) surement parce que mon bitmap.draw n'a pas marché.

CODE
var bitmap = new flash.display.BitmapData(160,120,true,0x000000);
this.createEmptyMovieClip("img",2);
img.attachBitmap(bitmap, 20, "auto", true);
img._x = 40;
img._y = 9.1;

save_btn.onRelease = function(){

    bitmap.draw(cam_video);


    lv = new LoadVars();
    lv.tab = new Array();
    
    for (i=0; i<120; i++) {
    for (j=0; j<160; j++) {
            lv.tab.push(bitmap.getPixel(j, i));
        }
    }
    //trace(lv.tab);
    lv.send("generejpg.php", "_blank", "POST");

}//Fin fonction save_btn


De plus je n'arrive pas à créer une image en 320x240. Si je mets des valeurs inférieur à 160x120 ça marche mais 320x240 non.

Aidez-moi j'en peu plus !


#9 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 31 May 2007 - 11:19 AM

salut
tu as changé 320x240 dans le PHP ?

#10 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 13:15 PM

Oui oui bien évidement ! Mais c pas mon plus gros problème ! J'ai l'impression que le bitmap.draw ne se fait pas quand j'exécute dans la page php. J'ai essayé avec tes sources c nikel mais avec mon code ça marche pas !

#11 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 13:43 PM

Je sais pas si ça pourra t'aider à m'aider mais j'ai réussi à récupérer mes infos de pixels dans php en modifiant

var bitmap = new flash.display.BitmapData(160,120);

Mais le problème c que le bitmap n'est pas transparent et que le bitmap.draw ne doit pas se faire parce que les valeurs dans mon tableau sont les mêmes (quand j'exécute dans php mais dans flash c nikel, c un truc de fou là je craque !) et ça me donne une image blanche.

Sinon quand je fais un trace de bitmap.draw dans flash ça me retourne 0 alors que dans php ça me retourne -5 !

#12 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 13:56 PM

Peux-tu m'expliquer la notion de profondeur de clip ?

#13 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 14:13 PM

G résolu mon problème en rajoutant la ligne cam_video.attachVideo(cam); au dessus de bitmap.draw.

Par contre comment faire pour cacher justement le bitmap.draw. Je ne veux pas que l'image soit visible par l'utilisateur.

#14 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 15:05 PM

Y a personne aujourd'hui ? Je n'arrive toujours pas à avoir une resolution de 320x240. Le problème vient de flash parce que en sortie de mon php g bien une image en 320x240. En fait l'image est composé de 4 images en 160x120 (ce qui veut dire que mon flash m'a créé une bitmap en 160x120). Est ce du à ma webcam cela m'etonnerait parce que ma video est bien en 320x240 !

#15 Dam2a

    Ceinture Orange

  • Members
  • PipPipPip
  • 35 messages

Posté 31 May 2007 - 16:24 PM

Jean philippe j'ai essayé de modifier les valeurs dans ton fla 160 et 120 par 320 et 240 mais ça ne marche pas non plus. Le snapshot generé avec flash est en 160x120.

#16 loloviolo

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 16 October 2007 - 01:51 AM

Hello,


J'ai le meme probleme, la fonction bitmapdata.draw() ne genere que du 160x120


UP!

Merci

#17 loloviolo

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 16 October 2007 - 02:21 AM

Bon j'ai trouve alors je viens partager l'info.


Il faut inclure la video dans un movieclip et faire le draw sur le movie clip.


bitmapData.draw(le movieclip contenant la video)


ainsi on peut generer des image de plus de 160x120

#18 contact

    Ceinture Jaune

  • Members
  • PipPip
  • 19 messages

Posté 29 October 2007 - 17:18 PM

salut toujours le meme probleme, mais avec un flux netstream, un trace de theVideo_mc contenant ma video me renvoie -5 en ligne, 0 en local
0 ca marche
-5 pas possible de faire un draw, j ai essayé une methode differente , mais rien n'y fait
au secours, à l'aide icon_eek.gif

#19 laipreu_chevalier

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 353 messages

Posté 08 December 2008 - 11:50 AM

Bien le bonjour, je me permet de déterrer ce topic, car fort intéressant je m'y suis penché et j'ai un petit problème!
J'ai modifier le code pour que je puisse récupérer une image d'une vidéo flv dans le but de créer une webTV.

En ligne le snapshot marche parfaitement pour des vidéos qui sont sur le même ftp que la webTV.
Mais dès que je veux snapshoter une vidéo qui ce trouve sur un autre ftp (qui m'appartient de même) et bien cela ne marche pas sad.gif
Ya t-il des droits? Ou comment faire? Car le snapshot est réalisé sur un clip, donc je ne vois pas pourquoi ça ne fonctionne pas dans ce cas...

Merci à vous wink.gif
Besoin d'un artisan ? Trouvez votre bonheur ici : http://www.touslesartisans.com

#20 rigormortis

    Ceinture Orange

  • Members
  • PipPipPip
  • 43 messages

Posté 12 January 2009 - 11:14 AM

Citation (vectanim @ Oct 29 2007, 04:18 PM) Voir le message
salut toujours le meme probleme, mais avec un flux netstream, un trace de theVideo_mc contenant ma video me renvoie -5 en ligne, 0 en local
0 ca marche
-5 pas possible de faire un draw, j ai essayé une methode differente , mais rien n'y fait
au secours, à l'aide icon_eek.gif

Normalement il faut que tu assignes les droits nécessaires par un fichier crossdomain.xml sur le serveur qui contient ta vidéo.
J'ai eu pas mal de problème avec ça et parfois ça ne marche pas même avec les bon droits.
Une astuce consiste à passer en variable la position de lecture de ta vidéo à un script php qui appel ffmpeg en ligne de commande et qui lui va te créer ta vignette. C'est un peu bourrin mais ça marche nickel à toute les résolutions icon_biggrin.gif exemple de script php sur un dédié avec ffmpeg

Action Script


function returnDuree($duree){
$duree=round($duree);
if(round($duree)<60){
$aff="00:00:".round($duree);
return $aff;
}else{
$nbMin=round($duree/60);
if($nbMin*60>$duree){
$nbMin=$nbMin-1;
}
if($nbMin<10){
$affMin="0".$nbMin;
}else{
$affMin=$nbMin;
}
$nbSec=round($duree-($nbMin*60));
if($nbSec<10){
$affSec="0".($duree-($nbMin*60));
}else{
$affSec=$duree-(nbMin*60);
}

$aff="00:".$affMin.":".$affSec;
return $aff;
}
}
$pos_video=$_POST['pos_video'];
if($pos_video==""){
$pos_video="00:00:06";
}else{
$pos_video=returnDuree($pos_video);
}
$ffmpeg_cli2 = "ffmpeg -i emplacment_serveur/mes_videos/".$_POST['fichier']." -f mjpeg -ss ".$pos_video." -vframes 1 -s 280x210 emplacment_serveur/mes_vignettes/".$vignette;
passthru($ffmpeg_cli2,$res2);




1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP