IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Exécution automatique de commande, Faire un script qui permet d'automatiser une tâche récurrente
Options
Voxelis_33
posté 13 Nov 2015, 14:13
Message #1


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Bonjour

J'utilise actuellement 2 lignes de commande sur mac afin de convertir des fichiers audio en MP3 en MP2.
Aujourd'hui la commande est lancée via la terminal et je suis obligée de le faire fichier par fichier.
J'aimerais pouvoir exécuter un script ou un automator afin de pouvoir convertir plusieurs fichier en même temps en n'ayant pas à faire à chaque fois les commandes.

Voici la commande :
Le dossier où se trouve tous les fichiers en MP3 se trouve sur le bureau. Entree.mp3 est le nom que je donne au fichier de départ et sortie.mp2 est le fichier converti.

"cd /Users/admin/desktop/mp3-mp2

ffmpeg -y -i entree.mp3 -ab 48k -ar 32k sortie.mp2

xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 sortie.mp2"


J'aimerais pouvoir mettre à la place de "entree.mp3" le nom de tous les fichiers qui se trouve dans le dossier et qu'ils ressortent toutes avec le même nom mais en .mp2

Est ce qu'une personne à une idée?
merci




Go to the top of the page
 
+Quote Post
schlum
posté 13 Nov 2015, 14:18
Message #2


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Code
for old in *.mp3; do
new=`echo "$old" | perl -pe "s/.mp3$/.mp2/"`
echo "$old -> $new"
done


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 13 Nov 2015, 15:07
Message #3


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



et comment faire pour automatiser le tout?
Il faut enregistrer le fichier sous quel format?
Go to the top of the page
 
+Quote Post
schlum
posté 13 Nov 2015, 15:15
Message #4


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



C’est juste un exemple de shell script qui prend les fichiers .mp3 du répertoire courant et crée le nom équivalent en .mp2 ; il faut y rajouter tes commandes.


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 13 Nov 2015, 15:18
Message #5


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



et où dans le script j'intègre ma commande?
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 13 Nov 2015, 16:07
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Je ne peux tester car ffmpeg n'est pas disponible sur ma machine mais à priori enregistrer ce qui suit en tant que script AppleScript devrait fonctionner.

--[SCRIPT]
--set dossierDeTravail to POSIX file "/Users/admin/desktop/mp3-mp2"

set dossierDeTravail to POSIX path of ((path to desktop as text) & "mp3-mp2:")

tell application "System Events"
set lesFichiers to path of disk items of folder dossierDeTravail whose name ends with ".mp3"
end tell

repeat with unFichier in lesFichiers
set unNomNu to text 1 thru -5 of (unFichier as text)
set qfSource to quoted form of POSIX path of unFichier

set qfDest to quoted form of POSIX path of (unNomNu & ".mp2")

set theCommand to "ffmpeg -y -i " & qfSource & " -ab 48k -ar 32k " & qfDest & "

xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 " & qfDest
--log theCommand
do shell script theCommand
end repeat
--[/SCRIPT]

Yvan KOENIG (VALLAURIS, France) vendredi 13 novembre 2015 16:00:45
Go to the top of the page
 
+Quote Post
schlum
posté 13 Nov 2015, 16:35
Message #7


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Citation (Voxelis_33 @ 13 Nov 2015, 15:18) *
et où dans le script j'intègre ma commande?



Code
cd /Users/admin/desktop/mp3-mp2
for entree in *.mp3; do
sortie=`echo "$entree" | perl -pe "s/.mp3$/.mp2/"`
ffmpeg -y -i $entree -ab 48k -ar 32k $sortie
xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 $sortie
done


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 17 Nov 2015, 16:20
Message #8


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Citation (KOENIG Yvan @ 13 Nov 2015, 16:07) *
Je ne peux tester car ffmpeg n'est pas disponible sur ma machine mais à priori enregistrer ce qui suit en tant que script AppleScript devrait fonctionner.

--[SCRIPT]
--set dossierDeTravail to POSIX file "/Users/admin/desktop/mp3-mp2"

set dossierDeTravail to POSIX path of ((path to desktop as text) & "mp3-mp2:")

tell application "System Events"
set lesFichiers to path of disk items of folder dossierDeTravail whose name ends with ".mp3"
end tell

repeat with unFichier in lesFichiers
set unNomNu to text 1 thru -5 of (unFichier as text)
set qfSource to quoted form of POSIX path of unFichier

set qfDest to quoted form of POSIX path of (unNomNu & ".mp2")

set theCommand to "ffmpeg -y -i " & qfSource & " -ab 48k -ar 32k " & qfDest & "

xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 " & qfDest
--log theCommand
do shell script theCommand
end repeat
--[/SCRIPT]

Yvan KOENIG (VALLAURIS, France) vendredi 13 novembre 2015 16:00:45




Bonjour

cela fonctionne bien avec apple script mais il me créer un fichier MP2 à zéro kilo. Pourtant, il y a aucune erreur dans le script à l'exécution.
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 20 Nov 2015, 13:56
Message #9


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



personne a une idée pour les fichiers créés à zéro KO?
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 20 Nov 2015, 15:24
Message #10


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Étant curieux, après avoir lu votre dernier message, j'ai téléchargé et installé ffmpeg.
Ayant constaté que les fichiers de commande Unix que j'avais installé dans /usr/bin/ avaient été déménagés lors de l'installation de El Capitan, j'ai créé un dossier /usrBin/ dans lequel j'ai installé ces commandes baladeuses.

Du coup j'ai été conduit à légèrement modifier le script qui est devenu :
--[SCRIPT]
--set dossierDeTravail to POSIX file "/Users/admin/desktop/mp3-mp2"

set dossierDeTravail to POSIX path of ((path to desktop as text) & "mp3-mp2:")

tell application "System Events"
set lesFichiers to path of disk items of folder dossierDeTravail whose name ends with ".mp3"
end tell

repeat with unFichier in lesFichiers
set unNomNu to text 1 thru -5 of (unFichier as text)
set qfSource to quoted form of POSIX path of unFichier

set qfDest to quoted form of POSIX path of (unNomNu & ".mp2")

set theCommand to "/Users/Admin/Bin/ffmpeg -y -i " & qfSource & " -ab 48k -ar 32k " & qfDest & "

xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 " & qfDest
--log theCommand
do shell script theCommand
end repeat
--[/SCRIPT]

Lorsque je l'ai exécuté, le fichier mp3 original de 1 Mo (exactement 1 016 028 octets) a donné naissance à un fichier mp2 de 818 Ko (exactement 817560 octets).

