Comment convertir un fichier M4A en fichier MP3 ou WMA par programme?

Salutations,

J’essaie de trouver une bibliothèque .NET gratuite ou un exécutable en ligne de commande qui me permet de convertir les fichiers M4A en fichiers MP3 ou WMA. S’il vous plaît aider :).

Je l’ai trouvé!

http://pieter.wigleven.com/it/archives/3

Il y a peut-être d’autres solutions, mais c’est de l’or pour ce que je cherchais.

PS J’ai écrit une DLL .NET qui gère cela en arrière-plan. C’est un code assez terrible, mais il fait le travail.

C’est simple si vous connaissez les bons outils:

ffmpeg -i infile.m4a tmp.wav lame tmp.wav outfile.mp3 

Voici une version batch (désolé Linux / Mac uniquement):

 #!/bin/bash n=0 maxjobs=3 for i in *.m4a ; do ffmpeg -i "$i" "$TMP/${i%m4a}wav" (lame "$TMP/${i%m4a}wav" "${i%m4a}mp3" ; rm "$TMP/${i%m4a}wav") & # limit jobs if (( $(($((++n)) % $maxjobs)) == 0 )) ; then wait fi done 

Intéressant.
Le lien que vous donnez des points à un utilitaire de ligne de commande.
Si vous voulez vraiment le faire par programme, la version de DLL que j’ai trouvée chez Rarewares pourrait vous intéresser. Pas sûr que la description de l’API vienne avec elle … 🙂

Comment convertir un fichier multimédia en fichier WMA

 ssortingng fileName = @"e:\Down\test.wmv"; DsConvert.ToWma(fileName, fileName + ".wma", DsConvert.WmaProfile.Stereo128); 

Pour UWP

 public class ConvertToMp3Manager { public PrepareTranscodeResult PrepareTranscode = null; public MediaTranscoder TransCoder = null; public StorageFile SourceAudio { get; set; } public StorageFile DestinationAudio { get; set; } public AudioFormat AudioFormat { get; set; } public AudioEncodingQuality AudioQuality { get; set; } private MediaEncodingProfile profile = null; public ConvertToMp3Manager(StorageFile sourceAudio, StorageFile destinationAudio, AudioFormat AudioType = AudioFormat.MP3, AudioEncodingQuality audioEncodingQuality = AudioEncodingQuality.High) { if (sourceAudio == null || destinationAudio == null) throw new ArgumentNullException("sourceAudio and destinationAudio cannot be null"); switch (AudioType) { case AudioFormat.AAC: case AudioFormat.M4A: profile = MediaEncodingProfile.CreateM4a(audioEncodingQuality); break; case AudioFormat.MP3: profile = MediaEncodingProfile.CreateMp3(audioEncodingQuality); break; case AudioFormat.WMA: profile = MediaEncodingProfile.CreateWma(audioEncodingQuality); break; } this.SourceAudio = sourceAudio; this.DestinationAudio = destinationAudio; this.AudioFormat = AudioType; this.AudioQuality = audioEncodingQuality; this.TransCoder = new MediaTranscoder(); } ///  /// Return true if audio can be transcoded ///  ///  public async Task ConvertAudioAsync() { PrepareTranscode = await this.TransCoder.PrepareFileTranscodeAsync(this.SourceAudio, this.DestinationAudio, profile); if (PrepareTranscode.CanTranscode) { var transcodeOp = PrepareTranscode.TranscodeAsync(); return true; } else return false; } public static async Task ConvertAudioAsync(StorageFile sourceAudio, StorageFile destinationAudio, AudioFormat AudioType = AudioFormat.MP3, AudioEncodingQuality audioEncodingQuality = AudioEncodingQuality.High) { ConvertToMp3Manager convertToMp3Manager = new ConvertToMp3Manager(sourceAudio, destinationAudio, AudioType, audioEncodingQuality); var success = await convertToMp3Manager.ConvertAudioAsync(); return success; } } public enum AudioFormat { MP3, AAC, M4A, WMA }