Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2007, à 21:16

wlourf

[résolu] script pour piloter VLC

Bonjour,

Je lance VLC par un script  et j'aimerai stopper VLC au bout d'un certain temps. Est-ce possible?

Voilà comment j'ouvre VLC :
vlc --open 'rtsp://mafreebox.freebox.fr/freeboxtv/'$fx --sout '#duplicate{dst=display,dst=std{access=file,mux=ts,dst="/home/moi/enregV/'$ch'-'$(date +%Y%m%d-%H%M%S)'-'$2'.MPG"}}' --sout-all

Comment faire pour l'arrêter après X minutes?

Je débute sous Kubuntu et ceci était mon premier post, merci !

Dernière modification par wlourf (Le 18/10/2007, à 19:16)

Hors ligne

#2 Le 16/10/2007, à 21:29

HymnToLife

Re : [résolu] script pour piloter VLC

#!/bin/sh

vlc --open 'rtsp://mafreebox.freebox.fr/freeboxtv/'$fx --sout '#duplicate{dst=display,dst=std{access=file,mux=ts,dst="/home/moi/enregV/'$ch'-'$(date +%Y%m%d-%H%M%S)'-'$2'.MPG"}}' --sout-all &
sleep 2m
killall vlc

Pour le quitter au bout de deux minutes.

Dernière modification par HymnToLife (Le 16/10/2007, à 21:30)


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#3 Le 16/10/2007, à 21:49

wlourf

Re : [résolu] script pour piloter VLC

merci pour ta réponse rapide.
Est-ce que c'est aussi simple de lancer VLC à l'heure hh:mm? J'ai bien repéré la commande AT mais je ne pige pas trop  la syntaxe !
(j'ai aussi repéré des scripts pour ça sur le net, mais j'aime bien comprendre)

Hors ligne

#4 Le 16/10/2007, à 22:12

Sleipnir

Re : [résolu] script pour piloter VLC

bsr,

wlourf a écrit :

merci pour ta réponse rapide.
Est-ce que c'est aussi simple de lancer VLC à l'heure hh:mm? J'ai bien repéré la commande AT mais je ne pige pas trop  la syntaxe !
(j'ai aussi repéré des scripts pour ça sur le net, mais j'aime bien comprendre)

Pour lancer à une heure précise, il y a cron .
Sinon, tu peux regarder le script que j'ai fait pour le neuf ( tu dois faire le même genre pour free ), j'utilise les sleep pour démarrer et arrêter les enregistrements ( c'est pas le top, mais j'ai la flemme de m'atteler à cron et refaire le script, vu qu'il fonctionne comme ça et qu'il convient à la personne pour qui il était destiné..)
http://forum.ubuntu-fr.org/viewtopic.php?id=137758

Hors ligne

#5 Le 16/10/2007, à 22:45

nikko

Re : [résolu] script pour piloter VLC

Bonsoir,

la commande cron permet de programmer les commandes récurrentes et at une commande ponctuelle.

Pour utiliser at il faut le lancer avec 'un moment' en paramètre ce qui ouvre l'entrée standard pour taper la commande :

at 23:00
>vlc
>
tu tapes Ctrl+d pour sortir et enregistrer.

Le moment peut être une heure, on peut y mettre aussi la date, il y a des moments prédéfinis (now, midnight, noon, teatime), on peut faire des additions (at now + 4 days)...

at peut aussi prendre la commande dans un fichier en entrée (option -f), l'option -l liste les commandes en attente...

La page de man peut t'aider (yelp man:at en anglais, ou une version en français ici

Pour cron je te renvoie sur ce tuto :
http://www.ac-creteil.fr/reseaux/systemes/linux/cron.html

Nikko

Hors ligne

#6 Le 16/10/2007, à 23:04

wlourf

Re : [résolu] script pour piloter VLC

Sleipnir a écrit :

bsr,

Pour lancer à une heure précise, il y a cron .
Sinon, tu peux regarder le script que j'ai fait pour le neuf ( tu dois faire le même genre pour free ), j'utilise les sleep pour démarrer et arrêter les enregistrements ( c'est pas le top, mais j'ai la flemme de m'atteler à cron et refaire le script, vu qu'il fonctionne comme ça et qu'il convient à la personne pour qui il était destiné..)
http://forum.ubuntu-fr.org/viewtopic.php?id=137758

merci pour ton script , voici ce à quoi je suis arrivé :

#!/bin/sh
#param1=chaine
#param2=heureDep
#param3=durée en minutes
#param4=titre émission facultatif

case $1 in
5)ch="FR5" fx="203";;
7)ch="ARTE" fx="204";;
esac

secs=`date --date="$2" +%s`
nows=$(date +%s)
sl=$(($secs-$nows))
sleep $sl #defaut secondes

