Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 >

mardi 6 février 2007

Simba en action

I - MOTIVATIONS

Comme lundi c'était mon anniversaire, je ne travaillais pas donc j'ai décidé de faire un petit film sur Simba, mon gros chat d'amour! Seulement je voulais faire à partir des films issus de mon appareil numérique en. Je me suis donc compliqué la tâche, histoire de me remplir la journée comme il faut. J'ai donc décidé de tout faire en MinG.

Je me suis surtout inspiré de ce billet http://www.ioncannon.net/php/110/using-flash-video-metadata-to-display-annotations/

II - CODE PHP et FICHIER XML

II.a) le code php

Je me suis pour celà inspiré du code fourni en faisant pour moi dans un fichier flahsplayer.php

<?php
function createImage($img)
{
  $shape = new SWFShape();
  $shape->setRightFill($shape->addFill(new SWFBitmap(fopen($img, "rb"))));
  $shape->drawLine(16,0);
  $shape->drawLine(0,16);
  $shape->drawLine(-16,0);
  $shape->drawLine(0,-16);
  return $shape;
}

function createButton($movie, $name, $loc, $script)
{
  $button = new SWFButton();
  $button->addShape(createImage("control_" . $name . ".png"), SWFBUTTON_UP);
  $button->addShape(createImage("control_" . $name . "_blue.png"), SWFBUTTON_DOWN | SWFBUTTON_HIT | SWFBUTTON_OVER);
  $button->addAction(new SWFAction($script), SWFBUTTON_HIT);
  $item=$movie->add($button);
  $item->moveto($loc,248);
}

Ming_setScale(20.0000000);
ming_useswfversion(7);

$movie = new SWFMovie(7);
$movie->setDimension(320,270); // width x height
$movie->setBackground(0,0,0);
$movie->setRate(8);

createButton($movie, "start", 10, "_root.videoStream.seek(0);");
createButton($movie, "pause", 40, "_root.videoStream.pause(true);");
createButton($movie, "play", 70, "_root.videoStream.pause(false);");

$strAction = "
this.createTextField('video_txt', 999, 0, 0, 100, 100);
video_txt.autoSize = 'left';
video_txt.multiline = true;
video_txt.textColor = 0xeeeeee;

stop();
nc=new NetConnection();
nc.connect(null);
videoStream=new NetStream(nc);
videoStreamItem.attachVideo(videoStream);
videoStream.setBufferTime(10);
videoStream.play('http://www.davidgis.fr/download/swf/simbafilm.flv');
videoStream.pause();

videoStream.onCuePoint = function(infoObject)
{
  video_txt.text = '' + infoObject.name + '\n';
  if( infoObject.parameters != undefined )
  {
    video_txt.text += ' ' + infoObject.parameters['mydata'] + '\n';
  }
  else
  {
    video_txt.text = ' \n';;
  }
};
";

$stream = new SWFVideoStream();
$stream->setDimension(320, 240);
$item=$movie->add($stream);
$item->setName("videoStreamItem");
$movie->add(new SWFAction($strAction));

$movie->nextFrame();//video_txt.text += 'Info: undef\n';

$movie->save("simbafilm.swf");
?>
II.b) le code XML

Ici j'ai adapté le code à mon usage personnel. J'ai donc créé un fichier tags.xml dont le contenu est

<tags>
    <metatag event="onCuePoint" overwrite="true">
        <name>SIMBA DANS TOUTE SA SPLENDEUR</name>
        <timestamp>1000</timestamp>
        <parameters>
            <mydata>TOUJOURS PRET A JOUER</mydata>
        </parameters>
        <type>event</type>
    </metatag>
    <metatag event="onCuePoint" overwrite="true">
        <name> </name>
        <timestamp>4000</timestamp>
        <parameters>
            <mydata>..UN PETIT RIEN L'AMUSE...</mydata>
        </parameters>
        <type>event</type>
    </metatag>
    <metatag event="onCuePoint" overwrite="true">
        <name>MAIS OUI, MAIS OUI...!</name>
        <timestamp>10000</timestamp>
        <parameters>
            <mydata>FELIN REDOUTABLE, SPLENDIDE</mydata>
        </parameters>
        <type>event</type>
    </metatag>
    <metatag event="onCuePoint" overwrite="true">
        <name>Simba</name>
        <timestamp>12000</timestamp>
        <parameters>
            <mydata>JEUNE, BEAU, VIF...</mydata>
        </parameters>
        <type>event</type>
    </metatag>
    <metatag event="onCuePoint" overwrite="true">
        <name> </name>
        <timestamp>14000</timestamp>
        <parameters>
            <mydata>ADMIREZ LA RAPIDITE ET LA PRECISION DU FELIN</mydata>
        </parameters>
        <type>event</type>
    </metatag>
