J'ai installé récemment ubuntu (je précise aussi que je suis un
parfait néophite en linux).
J'ai copié un des mes script TCL sur ma partition linux. Le TCL étant
multi plateforme, je pensais qu'il allait fonctionner directement ;-)
Le script pilote VLC pour visualiser et enregistrer des chaînes de la
freebox et fonctionne très bien avec windows.
La commande utilisée pour démarrer vlc est:
set canal [open "|vlc nomdela chainfree --extraintf=rc --rc-host
localhost:$numcan --rc-quiet" w+]
puis j'ouvre un canal pour piloter vlc:
set chan [socket localhost $numcan]
ensuite il suffit d'écrire dans le canal $numcan les commandes à faire
exécuter à vlc.
Sous ubuntu cela ne fonctionne pas.
La première commande ne démarre pas vlc, sauf si j'enlève --rc-quiet.
Et dans ce cas, la deuxième commande ne fonctionne pas, j'ai le
message d'erreur suivant:
couldn't open socket: connection refused
Qu'est ce qui ne tourne pas rond à votre avis ?
Le problème ne vient pas de Tcl mais de linux et/ou de vlc. Je ne suis
pas expert dans vlc, mais je pense que tu dois utiliser un $numcan <
1024 ce qui est interdit sous linux si tu n'es pas root. Sinon,
regarde la doc de vlc (man vlc) pour vérifier les options du mode
serveur sous linux.
--
David Zolli
j'ai essaié tout simplement une autre valeur 1048, ça ne marche pas
je fais une r�ponse qui n'en est pas une, hormis le fait que les ports <
1024 sont r�serv�s � root, mais Kroc l'a d�j� dit.
Donc, je rebondis sur le sujet car je cherhce depuis un moment comment
embarquer une fen�tre VLC dans TK : quelqu'un sait-il faire ?
Je sais le faire avec mplayer (gr�ce � ce forum) :
set f [frame .video -container true -width 302 -height 240]
set wid [winfo id $f]
exec mplayer -slave -vf scale -zoom -nokeepaspect -wid $wid -loop 0
/home/vincent/wallas.mpg &
Mais je n'ai jamais trouv� l'option de VLC qui est �quivalente � -wid !
Amicalement, Vincent Verdon
To be able to remote connect to your VLC using a TCP socket (telnet-
like connexion), use --rc-host your_host:port. Then, by connecting
(using telnet or netcat) to the host on the given port, you will get
the command shell.
To use a UNIX socket (local socket, this does not work for Windows),
use --rc-unix /path/to/socket. Commands can then be passed using this
UNIX socket.
Mais j'avoue que je ne sais pas quoi en faire :-(
set fin [file open /path/to/socke r+]
Ensuite tu écris et tu lis le résultat dans $fin comme tu l'aurais
fait avec un socket TCP.
Néanmoins, ton socket TCP devrait fonctionner comme sur Windows.
Essayes avec un port vers 8888 pour voir.
--
David Zolli
Horix a �crit :
> Hello,
>
> J'ai install� r�cemment ubuntu (je pr�cise aussi que je suis un
> parfait n�ophite en linux).
>
> J'ai copi� un des mes script TCL sur ma partition linux. Le TCL �tant
> multi plateforme, je pensais qu'il allait fonctionner directement ;-)
>
> Le script pilote VLC pour visualiser et enregistrer des cha�nes de la
> freebox et fonctionne tr�s bien avec windows.
>
> La commande utilis�e pour d�marrer vlc est:
>
> set canal [open "|vlc nomdela chainfree --extraintf=rc --rc-host
> localhost:$numcan --rc-quiet" w+]
>
> puis j'ouvre un canal pour piloter vlc:
>
> set chan [socket localhost $numcan]
>
> ensuite il suffit d'�crire dans le canal $numcan les commandes � faire
> ex�cuter � vlc.
>
> Sous ubuntu cela ne fonctionne pas.
> La premi�re commande ne d�marre pas vlc, sauf si j'enl�ve --rc-quiet.
Je viens de v�rifier : l'option --rc-quiet n'existe pas dans la version
Linux (enfin la version 1.0.2 de ma Ubuntu). Ca sert � quoi ?
Amicalement, Vincent Verdon
Je n'ai pas fais grand chose, festivités oblige ;-) ( et Bonne Année à
tous !!!!!) , mais j'ai avancé un peu.
Sous windows quand on utilise l'option --extraintf=rc une fenêtre
style "dos" apparait en plus de la fenêtre vlc, dans laquelle on écrit
les commandes et où les résultats des commandes s'affichent. --rc-
quiet permet de ne pas afficher cette fenêtre, qui est inutile quand
on pilote vlc avec un script.
Sous linux il n'y a pas de fenêtre supplémentaire. Dans mon script
j'ai donc enlevé --rc-quiet.
Je ne comprends pas bien comment fonctionne un "socket unix".
Je suis donc resté sur le système: socket TCP.
Et cela ne fonctionne pas même avec 8888.
J'ai essayé la chose suivante: dans les paramètres de vlc, interface ,
rc , j'ai coché la case fake-tty.
Et depuis le script fonctionne, j'arrive à commander vlc de la même
manière que sous windows.
Mais ... éh oui mais, si je paramètre vlc de cette manière je ne plus
lire les vidéo. Si je décoche la case fake-tty je peux lire à nouveau
les vidéo mais mon script ne fonctionne plus :-(
ce n'est donc pas encore fini ...
Horix a �crit :
> Hello,
>
> Je n'ai pas fais grand chose, festivit�s oblige ;-) ( et Bonne Ann�e �
> tous !!!!!) , mais j'ai avanc� un peu.
>
> Sous windows quand on utilise l'option --extraintf=rc une fen�tre
> style "dos" apparait en plus de la fen�tre vlc, dans laquelle on �crit
> les commandes et o� les r�sultats des commandes s'affichent. --rc-
> quiet permet de ne pas afficher cette fen�tre, qui est inutile quand
> on pilote vlc avec un script.
>
> Sous linux il n'y a pas de fen�tre suppl�mentaire. Dans mon script
> j'ai donc enlev� --rc-quiet.
>
> Je ne comprends pas bien comment fonctionne un "socket unix".
> Je suis donc rest� sur le syst�me: socket TCP.
> Et cela ne fonctionne pas m�me avec 8888.
J'ai fait quelques essais (pas beaucoup toutefois) et j'ai les m�mes pb.
Dans ton cas, les socket TCP sont pr�f�rables, car tu �crit un script
qui doit aussi tourner sous Windows, cela est plus portable.
>
> J'ai essay� la chose suivante: dans les param�tres de vlc, interface ,
> rc , j'ai coch� la case fake-tty.
> Et depuis le script fonctionne, j'arrive � commander vlc de la m�me
> mani�re que sous windows.
>
> Mais ... �h oui mais, si je param�tre vlc de cette mani�re je ne plus
> lire les vid�o. Si je d�coche la case fake-tty je peux lire � nouveau
> les vid�o mais mon script ne fonctionne plus :-(
>
> ce n'est donc pas encore fini ...
Toutefois, tu sembles progresser � grands pas ;-) !
Amicalement, Vincent Verdon
Voilà j'ai résolu mon problème.
J'ai décoché la case fake-tty dans les préférences de vlc, de cette
manière je peux regarder des vidéo de manière normale.
Dans mon script pour le démarrage de vlc j'ai enlevé --rc-quiet et
j'ai ajouté --rc-fake-tty.
La commande ressemble donc maintenant à:
set canal [open "|vlc nom_de_la_chain_free --extraintf=rc --rc-host
localhost:$numcan --rc-fake-tty" w+]
et ensuite le canal pour piloter vlc (avec nucan=6666):
set chan [socket localhost $numcan]
Et cela fonctionne comme avant sous windows ;-)
La commande étant un peu différente de la commande sous windows j'ai
ajouté dans le script un test qui suivant le résultat $tcl_platform
(platform) permet d'exécuter la bonne commande suivant l'OS.
Voilà
:^)
--
David Zolli
Kroc a �crit :
> G�nial : tu n'as plus qu'� nous faire une belle page sur le Wiki Tcl
> Francophone avec tout �a :
>
> http://wfr.tcl.tk
>
> :^)
>
> --
> David Zolli
Manque plus qu'� trouver comment embarquer une fen�tre VLC dans une
fen�tre TK...
Amicalement, Vincent Verdon