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

Shell et commandes GNU Discussion :

Récupérer bitrate video dans une variable en shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 38
    Points : 20
    Points
    20
    Par défaut Récupérer bitrate video dans une variable en shell
    Bonjour,

    Je suis en train d'écrire un petit script qui scan le contenu d'un dossier à la recherche des fichiers avec l'extension avi et qui les converti en mp4 en vue d'être streamés. Ca marche pas trop mal mais maintenant je voudrais l'améliorer en faisant que pour chaque fichier source, il recupere le bitrate video pour généré un fichier de sortie cohérent avec la source.

    Pour ce faire, j'ai trouvé la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ffmpeg -i NomDuFichier.avi
    qui me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    FFmpeg version 0.5-svn17737+3:0.svn20090303-1ubuntu6, Copyright (c) 2000-2009 Fabrice Bellard, et al.
      configuration: --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --extra-version=svn17737+3:0.svn20090303-1ubuntu6 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --disable-stripping --disable-vhook --enable-libdc1394 --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-neon --disable-altivec --disable-vis --enable-shared --disable-static
      libavutil     49.15. 0 / 49.15. 0
      libavcodec    52.20. 0 / 52.20. 0
      libavformat   52.31. 0 / 52.31. 0
      libavdevice   52. 1. 0 / 52. 1. 0
      libavfilter    0. 4. 0 /  0. 4. 0
      libswscale     0. 7. 1 /  0. 7. 1
      libpostproc   51. 2. 0 / 51. 2. 0
      built on Apr 10 2009 23:18:41, gcc: 4.3.3
     
    Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 30.00 (30/1)
    Input #0, asf, from 'NomDuFichier.avi':
      Duration: 00:00:57.00, start: 3.100000, bitrate: 238 kb/s
        Stream #0.0: Audio: wmav2, 32000 Hz, stereo, s16, 40 kb/s
        Stream #0.1: Video: msmpeg4, yuv420p, 320x240, 30 tbr, 1k tbn, 1k tbc
    At least one output file must be specified
    où je retrouve le fameux bitrate (ici 238 kb).
    Ce que je ne parviens pas à faire maintenant c'est d'extraire cette valeur pour la mettre dans une variable.

    Quelqu'un pourrait'il me mettre sur la piste?

  2. #2
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Bonsoir,

    Il y a un petit truc, parce que les programmeurs de ffmpeg ont envoyé la sortie info sur stderr. Il faut donc la rediriger vers stdout avant de l'envoyer vers la commande suivante avec le pipe. Le résultat donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bitRate=$(ffmpeg -i NomDuFichier.avi 2>&1 | awk '/bitrate/ {print $(NF-1)}')
    Un problème bien posé est déjà résolu (H. Bergson).

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Merci jmelyn. Ca marche nickel.

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

Discussions similaires

  1. Executer un jar et récupérer le retour dans une variable
    Par Joey5 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 28/10/2008, 12h22
  2. Aide pour récupérer code source dans une variable
    Par leumas dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/09/2008, 14h03
  3. récupérer version logiciel dans une variable
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/05/2008, 15h00
  4. Récupérer les header dans une variable
    Par alex.hitman dans le forum Langage
    Réponses: 2
    Dernier message: 29/08/2007, 18h18
  5. récupérer contenu fichier dans une variable
    Par kalyparker dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 02/07/2007, 18h10

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