#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,
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
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
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.htmlNikko
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
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
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
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
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
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 avecvlc --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 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