Bonjour,
Pour les besoins d'un script Bash, j'ai besoin de récupérer la durée instantanée d'une vidéo lancée via mplayer (en gros, la valeur du chronomètre sur la vidéo lorsqu'on presse la touche "o").
Connaissez-vous un moyen de récupérer cette information ?
# Slave mode
Posté par Ph Husson (site web personnel) . Évalué à 4.
[^] # Re: Slave mode
Posté par redrum . Évalué à 2.
-de la durée totale de la vidéo (ex. 90mn). Facile à obtenir via "mplayer -identify"
-de la durée courante de la vidéo (ex. 25mn). Comment l'obtenir ?
[^] # Re: Slave mode
Posté par Ph Husson (site web personnel) . Évalué à 2.
[^] # Re: Slave mode
Posté par redrum . Évalué à 1.
[^] # Re: Slave mode
Posté par Octabrain . Évalué à 4.
mkfifo mplcmd
mplayer TAVIDEO -input file=mplcmd -slave -quiet 2>/dev/null | grep POSITION=
Dans un autre terminal :
echo get_percent_position > mplcmd
Le premier terminal répond : ANS_PERCENT_POSITION=1 (pour 1%) par exemple
[^] # Re: Slave mode
Posté par redrum . Évalué à 1.
Qu'est ce qui ne va pas dans le script suivant ?
Chaque commande détaillée individuellement dans la console donne satisfaction.
Par contre, les lancer via le script laisse un fichier log.txt vierge.
#!/bin/bash
mplayer -quiet -slave MyMovie/MyMovie.avi -input file=/tmp/video-control &> ~/.mplayer/mplayer.log &
echo get_time_length > /tmp/video-control
TimeLength=`cat ~/.mplayer/mplayer.log | grep "ANS_LENGTH="`
echo $TimeLength > MyMovie/log.txt
[^] # Re: Slave mode
Posté par redrum . Évalué à 1.
un "sleep 1" a fait l'affaire...
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Slave mode
Posté par Octabrain . Évalué à 2.
pouet () {
# le code a executer apres le sleep
}
trap pouet ALRM
sleep 5 && kill -ALRM $$
?
Et si l'on cherche des sensations exotiques :
watch -n 2 'test $(($$-PPID)) -gt 1 && kill $PPID || sleep 3'
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Slave mode
Posté par Octabrain . Évalué à 2.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Slave mode
Posté par Octabrain . Évalué à 2.
Ensuite, les commandes sont envoyées par le FIFO, mais mplayer ne répond pas sur le FIFO (il faut rediriger stdout de mplayer sur un 2e FIFO).
Sinon je suis d'accord que l'usage de sleep est souvent bancal.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.