Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

general.general : appel aux spécialistes bash ...

Posté par manatlan (Jabber id, page perso, ) le 02 janvier 2006
J'aimerai faire un script bash, pour enregistrer un flux avec vlc pendant un certain laps de temps (ex 2min).



donc qqchose du style :



#!/bin/sh

vlc rtsp://... --sout "#std{access=file,mux=ts,url=$OUTFILE}" -I dummy &



sleep 120

exit 0





explications :

- vlc se lance dans un process (utilisation du &)

- le sleep va faire le process principale, et donc faire patienter vlc

- et l'exit va killer le script et vlc



Le problème : si je coupe/tue VLC .... le sleep va perdurer ...

j'aimerai bien que le "sleep" attende suivant 2 critères :

- le laps de temps défini

- ou la fin process VLC



je pense que c'est possible en bash, mais je ne sais pas trop par où débuter ...

> Lire le message (17 commentaires, moyenne: 1,9).  

Vous avez demandé le commentaire #667202.

Voir là...

Posté par David Decotigny (page perso, ) le 03/01/2006 à 09:00. (lien). Évalué à 1.

Une solution a deja ete postee la :
http://linuxfr.org/~11010010/20437.html
Et un frontend python ici :
http://forum.ubuntu-fr.org/viewtopic.php?pid=159297#p159297

--
d2
  • [^]Re: Voir là...

    Posté par manatlan (Jabber id, page perso, ) le 03/01/2006 à 11:57. (lien). Évalué à 2.

    euhhh ... trop fort ...

    C'est MOI qui développe le frontend python sur TON script ;-)

    je cherche juste à améliorer ton script ... car le process "sleep" continue de tourner (ça fait pas beau ;-)
    Ce pourquoi je posais des questions ici pour faire avancer le schmilblick ...

    suis en train de préparer la 0.3 ;-)

    • [^]Re: Voir là...

      Posté par David Decotigny (page perso, ) le 03/01/2006 à 15:51. (lien). Évalué à 1.

      C'etait le mode d'emploi pour passer pour un rigolo ;)

      je me disais aussi que la ligne vlc ressemblait a qqch de connu...

      Une solution qui marche peut etre (pas testee...) :

      vlc .... &
      pidvlc=$!
      sleep .... &
      pidsleep=$!

      _trap_kill ()
      {
      trap "" KILL EXIT QUIT INT TERM
      echo killing $pidvlc
      kill $pidsleep
      kill $pidvlc
      sleep 3
      sync
      exit 0
      }
      trap _trap_kill KILL EXIT QUIT INT TERM

      wait $pidsleep

      --
      d2
      • [^]Re: Voir là...

        Posté par manatlan (Jabber id, page perso, ) le 03/01/2006 à 22:50. (lien). Évalué à 2.

        en fait, je me suis "formé" à bash aujourd'hui ...
        et j'ai refait entièrement le script à partir de zero
        il est maintenant absolument parfait !!!
        - aucun process ne reste en mem (dans tous les cas)
        - un zenity/progress permet d'annuler le recording
        - et j'ai remonté l'appel au "AT" au niveau du python

        tu trouveras tout ici (dans la 04.b):
        http://manatlan.free.fr/setup/freecorder.tar.gz

        voir script "frecord.sh"

        • [^]Re: Voir là...

          Posté par David Decotigny (page perso, ) le 04/01/2006 à 08:33. (lien). Évalué à 1.

          Farpait !

          Juste un detail : le kill -9 est peut-etre un peu violent, je sais pas s'il va bien plaire a vlc. Ca serait peut-etre bien de faire un truc genre kill $pid ; sleep 3 ; kill -9 $pid 2> /dev/null pour lui laisser une chance de terminer proprement.

          --
          d2