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 13/10/2009, à 18:16

wiltur

[Résolu] Soucis avec mplayer dans un script

Bonjour,

J'essaie d'automatiser la récupération d'un fichier ra (real audio donc) sur le site france inter pour ensuite le convertir (avec ffmpeg) et le garder. ( http://sites.radiofrance.fr/play_aod.php?BR=8776&BD=13102009 )

Je récupère le fichier (adresse passée sur la ligne de commande) puis lit l'adresse contenue dedans.
puis t en regardant dans le forum j'ai vu qu'il fallait changer le protocle pnm:// par rtsp:// ce que je fait avec sed.
je pensais lancer mplayer pour récupérer le fichier mais visiblement ça coince.

#!/bin/bash
wget $1
read adr1 <play_aod.php*
mplayer -dumpstream -dumpfile chronique.ra $(echo $adr1 | sed 's/pnm/rtsp/')

J'ai l'erreur suivante :

mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Je suis vraiment pas calé en script bash, je doit faire une (des ?) erreur, mais où ?

Merci d'avance.

Dernière modification par wiltur (Le 14/10/2009, à 15:40)


Microsoft est à l'informatique ce que TF1 est à la culture. :)

Hors ligne

#2 Le 13/10/2009, à 21:00

erdnaxeli

Re : [Résolu] Soucis avec mplayer dans un script

En mettant ceci ce n'est pas mieux ?

mplayer -dumpfile chronique.ra -dumpstream $(echo $adr1 | sed 's/pnm/rtsp/')

Xitaflup vaincra !

Hors ligne

#3 Le 13/10/2009, à 21:41

wiltur

Re : [Résolu] Soucis avec mplayer dans un script

non, hélas.

à noter que si je le fait dans un terminal ça fonctionne parfaitement.

mplayer -dumpstream -dumpfile chronique.ra rtsp://son.radio-france.fr/chaines/itema/8776/8776_13102009_2009F8776E0197.rm

Dernière modification par wiltur (Le 13/10/2009, à 21:44)


Microsoft est à l'informatique ce que TF1 est à la culture. :)

Hors ligne

#4 Le 13/10/2009, à 23:01

AnsuzPeorth

Re : [Résolu] Soucis avec mplayer dans un script

Bsr,
Essaie en modifier les separateurs de sed (comme tu travailles sur un chemin)

sed 's@un@deux@' fichier

Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#5 Le 14/10/2009, à 07:33

erdnaxeli

Re : [Résolu] Soucis avec mplayer dans un script

J'ai trouvé. Il y a un & dans l'adresse du player, ce qui lance wget en tache de fond, ce qui fait que le read essaye de lire un fichier pas encore téléchargé. Il faut faire wget "$1".


Xitaflup vaincra !

Hors ligne

#6 Le 14/10/2009, à 10:31

wiltur

Re : [Résolu] Soucis avec mplayer dans un script

@erdnaxell
le fait de faire une wget "$1" ne change rien, et je n'avait pas de soucis pour la récupération du fichier ni la lecture à l'intérieur de celui-ci en fait.

@AnsuzPeorth
j'ai essayé en remplaçant les / par des @ mais ça ne change rien

mplayer -dumpstream -dumpfile chronique.ra $(echo $adr1 | sed 's@pnm@rtsp@')

au lieu de

mplayer -dumpstream -dumpfile chronique.ra $(echo $adr1 | sed 's/pnm/rtsp/')

en ajoutant l'affichage de l'adresse du rm à télécharger dans le script il apparait bien. je rajoute un sleep histoire de bien avoir le fichier primaire téléchargé (mais je pense pas que ça influe)

#!/bin/bash
wget $1
sleep 2
read adr1 <play_aod.php*
echo $adr1 | sed 's/pnm/rtsp/
mplayer -dumpstream -dumpfile chronique.ra $(echo $adr1 | sed 's/pnm/rtsp/')

et toujours la même erreur :

mplayer: could not connect to socket
mplayer: No such file or directory

