Controler l'entré d'une application (VLC, STDIN et LINUX)

Controler l'entré d'une application (VLC, STDIN et LINUX) - Perl - Programmation

Marsh Posté le 09-08-2008 à 12:26:28    

Bonjour à tous,
 
J'aimerais faire un script qui controle un processus VLC et qui lui passe des informations dans l'entré standard de l'interface RC.
 
Je m'explique... VLC à la possibilité de gérer des filtres et d'insérer des logos. mais je n'ai pas trouvé d'autre moyen de controler ces logos qu'en le faisant directement en ligne de commande. J'utilise les commandes ci dessous sachant que la premiere est passé à l'invite et les autres sont saisie dans "l'interface" rc.
 
   # vlc -I rc --sub-filter logo --logo-file monlogo.png mavideo.mpg  ----> lance la video avec le logo
     logo-file nologo.png                                                            ----> retire le logo sans arreter la video
     logo-file monlogo.png                                                          ----> remet le logo sur la video qui tourne encore
     quit                                                                                 ----> arrete VLC et son interface de saisie.
 
Donc jusqu'ici ça marche.
J'aimerais metre le tout dans un script perl (ou bash, ou autre) et j'ai commencé par ces quelques lignes qui lancent la video, mais qui n'envoi rien dans la commande RC
 
 
#!/usr/local/bin/perl
#
open(STDIN, "|vlc -I rc --sub-filter logo --logo-file monlogo.png mavideo.mpg" ) || die "Can't redirect stdin";
sleep(5);
print STDIN "logo-file no.png\n";
sleep(60);
print STDIN "logo-file monlogo.png\n";
sleep(10);
print STDIN "quit\n";
 
 
 
Vous l'avez deviné, le script ajoute un logo comme on le vois a la télé sur des clip video.
 
Si vous avez une idée de comment faire je suis prenneur.
 
Merci pour votre aide.
 
@+


Message édité par ayperos le 09-08-2008 à 12:28:33
Reply

Marsh Posté le 09-08-2008 à 12:26:28   

Reply

Marsh Posté le 09-08-2008 à 13:16:29    

Et en rajoutant l'option --rc-fake-tty ?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 09-08-2008 à 13:36:13    

Ca ne fonctionne pas mieux. En fait je ne suis pas sure de savoir comment utiliser cette option.  
 
En ligne de commande sur le terminal, elle m'empeche de passer les autres options "logo-file"
 
@+

Reply

Marsh Posté le 09-08-2008 à 15:11:50    

open est pour ouvrir quelque chose comme un fichier ou stdin mais pas pour executer.
 
En perl, pour executer:
system('vlc -I rc --sub-filter logo --logo-file monlogo.png mavideo.mpg');
 
En bash
#!/usr/bin/bash
vlc -I rc --sub-filter logo --logo-file monlogo.png mavideo.mpg

Reply

Marsh Posté le 09-08-2008 à 17:56:49    

Ca c'était clair, mais dans son cas, apres avoir execute le exec, il faut qu'il continue a communiquer au processus lancé.
Il faut donc passer par du fork et des pipes a priori.
Et s'inspirer je pense de cet article bien connu: http://ftp.daum.net/CPAN/scripts/p [...] ction.pipe
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 10-08-2008 à 21:12:21    

Effectivement le lien est interessant. Mais j'ai l'impression que la commande RC n'utilise pas les redirections comme d'autre programme.
 
J'ai essayé de retourner le code dans tous les sens, mais sans succès.
 
@+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed