Ajoutez une extension «Explorateur, cliquez avec le bouton droit de la souris sur un fichier .WAV, Convertir en MP3».

2

J'ai créé une clé dans le registre Windows:

HKEY_CLASSES_ROOT\*\Shell\Convert to MP3\command

avec:

"D:\tools\ffmpeg.exe" -i "%1" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%1.mp3"

Cela fonctionne, sauf que le nom du fichier n'est pas exactement ce que je veux:

Entrée:, test.wavsortie:test.wav.mp3

alors que je voudrais que le nom de fichier de sortie soit test.mp3.

J'ai aussi essayé avec:

"D:\tools\ffmpeg.exe" ... "%~n1.mp3"

comme dans cette réponse , mais cela ne fonctionne pas: la sortie est %~n1.mp3alors!

Comment supprimer l'extension originale comme celle-ci et la remplacer par .mp3?

PS: Je cherche une solution sans impliquer un fichier .bat, mais uniquement le registre. Si ce n'est pas possible, vous pouvez utiliser un fichier chauve-souris.

Basj
la source
Utilisez un fichier .cmd et faites-le à partir de là. Cela devrait fonctionner alors.
LPChip
@LPChip N'y a-t-il pas moyen de le faire à partir d'une seule ligne du registre? Les %~n1choses sont-elles prises en charge uniquement dans le fichier cmd / bat?
Basj
Pour autant que je sache, oui.
LPChip

Réponses:

1

Supposé que ffmpeg.exe est inclus par la variable de chemin, utilisez

cmd / q / c pour %% I dans ("% 1") do ffmpeg -i %% I -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%% ~ nI.mp3"
comme une ligne sans fichier de batte.

guest-vm
la source
Posté sur votre demande. En tant qu'utilisateur> 2k, je devrais me concentrer sur des commandes plus avancées et donner aux nouveaux arrivants la possibilité de répondre. C'est pourquoi j'ai d'abord posté dans le commentaire. Si vous m'accordez cette prime, je vous la rembourserai en répondant à votre prochaine question d'intérêt.
guest-vm
1

Voici une solution avec un fichier .BAT (je ne sais pas si c'est possible sans fichier BAT). La clé est d'utiliser %~n1.mp3, comme expliqué ici .

Fichier ____LameMP3me.bat:

"D:\Documents\software\____PORTABLE\____useful-tools\ffmpeg.exe" -i %1 -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%~n1.mp3"

Dans HKEY_CLASSES_ROOT\*\Shell\Lame MP3 me!\command:

"D:\Documents\software\____PORTABLE\____useful-tools\____LameMP3me.bat" "%1"
Basj
la source
1

Au lieu de pirater le registre, vous pouvez simplement insérer le .batfichier (ou un .lnkfichier pointant vers lui) %APPDATA%\Microsoft\Windows\SendTo.

Voici une solution cygwin + bash pour résoudre le problème de l’extension de fichier, nécessite exactement une ligne de code supplémentaire à l’ adresse https://www.tldp.org/LDP/abs/html/string-manipulation.html

Vous commenceriez par c:\cygwin\bin\bash.exe <scriptname> <filename>

#!/bin/bash

FILE_NAME="${1%.*}"

"/cygdrive/d/tools/ffmpeg.exe" -i "\"$1\"" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "\"${FILE_NAME}.mp3\""

#keep the console window open, uncomment if not necessary
read
T Nierath
la source
Merci pour votre réponse, mais l’utilisation de la SendTocommande de menu contextuel vs ne change rien au problème initial (c’est-à-dire que les fichiers sont nommés test.wav.mp3au lieu de test.mp3). Également utiliser SendTo est plus long lorsque vous le faites beaucoup (clic droit, cliquez sur SendTo, trouver le bon élément) plutôt qu’un élément de menu contextuel direct.
Basj
Je sais, mais gardez à l'esprit que les gens peuvent venir à cet endroit en effectuant une recherche sur Google. J'aurais bien aimé connaître ce petit tour beaucoup plus tôt.
T Nierath
Concernant votre problème de nom de fichier. Comme je n’ai jamais appris le power shell, j’installe cygwin et exécute des tâches plus complexes en tant que script bash. Mais ce n'est pas une solution pour vous, je suppose.
T Nierath
@Basj a ajouté la solution bash au cas où
T Nierath,