kann mir jemand 'nen converter empfehlen, mit welchem man wav-Dateien, welche auf meiner Festplatte sind, in mp3-Format covertieren kann?
Sollte die Qualität nicht gross beeinflussen und natürlich freeware sein
kann mir jemand 'nen converter empfehlen, mit welchem man wav-Dateien, welche auf meiner Festplatte sind, in mp3-Format covertieren kann?
Sollte die Qualität nicht gross beeinflussen und natürlich freeware sein
z.b. Exact Audio Copy mit LAME Codec etc etc
mein favorit fuer windows ist cdex!!!
ist freeware und kann vor allem auch noch variable mp3's erstelle!
aber dir gehts ja um wav-mp3, das kann er auch ganz easy!
.
soll zwar net der beste encoder sein, aber ich machs immer mit der musicmatch jukebox.... gratis und saueinfach....
Lässt sich ziemlich einfach selber programmieren wenn du einen MP3 Codec und das DirectShow 9 SDK (Software Development Kit) installiert hast.
Zuerst enumerierst du alle verfügbaren Codes....
HRESULT hr;
IMoniker* pMoniker = NULL;
ICreateDevEnum* pSysDevEnum = NULL;
IEnumMoniker* pEnum = NULL;
// System Device Enumerator
hr = ::CoCreateInstance (CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, (void**) &pSysDevEnum);
if (S_OK != hr)
{
// Error
return FALSE;
}
// Moniker Enumerator
hr = pSysDevEnum->CreateClassEnumerator ([COLOR=red]CLSID_AudioCompressorCategory[/COLOR], &pEnum, 0);
if (S_OK != hr)
{
// Error
pSysDevEnum->Release ();
return FALSE;
}
if (NULL == pEnum)
{
return FALSE;
}
// Cycle throught IMoniker collection
while (S_OK == pEnum->Next (1, &pMoniker, NULL))
{
// New instance of CDSCodec
CDSCodec *pCodec = new CDSCodec ();
pCodec->m_pMoniker = pMoniker;
// Retrieve codec name
IPropertyBag *pPropertyBag = NULL;
hr = pMoniker->BindToStorage(NULL, NULL, IID_IPropertyBag, (void**) &pPropertyBag);
if (SUCCEEDED(hr))
{
VARIANT var;
VariantInit (&var);
pPropertyBag->Read (L"FriendlyName", &var, NULL);
CString szTempName (var.bstrVal);
pCodec->m_szCodecName = szTempName;
VariantClear (&var);
// Add new instance to collection
Add (pCodec);
pCodec->BuildCodecFormatArray ();
}
else
{
delete pCodec;
}
}
pEnum->Release ();
pSysDevEnum->Release ();
Alles anzeigen
Und dann musst du nur von den Codecs die unterstützten Formate enumerieren....
(Tipp: Anstelle der Audio Codecs kannst du auch die Video Codecs enumerieren)
HRESULT hr;
IBaseFilter *pBaseFilter = NULL;
// Retrieve the IBaseFilter
hr = m_pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter, (void**) &pBaseFilter);
if (FAILED(hr)) {
// ERROR HERE
return;
}
// Enumerate Pin
IEnumPins *pEnumPins = NULL;
hr = pBaseFilter->EnumPins(&pEnumPins);
if (FAILED(hr)) {
// ERROR HERE
pBaseFilter->Release();
return;
}
// Find the output Pin
IPin *pPin = NULL;
while (S_OK == pEnumPins->Next (1, &pPin, 0))
{
PIN_DIRECTION direction;
pPin->QueryDirection (&direction);
//if (direction == PINDIR_OUTPUT)
{
// Retrieve the IAMStreamConfig
IAMStreamConfig *pStreamConfig = NULL;
hr = pPin->QueryInterface(IID_IAMStreamConfig, (void**) &pStreamConfig);
if (SUCCEEDED(hr)) {
int nCount = 0, nSize = 0;
pStreamConfig->GetNumberOfCapabilities(&nCount, &nSize);
for (int i=0; i<nCount; i++) {
AM_MEDIA_TYPE* pMediaType = NULL;
AUDIO_STREAM_CONFIG_CAPS confCaps;
hr = pStreamConfig->GetStreamCaps(i, &pMediaType, (BYTE*)&confCaps);
if (SUCCEEDED(hr)) {
CDSCodecFormat *pCodecFormat = new CDSCodecFormat();
pCodecFormat->m_pMediaType = pMediaType;
Add(pCodecFormat);
}
}
pStreamConfig->Release();
}
}
pPin->Release();
}
pEnumPins->Release();
pBaseFilter->Release();
Alles anzeigen
Passenden Codec und Format auswählen, die einen Render Graph erzeugen und RenderFile aufrufen.
Fertig!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!