Bonsoir Frédéric
Frédéric a écrit :
> Bonsoir,
>
> Je voudrais récupérer en temps réel le timing de lecture de mplayer, mais
> j'ai du mal à piper sa sortie dans mon programme, vu qu'il rafraichit les
> données toujours sur la même ligne. Du coup, il y a des séquences de
> contrôle bizarre, qui me posent problème (en fait, je n'ai rien en sortie,
> jusqu'au moment où j'appuie sur Enter, et là, je n'ai que des chaînes
> vides).
>
> J'ai fait ça en python, mais si quelqu'un arrive à me montrer comment faire
> dans un autre langage (perl...), ça m'irait aussi.
>
> Merci d'avance.
>
> PS : voici mon code :
>
> import subprocess
> player = subprocess.Popen(("mplayer", "dvd://1"), \
> stdout=subprocess.PIPE, \
> stderr=subprocess.STDOUT)
> while True:
> print repr(mplayer.stdout.read())
Essaye ceci :
mplayer dvd://1 >/tmp/mplayer.out.txt 2>/tmp/mplayer.err.txt
tu devrais trouver dans "/tmp/mplayer.out.txt" les caractères de
contrôle qui font le "retour chariot" de mplayer. D'après hexedit, c'est
"0x0D"
Peut-être es-ce que tu pourrais "piper" mplayer dans un "tc", afin de
remplacer les "0x0D" en "0x13". Par exemple, ceci doit résoudre ton
problème :
mplayer dvd://1 | tr -d "\015\023"
Cordialement,
Olivier
--
~~~~~~~ _____/\_____ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix / _ \/ _ \ Olivier Allard-Jacquin
/ / \ / \ \ Web: http://olivieraj.free.fr/
/___/ / \ \___\ Mail: olivieraj@???
~~~~ ///// ///\\\ \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!