II.c) Ajout des boutons

Comme sur le billet de l'auteur pour avoir mes boutons, j'ai téléchargé les images

wget http://www.famfamfam.com/lab/icons/silk/icons/control_pause.png
wget http://www.famfamfam.com/lab/icons/silk/icons/control_pause_blue.png
wget http://www.famfamfam.com/lab/icons/silk/icons/control_start.png
wget http://www.famfamfam.com/lab/icons/silk/icons/control_start_blue.png
wget http://www.famfamfam.com/lab/icons/silk/icons/control_play.png
wget http://www.famfamfam.com/lab/icons/silk/icons/control_play_blue.png

III - Conversion du fichier .MOV en .FLV

III.a) Commandes et souci avec ffmpeg

Normalement les deux lignes à saisir pour la conversion

mencoder -mc 0 -noskip -oac pcm -ovc lavc -ffourcc DX50  -vop scale=320:240 -o simba.avi pict0943.mov
ffmpeg -i simba.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv simbafilm.flv
Or pour avoir le son dans le fichier flv, il faut que ffmpeg ait été compilé avec l'option --enable-mp3lame. La première commande ne pose aucun problème pour le son!

Ce qui n'était pas le cas pour moi! Donc je suis allé sur http://doc.ubuntu-fr.org/formats_non-libres#activer_le_support_du_mp3_et_de_l_amr_dans_ffmpeg. J'ai donc adapté mon /etc/apt/source.list pour avoir le dépôt multiverse comme il faut et ensuite j'ai fait

cd /usr/local/src
apt-get install dpkg-dev libimlib2-dev texi2html liblame-dev libfaad2-dev libmp4v2-dev libfaac-dev \
libxvidcore4-dev debhelper libogg-dev libvorbis-dev liba52-dev libdts-dev libsdl1.2debian-all \
libraw1394-dev libdc1394-13-dev libtheora-dev libgsm1-dev
wget http://blogger.rukker.org/dl/ffmpeg_enable_amr.patch.bz2
apt-get source ffmpeg
cd ffmpeg-0.cvs20050918 <----- le nom de répertoire est différent pour moi
bzcat ../ffmpeg_enable_amr.patch.bz2 | sudo patch -p1
DEB_BUILD_OPTIONS=”risky” sudo dpkg-buildpackage
cd ..
dpkg -i ffmpeg_0.cvs20060823-5ubuntu1_i386.deb

Et la nouvelle installation de ffmepg m'a permis de pouvoir vérifier que j'avais bien le support --enable-mp3lame

IV - AJOUT DES METATAGS DU FICHIER XML AU FICHIER FLV

IV.a) Pré-requis

J'avais déjà ruby d'installé donc je pouvais passer à la suite

IV.b) Compilation de FFVTOOL2

flvtool2 est l'utilitaire qui va me permettre d'ajouter de combiner mon fichier xml à mon fichier flv. J'ai donc commencé à l'installer

wget http://rubyforge.org/frs/download.php/9225/flvtool2_1.0.5_rc6.tgz
tar xvzf flvtool2_1.0.5_rc6.tgz

J'ai ensuite suivi les instructions fournis dans le fichier flvtool2_1.0.5_rc6/README

ruby setup.rb config
ruby setup.rb setup
sudo ruby setup.rb install
IV.c) Utilisation de flvtool2

Il m'a suffit de faire

flvtool2 -AUtP tags.xml simbafilm.flv

dimanche 4 février 2007

Mon anniversaire lundi - 29 ans déjà, quand votre chérie vous fait une belle surprise