vlc --open 'rtsp://mafreebox.freebox.fr/freeboxtv/'$fx --sout '#duplicate{dst=display,dst=std{access=file,mux=ts,dst="/home/moi/enregV/'$ch'-'$(date +%Y%m%d-%H%M%S)'-'$4'.MPG"}}' --sout-all & sleep $3m

killall vlc

je lance le script comme ça
./enreg 7 22:45 120 UnFilm
et ça me sortira ça : ARTE-20071016_224500-UnFilm.mpg

Je suis donc arrivé à ce que je cherchais (ça m'évitera d'enregistrer tout une aprem pour un film de 2 heures car comme je continue de travailler les fichiers sous windows , je ne peux pas les transférer facilement sur Windows car ils font + de 4 Go).

Petit problème cependant , si je lance 2 enregistrements en même temps, le script fermera les 2 VLC à l'heure de fin du premier d'enregistrement. c'est pas trop grave pour mon utilisation, il suffit de le savoir.

Merci encore !

Dernière modification par wlourf (Le 16/10/2007, à 23:11)

Hors ligne

#7 Le 16/10/2007, à 23:10

wlourf

Re : [résolu] script pour piloter VLC

nikko a écrit :

Bonsoir,

la commande cron permet de programmer les commandes récurrentes et at une commande ponctuelle.

Pour utiliser at il faut le lancer avec 'un moment' en paramètre ce qui ouvre l'entrée standard pour taper la commande :

at 23:00
>vlc
>
tu tapes Ctrl+d pour sortir et enregistrer.

Le moment peut être une heure, on peut y mettre aussi la date, il y a des moments prédéfinis (now, midnight, noon, teatime), on peut faire des additions (at now + 4 days)...

at peut aussi prendre la commande dans un fichier en entrée (option -f), l'option -l liste les commandes en attente...

La page de man peut t'aider (yelp man:at en anglais, ou une version en français ici

Pour cron je te renvoie sur ce tuto :
http://www.ac-creteil.fr/reseaux/systemes/linux/cron.html

Nikko

J'aii bien tapé ça dans un terminal

at 23:00
>vlc
>
tu tapes Ctrl+d pour sortir et enregistrer.

après "at 23:00" j'ai le message suivant : "warning: commands will be executed using /bin/sh"
et il ne se passe rien à l'heure choisie (je précise que je vois bien mes planifications avec la commande atq).
J'avais regardé hier ce problème de AT : at.allow n'existe pas sur le disque et at.deny je n'arrive pas à l'ouvrir.
J'avais essayé Kcron également mais rien ne se passait, je me demande si ce n'est pas un problème de droits ... c'est pourtant génial le planificateur de tâches!  J'ai lu l'aide de Kcron mais pas encore le tuto que tu m'indiques

Dernière modification par wlourf (Le 16/10/2007, à 23:15)

Hors ligne

#8 Le 16/10/2007, à 23:47

nikko

Re : [résolu] script pour piloter VLC

Effectivement, at ne marche pas!
Il y a même un bug dans launchpad:
https://bugs.launchpad.net/ubuntu/+source/at/+bug/94933

D'après ce que j'ai testé, les commandes qui lancent un programme graphique ne fonctionnent pas. Pourquoi, mystère (lié à dash?)?

Si tu exportes ton display avant ça marchera

echo $DISPLAY
:20.0
(je suis sur la deuxième session X)

at 23:55
>export DISPLAY=:20.0
>vlc
Ctrl+d

ou autre solution :

echo export DISPLAY=$DISPLAY \&\& vlc|at 23:55

Nikko

Dernière modification par nikko (Le 16/10/2007, à 23:55)

Hors ligne

#9 Le 17/10/2007, à 08:41

Sleipnir

Re : [résolu] script pour piloter VLC

wlourf a écrit :

Petit problème cependant , si je lance 2 enregistrements en même temps, le script fermera les 2 VLC à l'heure de fin du premier d'enregistrement. c'est pas trop grave pour mon utilisation, il suffit de le savoir.

Merci encore !

Tue le vlc voulu par son pid, cela évitera de fermer tous les vlc en cours.

Hors ligne

#10 Le 17/10/2007, à 08:48

Sleipnir

Re : [résolu] script pour piloter VLC

wlourf a écrit :

Petit problème cependant , si je lance 2 enregistrements en même temps, le script fermera les 2 VLC à l'heure de fin du premier d'enregistrement. c'est pas trop grave pour mon utilisation, il suffit de le savoir.

Merci encore !

Tue le vlc voulu par son pid, cela évitera de fermer tous les vlc en cours.
Par contre , pour arrêter proprement vlc, tu devrais te servir de l'interface http, sinon avec un kill, le fichier enregistré risque de ne pas être finalisé correctement ( impossible d'avancer dans le film lors de la lecture )

Hors ligne

