Twitter iPhone pliant OnePlus 12 PS5 Disney+ Orange Livebox Windows 11 ChatGPT

ffmpeg : comment traiter les sous-dossiers ?

3 réponses
Avatar
Alf92
Hello à tous

J'ai un dossier composé de 10 sous-dossiers, eux-même composés de
3 ou 4 sous-dossiers chacun.
A l'intérieur des sous-sous-dossiers j'ai des fichiers MP3 compressés
avec un bitrate bien trop élevé pour l'usage que j'en ai.
Je souhaite donc recompresser tout ça avec FFMPEG.
Pour cela j'ai créé un petit fichier batch que je place avec ffmpeg.exe
dans le dossier à traiter :

ren *.MP3 *.MP2
for %%a in (*.MP2) do ffmpeg -i "%%a" -ab 40k -ac 1 -ar 44100 -acodec libmp3lame "%%~na.MP3"
del *.MP2

Ca fonctionne parfaitement, sauf que ça ne traite que le dossier en
question.
Mes connaissances en ligne de commande étant ce qu'elles sont, comment
faire pour n'avoir à lancer la commande qu'une seule fois afin de
traiter tous les dossiers.

Par avance merci.

3 réponses

Avatar
Tigerfr
Mes connaissances en ligne de commande étant ce qu'elles sont, comment
faire pour n'avoir à lancer la commande qu'une seule fois afin de
traiter tous les dossiers.

Si c'est du linux ou équivalent, il faut lancer la commande en récursif
en ajoutant -r
Avatar
Alf92
Tigerfr :
Mes connaissances en ligne de commande étant ce qu'elles sont, comment
faire pour n'avoir à lancer la commande qu'une seule fois afin de
traiter tous les dossiers.

Si c'est du linux ou équivalent, il faut lancer la commande en récursif
en ajoutant -r

c'est du Win
Avatar
Pierre Maurette
Alf92 :
Tigerfr :
Mes connaissances en ligne de commande étant ce qu'elles sont, comment
faire pour n'avoir à lancer la commande qu'une seule fois afin de
traiter tous les dossiers.

Si c'est du linux ou équivalent, il faut lancer la commande en récursif
en ajoutant -r

c'est du Win

C'est pas beaucoup plus compliqué que sous Linux.
D'abord, vous avez dans les Windows de jourdui un shell Ubuntu qui peut
être bien pratique.
Vous avez Powershell qui est une tuerie mais un peu compliqué, je n'ai
pas la commande en tête.
Accessoirement, vous pouvez vous faire un shell avec Python en mode
interactif, c'est marrant.
Mais nativement l'invite de commande sait faire:
for /R %x in ("*.avi") do (echo "%~x")
Là, ça affiche les trucs trouvés. Pour votre besoin, ça ressemblera à:
for /R %x in ("*.avi") do (ffmpeg.exe .... "%~x" ...)
--
Pierre Maurette