Je n'ai aucune idée de quelles applications peuvent exploiter ce format et du coup je ne sais pas si la conversion a été correctement effectuée.
Un double clic a ouvert iTunes qui a envoyé quelques lignes dans Console:
2015/11/20 15:14:50,993 iTunes[1292]: [15:14:50.993] FigFileGetStorageMediumForCFURL signalled err=2 (errno) (statfs failed) at /Library/Caches/com.apple.xbs/Sources/CoreMedia_frameworks/CoreMedia-1731.15.20/Sources/Platform/Darwin/DarwinFile.c line 697
2015/11/20 15:14:50,995 iTunes[1292]: [15:14:50.995] FigMPEG2ParserInjectData signalled err=-12971 (kFigMPEG2ParserError_CorruptStream) (MPEG2 Stream not program or transport) at /Library/Caches/com.apple.xbs/Sources/CoreMedia/CoreMedia-1731.15.20/Prototypes/FigMPEG2Parser/FigMPEG2Parser.c line 439
2015/11/20 15:14:50,995 iTunes[1292]: [15:14:50.995] MPEGFormatReaderCreateFromStreamForPreciseTiming signalled err=-12848 (kFigFormatReaderError_ParsingFailure) (can't get accurate initial offset) at /Library/Caches/com.apple.xbs/Sources/CoreMedia/CoreMedia-1731.15.20/Prototypes/FormatHandlers/FigFormatReader_MPEG.c line 6524
2015/11/20 15:14:50,999 iTunes[1292]: [15:14:50.999] mv_CheckIfAudioPlayable signalled err=-12957 (kFigMediaValidatorError_AudioCodecNotSupported) (audio codec (null) not found) at line 2379

Yvan KOENIG (VALLAURIS, France) vendredi 20 novembre 2015 15:17:39

J'ai remplacé UsrBin par Users/Admin/Bin

Ce message a été modifié par KOENIG Yvan - 23 Nov 2015, 21:12.
Go to the top of the page
 
+Quote Post
Jaypee
posté 21 Nov 2015, 09:01
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Plutôt que usrBin, je les placerais dans /Users/Admin/bin, voire même dans /Users/Admin/Desktop/mp3-mp2/bin là où aucune mise à jour n'ira les déloger...

J-P

Ce message a été modifié par Jaypee - 21 Nov 2015, 09:01.
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 21 Nov 2015, 09:30
Message #12


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Merci pour ce judicieux conseil.

Yvan KOENIG (VALLAURIS, France) samedi 21 novembre 2015 09:23:32
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 23 Nov 2015, 15:30
Message #13


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Bonjour

Merci pour l'information. J'ai testé mais le fichier reste toujours à zéro KO. La commande manuelle sous terminal fonctionne bien mais en script non.
Je dispose de la version 10.8.5 pour des raisons de compatibilité logicielle.
FFMPEG est installé dans le dossier /usr/bin

Merci de votre aide car là je n'arrive pas à trouver la solution

Fichier joint  mac.png ( 709.32 Ko ) Nombre de téléchargements : 5
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 23 Nov 2015, 15:34
Message #14


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Êtes vous sur que les mp3 comportent plus de zéro octet ?

Yvan KOENIG (VALLAURIS, France) lundi 23 novembre 2015 15:26:48
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 23 Nov 2015, 16:04
Message #15


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Ce sont des MP3 qui font de manière général entre 600 KO et 2MO maxi
Dans le dossier j'ai is des MP3 en 600KO
Go to the top of the page
 
+Quote Post
Jaypee
posté 23 Nov 2015, 21:05
Message #16


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Le chemin de la commande ne doit-il pas être déclaré en POSIX path comme tous les autres fichiers?

J-P
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 23 Nov 2015, 21:16
Message #17


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Dans le script posté le chemin de la commande est un POSIX path.
Profitant de ce que je vérifiait cela, j'y ai remplacé UsrBin par Users/Admin/Bin.

Yvan KOENIG (VALLAURIS, France) lundi 23 novembre 2015 21:08:58
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 24 Nov 2015, 09:05
Message #18


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Bonjour

j'ai finalement trouvé la solution
il fallait que je rajoute les droits d'accès sur le dossier mp3-mp2 sur le bureau
Merci beaucoup pour votre aide
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 24 Nov 2015, 16:23
Message #19


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Citation (schlum @ 13 Nov 2015, 16:35) *
Citation (Voxelis_33 @ 13 Nov 2015, 15:18) *
et où dans le script j'intègre ma commande?



Code
cd /Users/admin/desktop/mp3-mp2
for entree in *.mp3; do
sortie=`echo "$entree" | perl -pe "s/.mp3$/.mp2/"`
ffmpeg -y -i $entree -ab 48k -ar 32k $sortie
xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 $sortie
done



Je reviens sur cette commande. J'aimerais savoir sous quel format l'enregistrer pour le rendre exécutable sans le coller dans la fenêtre du terminal.
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 24 Nov 2015, 16:29
Message #20


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Je vous ai donné un script AppleScript exploitant la commande Shell. Que voulez-vous de plus ?

Yvan KOENIG (VALLAURIS, France) mardi 24 novembre 2015 16:22:08
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 24 Nov 2015, 16:36
Message #21


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



J'ai 2 mac, un en version el capitain où votre script fonctionne parfaitement et j'ai un autre mac en version 10.8.5 où le script me créé toujours des fichiers à 0 kilo malgré les permission vérifiées.
et quand je colle texto la commande :
cd /Users/admin/desktop/mp3-mp2
for entree in *.mp3; do
sortie=`echo "$entree" | perl -pe "s/.mp3$/.mp2/"`
ffmpeg -y -i $entree -ab 48k -ar 32k $sortie
xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 $sortie
done

dans le terminal, il me créé bien les fichiers comme il le faut.
Donc je cherche à comprendre pourquoi sur l'un cela fonctionne et l'autre non.
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 24 Nov 2015, 18:09
Message #22





Guests






Bonjour,

Citation (Voxelis_33 @ 24 Nov 2015, 10:23) *
Je reviens sur cette commande. J'aimerais savoir sous quel format l'enregistrer pour le rendre exécutable sans le coller dans la fenêtre du terminal.

Dans l'application "TextEdit":

Si votre préférence par défaut est un document RTF, sélectionnez le menu "Convertir au format Texte' dans le menu "Format".
Tapez ceci dans la première ligne du document
Code
#!/bin/bash

Copie/colle votre script dans la deuxième ligne du document.
Enregistre-le avec l'encodage "Unicode (UTF-8)", et avec l'extension .sh

Pour le rendre exécutable par vous, tapez ceci dans le Terminal :
Code
chmod u+x

Tapez une espace.
Dans le Finder, sélectionnez votre fichier (le script enregistré), glisse-le et déposé-le dans la fenêtre du Terminal.
Pressez la touche Entrée.
C'est tout.
Go to the top of the page
 
+Quote Post
Voxelis_33
posté 25 Nov 2015, 10:50
Message #23


Nouveau Membre


Groupe : Membres
Messages : 11
Inscrit : 13 Nov 2015
Membre no 197 123



Merci beaucoup de votre aide cela fonctionne pour les 2 mac
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 25th April 2024 - 12:55