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 05/05/2008, à 11:42

PRQT83

[Résolu] #!/bin/sh: Renommer la sortie de mplayer

Bonjour,
je me suis fait un script basique pour extraire l'audio d'une vidéo. Je me sert de

 mplayer -vo null -ao pcm

pour extraire l'audio.
Seulement, le fichier sort toujours avec le nom: audiodump.wav
comment faire pour que le nom soit celui du fichier dont j'extrait l'audio plus _extract? Exemple: nom_du_fichier_extract.wav
si quelqu'un peut me mettre sur la voie, merci smile

Dernière modification par PRQT83 (Le 06/05/2008, à 17:15)

#2 Le 05/05/2008, à 11:57

PRQT83

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

Script:

#!/bin/sh
if [ $# -eq 0 ]; then
zenity --error --title="Erreur" --"Vous devez choisir un fichier pour lancer la conversion"
exit 1
fi

(while [ $# -gt 0 ]; do
movie=$1
wav_file=`echo "$movie" | sed 's/\.\w*$/'`
mplayer -vo null -ao pcm "$movie"
shift
done
) |
zenity --progress --pulsate --auto-close --text=" conversion en cours..." --percentage=0
zenity --info --title "$title" --"conversion complète"

j'espère que c'est lisible, je poste avec un téléphone...

Dernière modification par PRQT83 (Le 05/05/2008, à 12:01)

#3 Le 06/05/2008, à 06:52

Alain.g

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

Bonjour

Tu peux ajouter la sous-option file : -ao pcm:file="$wav_file"

Concernant ton utilisation de SED, il faudrait juste ajouter ".wav/", mais sans doute l'avais-tu prévu

echo "$movie" | sed 's/\.\w*$/.wav/'

En bash on ferait plutôt : "${movie%.*}.wav" (qui devrait fonctionner également en dash ?)


Xubuntu Karmic !

Hors ligne

#4 Le 06/05/2008, à 07:36

PRQT83

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

Merci, je vais essayer ça smile
Et non, ".wav/" j'avais zappé, trop nul roll ...
Tu le placerais ou "${movie%.*}.wav" ? Après sed et je supprime ce que j'ai mis à la place?
Je sais que ma question est simple pour toi, mais comme tu vois, je débute et en ce moment, suis sous traitement morphinique, car je vais bientôt être opérer alors j'ai les neurones un peu embrouillés...
Je sais que c'est pas une excuse, je pourrais le remettre après l'opération; mais je suis toute la journée devant le pc, peut rien faire d'autre...
En tout cas, je te remercie de ton aide smile

Dernière modification par PRQT83 (Le 06/05/2008, à 12:16)

#5 Le 06/05/2008, à 13:10

PRQT83

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

J'ai essayé:

#!/bin/sh
if [ $# -eq 0 ]; then
zenity --error --title="Erreur" --"Vous devez choisir un fichier pour lancer la conversion"
exit 1
fi

(while [ $# -gt 0 ]; do
movie=$1
wav_file=`echo "$movie" | sed 's/\.\w*$/.wav/'`
mplayer -vo null -ao pcm:file="$wav_file"
shift
done
) |
zenity --progress --pulsate --auto-close --text=" conversion en cours..." --percentage=0
zenity --info --title "$title" --"conversion complète"

mais zénity s'ouvre et se ferme aussitôt en me disant conversion complète sans que rien ne se soit passé...

#6 Le 06/05/2008, à 16:35

Alain.g

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

Normal, tu as enlevé "$movie", du coup MPlayer n'a plus rien à se mettre sous la dent (plus d'entrée) wink
Pour "${movie%.*}.wav", ça pourrait se mettre directement après file=, mais il faudrait mieux passer ton script en bash (#!/bin/bash)

Sinon à quoi sert-il de faire une boucle s'il n'y a qu'un fichier ?


Xubuntu Karmic !

Hors ligne

#7 Le 06/05/2008, à 17:12

PRQT83

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

big_smile
Ah! Les medocs; ça abruti d'une force... big_smile
effectivement, sans ça...Donc mon problème est résolu grâce à ton aide et je t'en remercie wink
Donc mon script pour extraire l'audio des vidéos lu par mplayer avec encodages multiples de fichiers

#!/bin/sh
if [ $# -eq 0 ]; then
zenity --error --title="Erreur" --"Vous devez choisir un fichier pour lancer la conversion"
exit 1
fi

(while [ $# -gt 0 ]; do
movie=$1
wav_file=`echo "$movie" | sed 's/\.\w*$/.wav/'`
mplayer -vo null -ao pcm:file="$wav_file" "$movie"
shift
done
) |
zenity --progress --pulsate --auto-close --text=" conversion en cours..." --percentage=0
zenity --info --title "$title" --"conversion complète"

Merci encore, ton aide m'a été bien utile smile
Amicalement, David.

Edit: correction orthographe

Dernière modification par PRQT83 (Le 02/06/2008, à 20:44)

#8 Le 02/06/2008, à 18:23

jeanmatt

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

Comment fait-on lorsqu'on a un point dans le nom de fichier par exemple : nom.de.fichier.mov

Cela donne un résultat : nom.wav

Que faut-il modifier dans le sed pour pas aboutir à ce résultat mais plutot à nom.de.fichier.wav ?

Dernière modification par jeanmatt (Le 02/06/2008, à 18:23)

Hors ligne

#9 Le 02/06/2008, à 20:13

PRQT83

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

Bonjour, essaye celui là, c'est avec les modifs que m'a conseillé Alain.G.
J'ai tester avec plusieurs fichiers style: le.nom.du.fichier.avi en lançant un encodage multiple, ça marche nickel
 

#!/bin/bash
if [ $# -eq 0 ]; then
zenity --error --title="Erreur" --"Vous devez choisir un fichier pour lancer la conversion"
exit 1
fi

(while [ $# -gt 0 ]; do
movie=$1
wav_file=`echo "$movie" | sed 's/\.\w*$/.wav/'`
mplayer -vo null -ao pcm:file="${movie%.*}.wav" "$movie"
shift
done
) |
zenity --progress --pulsate --auto-close --text=" conversion en cours..." --percentage=0
zenity --info --title "$title" --"conversion complète"

j'ai tester en lançant l'extraction multiple sur 4 fichiers:
le.nom.du.film.avi
le nom du film.avi
le'nom du.film.avi
le_nom_du_film.avi
et ça roule.
wink

Dernière modification par PRQT83 (Le 02/06/2008, à 20:43)

#10 Le 03/06/2008, à 08:23

jeanmatt

Re : [Résolu] #!/bin/sh: Renommer la sortie de mplayer

salut,

Chez moi, ça ne marche pas. Le nom du fichier wav est coupé au 1er point.

Hors ligne