Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[newbie] récupération de STDERR dans un pipe sans redirection

2 réponses
Avatar
Benoît Leudet
Bonjour à tous,

Lors d'une commande d'extraction vidéo, j'utilise le programme pipemeter
pour connaître la progression de l'opération, voici la commande:

$cmd = "pipemeter -f movie.vob -l | tcextract -x mpeg2>vid.m2v |";

Pipemeter envoie joliment ses infos sur STDERR... que je suis incapable de
récupérer.
Je pensais faire quelque chose du genre:

open(FH, $cmd);
while ( ... ) {
traitement de pipemeter
}
close(FH);

mais while quoi?

J'ai bien entendu fais des recherches qui m'ont toutes données comme
solution le fameux 2>&1. Ca ne fonctionne que si j'inverse le pipe et ce
n'est pas ce que je veux.
J'ai essayé aussi divers modules (entre autre IO::Capture::STDERR) sans
succès.

Sinon, je me dis qu'il me restera toujours une solution du genre "tail"
mais je reste persuadé qu'il doit y avoir une solution plus simple, c'est
pourquoi je demande votre aide :)

Merci d'avance,

2 réponses

Avatar
Emmanuel Florac
Le Sun, 08 May 2005 20:20:20 +0200, Benoît Leudet a écrit :


Sinon, je me dis qu'il me restera toujours une solution du genre "tail"
mais je reste persuadé qu'il doit y avoir une solution plus simple, c'est
pourquoi je demande votre aide :)


Il faut utiliser soit OPen3 (assez complexe) soit plus simple, le module
System2 qui est fait pour ça (récupère le STDOUT et le STDERR
séparément).

--
Ne pas savoir de quoi on parle est un avantage dont il ne faut pas
abuser.
R.Debray

Avatar
Benoît Leudet
Le Sun, 08 May 2005 23:26:02 +0200, Emmanuel Florac a écrit :

Il faut utiliser soit OPen3 (assez complexe) soit plus simple, le module
System2 qui est fait pour ça (récupère le STDOUT et le STDERR
séparément).


Et bien merci pour la réponse, je vais voir tout ça dès que possible :)