argh, j'obtiens donc bien la bonne adresse, mais mplayer n'arrive l'obtenir, en revanche si je tape l'adresse en terminal (celle affichée à l'exécution du scipt) alors là ça fonctionne hmm


Microsoft est à l'informatique ce que TF1 est à la culture. :)

Hors ligne

#7 Le 14/10/2009, à 12:41

erdnaxeli

Re : [Résolu] Soucis avec mplayer dans un script

Bon, effectivement ça ne fonctionne pas. Je ne comprends pas pourquoi (en plus j'ai une erreur différente de la tienne), mais ça ne fonctionne pas. J'ai donc refait le script depuis zéro, et ceci marche chez moi :

#!/bin/bash
# -*- coding: UTF8 -*-

temp=`mktemp playXXXX`
wget $1 -O $temp 
adr1=`cat $temp | sed 's/pnm/rtsp/'`
mplayer -dumpstream $adr1 -dumpfile chronique.ra
rm $temp

Dernière modification par erdnaxeli (Le 14/10/2009, à 12:43)


Xitaflup vaincra !

Hors ligne

#8 Le 14/10/2009, à 12:50

erdnaxeli

Re : [Résolu] Soucis avec mplayer dans un script

Je viens de comprendre ! Et c'est super con.
J'avais raison, c'est bien un problème du au '&' dans l'adresse. Quand tu lances ton script, tu dois surement faire

sh mon_script.sh http://sites.radiofrance.fr/play_aod.php?BR=8776&BD=13102009

Seulement, à cause du '&' dans l'adresse, ce qui est réllement lancé c'est ceci :

sh mon_script.sh http://sites.radiofrance.fr/play_aod.php?BR=8776&

Du coup, premièrement le script en lancé en tache de fond (mais ça encore c'est pas grave), et deuxièment l'adresse est tronquée et donc fausse. Pour que ça fonctionne normalement il faut mettre l'adresse entre "" :

sh mon_script.sh "http://sites.radiofrance.fr/play_aod.php?BR=8776&BD=13102009"

Le '&' n'impacte pas le wget en fait mais directement le script. Et pour le sed, mettre des @ ou des / ne change rien du tout, vu qu'il n'y a pas de / dans la chaine que l'on veut remplacer.

Conclusion, toujours faire attention avec les adresse à ralonge et par précaution les mettre entre guillemets (ou apostrophes).

Dernière modification par erdnaxeli (Le 14/10/2009, à 12:54)


Xitaflup vaincra !

Hors ligne

#9 Le 14/10/2009, à 15:39

wiltur

Re : [Résolu] Soucis avec mplayer dans un script

haa, merci, effectivement maintenant ça fonctionne smile
C'était effectivement tout con hmm

je ne connaissais pas mktemp, bien utile cette fonction.

Donc le script final (avec encodage ogg à la fin)

#!/bin/bash
# -*- coding: UTF8 -*-
temp=`mktemp playXXXX`
wget $1 -O $temp 
adr1=`cat $temp | sed 's/pnm/rtsp/'`
mplayer -bandwidth 100000 -dumpstream $adr1 -dumpfile chronique.ra
ffmpeg -i chronique.ra -ar 22050 -ab 64k -ac 1 -acodec libvorbis chronique.ogg
rm $temp
rm chronique.ra

merci encore smile

Dernière modification par wiltur (Le 14/10/2009, à 15:39)


Microsoft est à l'informatique ce que TF1 est à la culture. :)

Hors ligne

#10 Le 14/10/2009, à 16:48

erdnaxeli

Re : [Résolu] Soucis avec mplayer dans un script

Mais de rien, ça m'a fait plaisir. Et je garde ton script dans un coin, il est assez pratique mine de rien.
Par contre, où trouves-tu les liens comme tu le montre dans ton premier post ? Moi je trouve des liens de ce type : http://www.tv-radio.com/ondemand/france_inter/CO2/CO220091003.ram (qui marchent aussi très bien d'ailleurs).


Xitaflup vaincra !

Hors ligne

#11 Le 14/10/2009, à 17:55

wiltur

Re : [Résolu] Soucis avec mplayer dans un script

En fait ce sont les chroniques, certaines son des videos (Guillon), et d'autres des audios.
Par exemple pour récupérer juste Cartier Libre je vais sur cette page et je clique droit sur écoutez l'émission du mercredi 14 octobre 2009 en haut à droite, c'est çà le lien que je copie et passe en argument pour le script.
Ça évite de se faire tout le podcast du 7h/10h et de ne prendre de la partie qui m'intéresse.


Microsoft est à l'informatique ce que TF1 est à la culture. :)

Hors ligne

#12 Le 14/10/2009, à 19:57

erdnaxeli

Re : [Résolu] Soucis avec mplayer dans un script

D'accord. Pour les émissions les liens sont différents mais ça marche tout aussi bien.


Xitaflup vaincra !

Hors ligne

#13 Le 11/11/2009, à 13:13

omne

Re : [Résolu] Soucis avec mplayer dans un script

Super script, merci.

Jusqu’à présent je gardais dans un coin une ligne bien plus complexe qui doit remonter à la jeunesse d’mplayer (et donc la mienne !)

Je ne connais que très (très) peu bash, mais ne pourrait-on pas ajouter un second argument (optionnel) à la ligne de commande pour choisir le nom du fichier de sortie ? Là il risque d’y avoir collision de fichiers, non ? Et/ou un truc qui ajouterait la date ?

Dernière modification par omne (Le 11/11/2009, à 13:15)


Je tape sur un clavier fr-dvorak-bépo : http://www.bepo.fr

Hors ligne

#14 Le 11/11/2009, à 14:51

omne

Re : [Résolu] Soucis avec mplayer dans un script

Bon, avec l’aide de mes « camarade » du bépo… le script est devenu ça :
Il n’y a qu’une ligne de code en plus certes big_smile
On peut ajouter comme second paramètre de la ligne de commande le nom souhaité pour le fichier final (sans espaces, je pense). Si ce paramètre n’est pas précisé, c’est le nom « podcast_ram » qui sera utilisé.

Si le script se nomme ram2ogg on peut donc faire :

ram2ogg URL nom_de_fichier
#!/bin/bash
# -*- coding: UTF8 -*-
nom=${2:-podcast_ram}
temp=`mktemp playXXXX`
wget $1 -O $temp 
adr1=`cat $temp | sed 's/pnm/rtsp/'`
mplayer -bandwidth 100000 -dumpstream $adr1 -dumpfile $nom.ra
ffmpeg -i $nom.ra -ar 22050 -ab 64k -ac 1 -acodec libvorbis $nom.ogg
rm $temp
rm $nom.ra

Je tape sur un clavier fr-dvorak-bépo : http://www.bepo.fr

Hors ligne