#11 Le 18/10/2007, à 19:22

wlourf

Re : [résolu] script pour piloter VLC

Sleipnir a écrit :
wlourf a écrit :

Petit problème cependant , si je lance 2 enregistrements en même temps, le script fermera les 2 VLC à l'heure de fin du premier d'enregistrement. c'est pas trop grave pour mon utilisation, il suffit de le savoir.

Merci encore !

Tue le vlc voulu par son pid, cela évitera de fermer tous les vlc en cours.
Par contre , pour arrêter proprement vlc, tu devrais te servir de l'interface http, sinon avec un kill, le fichier enregistré risque de ne pas être finalisé correctement ( impossible d'avancer dans le film lors de la lecture )

merci pour pid, ça fonctionne nickel et je n'ai pas de problème de lecture des fichiers, suis pas mécontent de ce premier script !

 #!/bin/sh
#param1=chaine
#param2=heureDep / 0 pour immédiat
#param3=durée en minutes
#param4=titre émission facultatif

#sortie = ARTE-DATE_HEURE-titre.mpg

case $1 in
4)ch="FR4" fx="376";;
5)ch="FR5" fx="203";;
7)ch="ARTE" fx="204";;
esac


#enreg différé
if [ "$2" != 0 ]; then
	nows=$(date +%s)
	secs=`date --date="$2" +%s`
	sl=$(($secs-$nows))
	sleep $sl #defaut en secondes
fi


vlc --open 'rtsp://mafreebox.freebox.fr/freeboxtv/'$fx --sout '#duplicate{dst=display,dst=std{access=file,mux=ts,dst="/home/moi/enregV/'$ch'-'$(date +%Y%m%d-%H%M%S)'-'$4'.mpg"}}' --sout-all & sleep $3m

pid=$!
kill -TERM $pid

par contre pour l'interface http, si je lis cette page http://www.videolan.org/doc/play-howto/fr/ch04.html#id29401 je ne vois pas très bien ce qu'il faut que je mette là : http://votre_serveur_machine:port

Hors ligne

#12 Le 18/10/2007, à 23:48

wlourf

Re : [résolu] script pour piloter VLC

Bonsoir encore,

Question subsidiaire, comment faire pour que VLC s'ouvre sur le bureau d'où à été lancé le script (actuellement il s'ouvre sur le bureau actif) si ce n'est pas trop compliqué ...
Merci

Hors ligne

#13 Le 19/10/2007, à 00:07

nikko

Re : [résolu] script pour piloter VLC

Avec gnome il n'y a pas, de base, de possibilité de choisir son bureau.

Il te faut utiliser devilspie :
http://doc.ubuntu-fr.org/devilspie
ou beryl avec le plugin "attribut des fenêtres".

Et encore ça te permettra de toujours mettre ton vlc sur le même bureau, pas sur celui d'où tu lances le script.

Nikko

Hors ligne

#14 Le 20/10/2007, à 00:17

Sleipnir

Re : [résolu] script pour piloter VLC

wlourf a écrit :

par contre pour l'interface http, si je lis cette page http://www.videolan.org/doc/play-howto/fr/ch04.html#id29401 je ne vois pas très bien ce qu'il faut que je mette là : http://votre_serveur_machine:port

J'avais utilisé l'interface http car à la lecture du fichier enregistré, il était impossible d'avancer dans le film ( pas de barre de défilement ).
Il suffit de lancer vlc avec

vlc --extraintf http

et de le "stopper proprement" avant de le "tuer" avec

wget "http://localhost:8080/requests/status.xml?command=pl_stop" -O /dev/null

Hors ligne

#15 Le 23/10/2007, à 22:28

wlourf

Re : [résolu] script pour piloter VLC

Sleipnir a écrit :
wlourf a écrit :

par contre pour l'interface http, si je lis cette page http://www.videolan.org/doc/play-howto/fr/ch04.html#id29401 je ne vois pas très bien ce qu'il faut que je mette là : http://votre_serveur_machine:port

J'avais utilisé l'interface http car à la lecture du fichier enregistré, il était impossible d'avancer dans le film ( pas de barre de défilement ).
Il suffit de lancer vlc avec

vlc --extraintf http

et de le "stopper proprement" avant de le "tuer" avec

wget "http://localhost:8080/requests/status.xml?command=pl_stop" -O /dev/null

merci encore, ça marche parfaitement, enfin je n'ai pas vu de différence sur mes fichiers enregistrés smile et j'ai bien vu l'interface http sur localhost...

Sinon, pour arrêter le pc j'utilise la commande "sudo shutdown -h hh:mm"? Peut-on intégrer une telle commande dans le script (et si oui, quelle est la syntaxe)? Et aurais-tu un bon site pour les apprendre la syntaxe et les commandes de scripts shell?

a+

Hors ligne