Je veux convertir tous les * .flac en * .mp3 dans le dossier spécifique.
Voici ce que j'ai essayé, mais qui ne fonctionne pas:
# change to the home directory
cd ~/music
# convert all *.flac files
ffmpeg -i *.flac -acodec libmp3lame *.mp3
# (optional: check whether there are any errors printed on the terminal)
sleep 60
Comment atteindre mon objectif?
bash
shell-script
ffmpeg
Kevin Dong
la source
la source
Réponses:
Essaye ça:
la source
$(basename "${i/.flac}")
pour gérer les espaces?for
boucle: IFS = $ '\ n'$(basename "${i/.flac}").mp3
à"$(basename "${i/.flac}").mp3"
(en mettant des guillemets)Une solution simple à 1 doublure:
find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;
http://lewisdiamond.blogspot.ca/2012/01/converting-flac-to-mp3.html
Notez que cela sera appliqué récursivement dans le répertoire donné. C'est-à-dire que si vous l'exécutez à partir de votre dossier Musique, il convertira tous les flacs des sous-dossiers et produira un .mp3 à côté. Vous pouvez également le faire sans ffmpeg en utilisant directement flac et lame (c'est-à-dire lire w / flac, pipe to lame, sortir dans un fichier .mp3), comme indiqué dans le lien.
la source
-maxdepth 1
je pense comme dans la réponse de X Tian pour limiter la récursivité.find -name "*.flac" -exec bash -c 'ffmpeg -i "{}" -y -acodec libmp3lame -ab 128k "${0/.flac}.mp3"' {} \;
Si vous avez des espaces blancs dans les noms de fichiers:
la source
J'ai pris tout ce que j'ai trouvé ici (et peut-être sur certains autres sites) et créé un petit outil pour non seulement créer des mp3 de flacs de manière récursive, mais aussi conserver des chemins relatifs pour les créer ailleurs avec un support multithread.
oh, et oui, je vois, je n'ai pas utilisé ffmpeg dans ce cas, parce que mon OSMC n'a pas fourni de paquets pour ffmpeg, seulement avconv, mais puisque vous êtes déjà là, je suppose que vous savez, c'est "fondamentalement" le même - au moins pour la partie la plus importante. Remplacez simplement la commande "avconv" par "ffmpeg". Mes premiers runs ont été avec le bac ffmpeg et exactement les mêmes options.
Je ne suis en aucun cas un hacker bash, mais je l'ai réussi, comme mon premier bashscript avec les demandes données, et peut-être que quelqu'un en bénéficiera. Je suis ouvert à toute suggestion de votre part, mais jusqu'à présent, cela fonctionne pour moi.
mon script pour faire tourner les 4 instances, une pour chaque cœur, est comme ceci:
Et le script de travail comme celui-ci:
qui peut être trouvé à https://github.com/erdnuesse/flac-to-mp3
Cordialement, Kay
la source
J'ai travaillé sur la réponse de @ Ketan en utilisant avconv, car ffmpeg ne fonctionne pas bien ici.
Cela convertit les
flac
fichiers d'un dossier enmp3
fichiers et les déplace ensuite vers un dossier "mp3" existant. Les fichiers seront nommés dans le modèle "nom_original.flac.mp3"la source
la source
GNU Parallel est conçu pour ces types de tâches:
Il exécutera les travaux en parallèle (un travail par cœur de processeur) et s'assurera que la sortie sur le terminal n'est pas mélangée.
Pour en savoir plus, passez 15 minutes à lire le chapitre 1 + 2: https://zenodo.org/record/1146014
la source
{.}.mp3 :::
construction? Ou consultez la section du manuel qui l'explique?FTW parallèle (sans doute, vous avez plus d'un cœur - pourquoi ne pas les utiliser?):
la source
Par exemple, si vous avez plusieurs fichiers avi:
la source
Si cela peut aider .... J'ai écrit un petit script bash pour ce faire .... Vous devez avoir installé ffmpeg / flac.
Comment ça marche:
Il faut 2 arguments:
Il produit:
la source
Pour convertir récursivement en mp3 tous les fichiers flac ou wav dans des dossiers imbriqués, j'ai utilisé cette commande:
Il créera un dossier nommé "mp3" à l'intérieur de celui avec des fichiers flac ou wav et, à l'intérieur du dossier mp3, il enregistrera les fichiers mp3 relatifs avec un débit de 320kbps, sans conserver l'ancienne extension de fichier dans le nom.
la source
Le nom du fichier est "wav2mp3"
la source
pour un in * .flac
faire OUTF =
echo "$a" | sed s/\.flac$/.mp3/g
ffmpeg -i "$ a" -acodec libmp3lame "$ OUTF"
terminé
la source
Je me rends compte que cela arrive assez tard, mais pour mémoire, voir mon script "batchaudiocvt" sur sourceforge. Il s'agit d'un script shell (assez volumineux) conçu pour une conversion de masse efficace des fichiers audio, entre de nombreux formats. En particulier, il fait de son mieux pour convertir les balises habituelles.
la source