Et oui que le temps passe vite! 29 ans déjà! Samedi avec Cat', j'avais prévu de fêter mon anniversaire en sortant au cinéma ou un truc comme ça! Elle aurait préféré qu'on reste à la maison pour fêter ça! Elle m'a tellement touché que Finalement je lui ai dit oui! Donc samedi aprem' on va faire les courses! En début de soirée, y'a des gens qui sonnent en bas de notre immeuble! «Bahl! Ca doit encore être quelqu'un qui est pas de l'immeuble et qui cherche à rentrer!» Je me suis dit. Cat' appuie sur l'interrupteur pour ouvrir la porte d'entréee. Quelques secondes plus tard, je m'appête à aller fumer une cigarrette quand quelqu'un frappe à la porte. Cat' ouvre! Purée c'est Dalox et Mimie qui débarque ....??? Purée elle a voulu me faire a surprise de les inviter pour mon anniversaire...Quel belle surprise ! Alors là je suis tombé des nues. Mes plus proches amis ici


Dalox et Mimie qui sont venus en invités surprise à mon anniversaire

Photos de groupe...

Nous avons passés une agréable soirée! Je n'avais pas fêté un tel anniversaire dans une telle ambiance depuis très longtemps. En plus celà faisait au moins deux moins que nous ne les avions pas vu!

samedi 3 février 2007

Le site http://lemotdujour.over-blog.com

Jeudi soir, j'ai matté ce site. Je m'étais dit que j'en ferais un billet. J'ai appris de ces mots! Mon cerveau s'est mis en ébullition! Purée, j'en ai appris des termes insoupçonnés de notre belle langue. Résultat, je me suis que je vais me faire une phrase que je noterais et que je ressortirais à l'occasion.

Vendredi matin, j'ai eu un RDV avec le boss...Quand il est parti, je lui ai sorti cette phrase:

Il appert que la deutergie des drogues douces puisse résulter à des philippiques envers autri.

Il a relu cette phrase en 3 fois pour essayer de bien comprendre. Héhé! Genre de phrase qu'il faut sortir pour montrer sa science! Celle-là aussi elle ne doit pas être mauvaise placé dans une discussion à l'orale:

J'ai ouïe dire qu'il appert que la deutergie des soins par les drogues douces puisse résulter à des philippiques envers autri. Mais de là, à succiter des interrogations, je m'en vais quérir un ami et vous laisser vaquer à vos occupations!

...Ca me rappelle la fois où j'ai matté le film «Liaisons dangeureuses» avec un pote! Purée à l'époque, on avait loué la cassette! On s'est tapé/retapé plusieurs passages (pas ceux que vous croyez...) où les termes usités étaient tellement forts qu'on a cogité au moins une bonne demi-heure après pour essayer de comprendre les phrases. Un petit regret! On ne parle plus comme celà de nos jours. Mais bon on s'instruit tout le temps!

http://lemotdujour.over-blog.com est le genre de sites que je en saurais que vous conseiller.

Cuisses de canard confit à la sauce soja

Hier soir avec Cat', nous avons essayé une variante des cuisses de canard confit. Vous savez les belles cuisses qui sont vendus dans de belles grosses boites vertes. J'ai dit à Catherine de gouter et que ce n'est qu'àprès que je lui dirais ce que j'ai mis dedans!

Ben rien de compliqué:

  • de la sauce de soja;
  • une pincée de gingembre;
  • deux morçeaux de sucre;
  • un oignon.

On s'est régalé ! Sinon on peut aussi remplacer le sucre par du miel. Un bon petit mélange sucré/salé à essayer en tout cas!

En tout cas les compliments n'ont pas manqués hier soir: «Tu es un chef!»,«Tu t'améliore dans ta cuisine!».......

Un geek qui s'est faire de la bonne cuisine est un geek en puissance ...! Ich bin ze best of les bests. Nous ne sommes pas que des grands enfants stochés devant l'ordi 24h/24h..Nous avons en réserve des talents bien cachés/insoupçonnés .

A ben tiens! La prochaine fois, je ferais un billet sur mon mélange d'épices pour un cari poulet massalet .