Le blog de Jean David TECHER, un Réunionnais à Avignon

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


lundi 16 février 2009

Jana Defi - Nouvelles photos sur le blog français

Décidemment l'ami Jdub - que je salue au passage - me fait plaize sur son blog consacré à Jana Defi avec les nouvelles photos de notre Jana du Web. Samedi entre deux lignes de compilation de VLC, j'en ai profité donc pour changer mon fond d'écran.

Un beau fon d'écran en attendant le printemps!!!

[FFMPEG/VLC] Streaming en Flash pour le multiposte de Free ou une vidéo vers internet

Il est possible de combiner VLC et ffmpeg pour faire du streaming en Flash si on dispose d'une FreeBox. Pour l'exemple fourni ici la vidéo sera de qualité très moyenne afin de ne pas trop pénaliser mon petit serveur. J'ai donc ici l'occasion de tester mes deux outils préférés pour le multimédia . C'est bien pratique car ma Freebox V4 - qui date un peu- est à Montpellier et moi à Antibes .

1. Illustration


Fig 0 - Configuration pour le streaming


Fig 1 - côté serveur à Montpellier: VLC en cours sur la playlist.


Fig 2 - côté client à Antibes: Réception du flux au format FLV


Fig 3 - côté client à Antibes: La sortie du script php en FLV s'intègre parfaitement à un lecteur Flash

2. Intégration depuis le Web à un lecteur Flash

Le couple VLC/Ffmpeg est donc utilisé ici. Dans les lignes de commandes suivantes, [PORT] désigne le port de sortie.

  1. vlc

    VLC est utilisé en premier. Suite à des crashs remontés par les users de VLC version 0.9.8a sur le forum pour le h264, je teste moi-aussi cet encodage afin de vérifier combien de temps, on peut le faire tourner. J'ai choisi l'option dummy au lieu de ncurses afin de mieux tracer les divers messages. J'ai pris une chaîne au hasard du bouquet du multiposte pour faire mes tests.

    /opt/vlc-0.9.8a/bin/vlc 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=372&flavour=sd' \
    --sout '#transcode{vcodec=h264,vb=192,acodec=mpga,ab=32,channels=1,samplerate=48000,width=320,height=240,deinterlace}:standard{mux=ts,dst=0.0.0.0:[PORT]/stream.ts,access=http}' -vvv -I dummy --interact

    Ceux qui sont sous VLC 0.8.6 préfèront plutôt directement d'utiliser ncurses qui s'intègre parfaitment en optant par exemple pour

    vlc 'playlist.m3u' \
    --sout '#transcode{vcodec=mp2v,vb=384,acodec=mpga,ab=32,channels=1,samplerate=48000,width=320,height=240,deinterlace}:\
    standard{mux=ts,dst=0.0.0.0:[PORT]/stream.ts,access=http}'  -I ncurses 2> /dev/null
  2. php script avec ffmpeg

    L'option "-" redirige le flux en direct comme la redirection vers un fichier pour le stdout du shell. L'idée ici consiste à utiliser Php afin de faire appel à ffmpeg à partir de la fonction system(). Ffmpeg se charge donc de vers la conversion du flux de la chaine. Le script php est donc à déposer sur votre serveur Web.

    <?php
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
    system("ffmpeg -i http://votre.host:[PORT]/stream.ts -acodec libmp3lame -b 300k -s 320x240 -ab 36k -ar 11025 -y  -f flv -");
    ?>:
  3. le lecteur Flash

    Le lecteur Flv-Player disponible à http://flv-player.net/ fera parfaitement l'affaire...C'est la variable suivante qu'il faut préciser par rapport à votre script php

        <param name='FlashVars' value='flv=http://votre.host/votre_script.php&width=...&height=....&...

    L"intégralité du code à insérer dans une page Web serait donc

    <object type='application/x-shockwave-flash' data='http://mon.site.perso/player_flv_maxi.swf' width='368' height='288'>
        <param name='movie' value='http://mon.site.perso/player_flv_maxi.swf' />
        <param name='allowFullScreen' value='true' />
        <param name='FlashVars' value='flv=http://mon.site.perso/mon_script.php&width=320&height=240&autoplay=0&showstop=1&showvolume=1&showtime=1&showloading=always&showfullscreen=1&shows
    witchsubtitles=1&showiconplay=1&iconplaybgalpha=100' />
    </object>

    Ce lecteur est très sympathique car il propose un générateur pour le reste. Il suffit pour celà de se balader sur le site de flv-player pour accéder au générateur.

Source: http://forum.videolan.org/viewtopic.php?f=4&t=55069