c# - sencillo - cómo convertir un archivo opus a mp3
¿Cómo convierto un archivo M4A a un archivo MP3 o WMA mediante programación? (5)
Saludos,
Estoy tratando de encontrar una biblioteca .NET gratuita o un ejecutable de línea de comandos que me permita convertir archivos M4A a archivos MP3 o WMA. Por favor ayuda :).
Interesante.
El enlace que das apunta a una utilidad de línea de comando.
Si realmente quiere hacerlo programáticamente, puede que le interese la versión DLL que encontré en Rarewares . No estoy seguro si la descripción de API viene con eso ... :-)
Esto es simple si conoce las herramientas adecuadas:
ffmpeg -i infile.m4a tmp.wav
lame tmp.wav outfile.mp3
Aquí una versión por lotes (lo siento Linux / Mac solamente):
#!/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
¡Lo encontré!
http://pieter.wigleven.com/it/archives/3
Puede haber otras soluciones, pero esto es oro para lo que estaba buscando.
PD. He escrito una DLL .NET que maneja esto detrás de las escenas. Es un código bastante terrible, pero hace el trabajo bien.
de Cómo convertir archivos multimedia a archivos WMA
string fileName = @"e:/Down/test.wmv";
DsConvert.ToWma(fileName, fileName + ".wma", DsConvert.WmaProfile.Stereo128);
Para 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();
}
/// <summary>
/// Return true if audio can be transcoded
/// </summary>
/// <returns></returns>
public async Task<bool> 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<bool> 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
}