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 11/02/2022, à 17:24

weezixx

Utiliser vlc avec la commande "at"

Bonjour,

j'essaie en vain de faire fonctionner cette commande pour faire qqch du genre :

vlc /Musique/Artiste/Album | at now + 1 minute

Pour que simplement vlc se lance, comme je pourrai le faire dans un terminal, mais rien hmm

J'ai déjà fait export DISPLAY=:0, mais rien n'y fait.

Et 2e question : c'est possible d'utiliser "at" avec un alias ?

D'avance merci !

Hors ligne

#2 Le 11/02/2022, à 18:12

Vobul

Re : Utiliser vlc avec la commande "at"

Peut-être qu'utiliser un autre outil serait préférable. Comme mpc qui interagit avec mpd. Car VLC c'est non seulement un truc graphique (donc j'pense que ton pipe il s'en fout) mais en plus c'est un lecteur vidéo.

mpc play | at now "+1 minute"

Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 11/02/2022, à 18:16

weezixx

Re : Utiliser vlc avec la commande "at"

Bon en fait mon message est plutôt un exemple pour comprendre de façon générique comment utiliser "at" pour lancer les lignes de commande que je lance dans le terminal mais à un moment spécifique.

Et je viens de tester "cvlc" qui est vlc sans GUI, ça fonctionne pas non plus hmm

Merci d'avoir répondu

Hors ligne

#4 Le 11/02/2022, à 19:46

Watael

Re : Utiliser vlc avec la commande "at"

at prend en argument une commande, pour différer son exécution, et elle ne reçoit en entrée que l'information d'une commande à exécuter, pas sa sortie (à moins que cette sortie soit une liste de commande(s) à exécuter)
donc, je dirais, sous réserve de définir le DISPLAY (comme pour cron), et qu'il soit accessible lors du déclenchement de l'exécution :

DISPLAY=:0 at now +1minute vlc "$maVideo"

...
?

Dernière modification par Watael (Le 11/02/2022, à 19:47)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 11/02/2022, à 22:16

Compte supprimé

Re : Utiliser vlc avec la commande "at"

Bonsoir,
@Watael:

(venv) ~/venv jt'écoute :DISPLAY=:0 at now +1minute vlc
syntax error. Last token seen: v
Garbled time
(venv) ~/venv jt'écoute :

Sinon c'est juste pour lancer vlc dans 1 mn, on peut toujours faire:

$(sleep 60; vlc mavideo)&

Dernière modification par Compte supprimé (Le 11/02/2022, à 22:36)

#6 Le 11/02/2022, à 22:35

Compte supprimé

Re : Utiliser vlc avec la commande "at"

ceci fonctionne:

echo "DISPLAY=:0 vlc"|at now

#7 Le 11/02/2022, à 22:42

MicP

Re : Utiliser vlc avec la commande "at"

Bonjour

Il faut peut-être que la session du compte utilisateur concerné soit ouverte,
que l'écran n'ait pas été mis en veille entre temps,
et exporter aussi la variable $XAUTHORITY de la session

Dernière modification par MicP (Le 11/02/2022, à 22:45)

Hors ligne

#8 Le 11/02/2022, à 22:48

Watael

Re : Utiliser vlc avec la commande "at"

oui, DISPLAY doit être défini pour vlc, at ne la transmettra pas.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 11/02/2022, à 23:08

Compte supprimé

Re : Utiliser vlc avec la commande "at"

MicP a écrit :

Bonjour

Il faut peut-être que la session du compte utilisateur concerné soit ouverte,
que l'écran n'ait pas été mis en veille entre-temps,
et exporter aussi la variable $XAUTHORITY de la session

Tu penses à tout wink

[hs] je suis en train d'imaginer que cette commande pourrait servir de base pour faire un programme de contrôle parental ...(quel vilain mot^^)

#10 Le 12/02/2022, à 18:07

jplemoine

Re : Utiliser vlc avec la commande "at"

Pour démarrer vlc en mode texte (via ssh), j'ai utilisé cette commande (via un script) :

/usr/bin/cvlc "/home/user/Musique/chanson.mp3" --gain 1 --play-and-exit &

Donc, on devrait pouvoir utiliser at + cvlc quite à passer par un script


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#11 Le 13/02/2022, à 01:15

LeoMajor

Re : Utiliser vlc avec la commande "at"

salut,
normalement, c'est le dbus_session, qu'il faut aller chercher (depuis la mise en place de systemd)

$ at now + 1 minute <<<"DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NPuZOfZqFQ DISPLAY=:0  XAUTHORITY=/run/user/1001/gdm/Xauthority totem \"/home/toto/Téléchargements/Taratata - Benjamin Biolay Même Si Tu Pars (2005).mp4\""
warning: commands will be executed using /bin/sh
job 22 at Sat Feb 12 23:52:00 2022
...
OK

anciennement,

...
declare -a aexporter
active_session=$(loginctl --no-pager --no-legend list-sessions | awk  '$2>=1000 {cmd="loginctl -p State -p Type show-session "$1; \
while (cmd|getline tmp)if(tmp~/active|online|x11/){sess[$1]++}; close(cmd)}; END {for (s in sess)if(sess[s]==2)print s}')
active_userid=$(loginctl -p User show-session "$active_session" | cut -d= -f2)
active_pid=$(pgrep -u "$active_userid" gnome-session)   # lightdm gdm3
aexporter=($(awk '/^(DBUS_SESSION_BUS_ADDRESS|DISPLAY|XAUTHORITY)/ ' < <(strings /proc/${active_pid}/environ)))
export "${aexporter[@]}"
...
echo "${aexporter[@]}"
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NPuZOfZqFQ DISPLAY=:0  XAUTHORITY=/run/user/1001/gdm/Xauthority

c'est quand même plus simple, avec mplayer sans interface graphique pour lire de la musique

$ at now + 1 minute <<<"mplayer ~/Musique/chanson.mp3"

warning: commands will be executed using /bin/sh
job 23 at Sun Feb 13 00:09:00 2022
OK

Hors ligne

#12 Le 13/02/2022, à 12:14

LeoMajor

Re : Utiliser vlc avec la commande "at"

active_session=$(loginctl --no-pager --no-legend list-sessions | awk  '$2>=1000 {cmd="loginctl -p State -p Type show-session "$1; \
while (cmd|getline tmp)if(tmp~/active|online|x11/){sess[$1]++}; close(cmd)}; END {for (s in sess)if(sess[s]==2)print s}')
active_userid=$(loginctl -p User show-session "$active_session" | cut -d= -f2)
active_pid=$(pgrep -u "$active_userid" gnome-session)   # lightdm gdm3
aexporter=($(awk '/^(DBUS_SESSION_BUS_ADDRESS|DISPLAY|XAUTHORITY)/ ' < <(strings /proc/${active_pid}/environ)))
at now + 2 minute <<<"${aexporter[@]} cvlc /home/toto/Téléchargements/Taratata-Charlie_Winston_Kick_The_Bucket-2016-.mp4"

Hors ligne