IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Filtré sortie stdout (partie II)


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut Filtré sortie stdout (partie II)
    Salut a tous,

    Désolé pour le titre par trop explicite, mais j'ai pas trouvé mieux

    Je continue dans le dévellopement de mon script d'encodage (cf ---> http://www.developpez.net/forums/sho...d.php?t=351049 )
    J'aimerais intégrer l'encodage des pistes audio.
    Donc, dans un premier temps récupérer l'affichage du nombre de pistes audio disponible sur le dvd et assigné à chaque piste audio trouvé une variable.

    Voilà un exemple de ce que je tappes dans le shell pour avoir les infos sur la structure du dvd :

    mplayer -dvd-device /mnt/loop dvd://4 -ao null -vo null -frames 0
    MPlayer dev-SVN-r23607 (C) 2000-2007 MPlayer Team
    CPU: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz (Family: 6, Model: 15, Stepping: 6)
    CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
    Compilé avec détection du CPU à l'exécution.112 codecs audio & 235 codecs vidéo
    Lecture de dvd://4
    libdvdread: Attempting to use device
    Il y a 14 titres sur ce DVD.
    Il y a 10 chapitres sur ce titre DVD.
    Il y a 1 angles sur ce titre DVD.
    Flux audio : 0 format : ac3 (5.1) langue : en aide : 128.
    Flux audio : 1 format : ac3 (5.1) langue : de aide : 129.
    Flux audio : 2 format : ac3 (stereo) langue : fr aide : 130.
    Nombre du canaux audio sur le disque : 3.
    Sous-titre ( sid ) : 0 langue : da
    Sous-titre ( sid ) : 1 langue : en
    Sous-titre ( sid ) : 2 langue : de
    Sous-titre ( sid ) : 3 langue : fr
    Sous-titre ( sid ) : 4 langue : nl
    Sous-titre ( sid ) : 5 langue : no
    Sous-titre ( sid ) : 6 langue : fi
    Sous-titre ( sid ) : 7 langue : sv
    Sous-titre ( sid ) : 8 langue : en
    Nombre de sous-titres sur le disque : 9
    Fichier de type MPEG-PS détecté.
    VIDEO: MPEG2 720x576 (aspect 3) 25.000 fps 9800.0 kbps (1225.0 kbyte/s)
    ==========================================================================
    Ouverture du décodeur vidéo : [mpegpes] MPEG 1/2 Video passthrough
    VDec : requête de config de vo - 720 x 576 (espace colorimétrique préferé : Mpeg PES)
    VDec: using Mpeg PES as output csp (no 0)
    L'aspect du film est indéfini - pas de pré-dimensionnement appliqué.
    VO: [null] 720x576 => 720x576 Mpeg PES
    Codec vidéo choisi : [mpegpes] vfm : mpegpes (MPEG-PES output (.mpg or DXR3/IVTV/DVB card))
    ==========================================================================
    ==========================================================================
    Ouverture décodeur audio : [liba52] AC3 decoding with liba52
    Using SSE optimized IMDCT transform
    Using MMX optimized resampler
    AUDIO: 48000 Hz, 2 ch, s16le, 448.0 kbit/29.17% (ratio: 56000->192000)
    Codec audio sélectionné : [a52] afm : liba52 (AC3-liba52)
    ==========================================================================
    AO: [null] 48000Hz 2ch s16le (2 bytes per sample)
    Démarre la lecture...


    Sortie... (Fin du fichier)
    Donc j'aimerais affiché juste ca :

    Flux audio : 0 format : ac3 (5.1) langue : en aide : 128.
    Flux audio : 1 format : ac3 (5.1) langue : de aide : 129.
    Flux audio : 2 format : ac3 (stereo) langue : fr aide : 130.
    Et assigné une variable a chaque flux audio trouvé en demandant de tapper, par exemple, "0" pour la première piste audio trouvé, "1" pour la seconde, etc (en sachant que le nombre est variable selon les dvd)

    Le seul gros problème, c'est que je ne sais vraiment pas quoi utiliser pour faire ce genre de chose (noob inside). Dois-je utiliser un tableau, reprendre le principe du module IO::pipe, etc ?

    J'aimerais juste un début de solution, histoire de me mettre sur la voie

    Jjeje007

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu réutilises IO::Pipe, en filtrant la sortie avec la regex "m/^Flux audio/".

    --
    Jedaï

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    Ok merci !

    Voilà comment j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    my $pipe = new IO::Pipe(); 
    $pipe->reader("mplayer -dvd-device /mnt/loop dvd://4 -ao null -vo null -frames 0");
    { 
    while( defined( my $line = $pipe->getline ) ) {
    print $line if $line =~ m/^Flux.*/;
       }
    }
    Jjeje007

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Filtre sur une partie de la date
    Par souminet dans le forum Débuter
    Réponses: 1
    Dernier message: 12/05/2008, 10h31
  2. Filtré sortie stdout (partie 3) (mkfifo inside)
    Par Jjeje007 dans le forum Langage
    Réponses: 3
    Dernier message: 13/07/2007, 00h41
  3. Filtré sorties stdout et stderr avec open()
    Par Jjeje007 dans le forum Langage
    Réponses: 9
    Dernier message: 09/06/2007, 22h52
  4. Réponses: 2
    Dernier message: 27/10/2006, 17h07
  5. filtre sur une partie d'encodage
    Par cuci dans le forum Access
    Réponses: 2
    Dernier message: 03/11/2005, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo