[WIN32] Ouvrir du mp3 VBR avec les fonctions acm* et la lib winmm
Ouvrir du mp3 VBR avec les fonctions acm* et la lib winmm [WIN32] - C++ - Programmation
MarshPosté le 03-06-2005 à 21:42:46
Bonjour,
Sous Windows et en C(++), je souhaite ouvrir un mp3 avec les fonctions acm* et la lib winmm. Mon code fonctionne pour du CBR mais pas VBR
voici comment je remplis ma WAVEFORMATEX (code trouvé sur internet..) pour du CBR
// define MP3 input format LPMPEGLAYER3WAVEFORMAT mp3format = (LPMPEGLAYER3WAVEFORMAT) LocalAlloc( LPTR, maxFormatSize ); mp3format->wfx.cbSize = MPEGLAYER3_WFX_EXTRA_BYTES; mp3format->wfx.wFormatTag = WAVE_FORMAT_MPEGLAYER3; mp3format->wfx.nChannels = 2; mp3format->wfx.nAvgBytesPerSec = 64 * (1024 / 8); // not really used but must be one of 64, 96, 112, 128, 160kbps mp3format->wfx.wBitsPerSample = 0; // MUST BE ZERO mp3format->wfx.nBlockAlign = 1; // MUST BE ONE mp3format->wfx.nSamplesPerSec = 44100; // 44.1kHz mp3format->fdwFlags = MPEGLAYER3_FLAG_PADDING_OFF; mp3format->nBlockSize = MP3_BLOCK_SIZE; // voodoo value #1 mp3format->nFramesPerBlock = 1; // MUST BE ONE mp3format->nCodecDelay = 1393; // voodoo value #2 mp3format->wID = MPEGLAYER3_ID_MPEG;
Selon cette page, il me faut changer la qualité en mp3format->wfx.nAvgBytesPerSec = 0x7FFFFF5A; 5A pour qualité 90 (de 0 à 100) Dans mon logiciel d'encodage le niveau de qualité est gradué de 0 à 9 donc j'ai mis 90.
Quelqu'un a une idée ou a déjà réussi à lire du vbr de cette facon ? Merci 1000 fois.
Marsh Posté le 03-06-2005 à 21:42:46
Bonjour,
Sous Windows et en C(++), je souhaite ouvrir un mp3 avec les fonctions acm* et la lib winmm.
Mon code fonctionne pour du CBR mais pas VBR
voici comment je remplis ma WAVEFORMATEX (code trouvé sur internet..) pour du CBR
// define MP3 input format
LPMPEGLAYER3WAVEFORMAT mp3format = (LPMPEGLAYER3WAVEFORMAT) LocalAlloc( LPTR, maxFormatSize );
mp3format->wfx.cbSize = MPEGLAYER3_WFX_EXTRA_BYTES;
mp3format->wfx.wFormatTag = WAVE_FORMAT_MPEGLAYER3;
mp3format->wfx.nChannels = 2;
mp3format->wfx.nAvgBytesPerSec = 64 * (1024 / 8); // not really used but must be one of 64, 96, 112, 128, 160kbps
mp3format->wfx.wBitsPerSample = 0; // MUST BE ZERO
mp3format->wfx.nBlockAlign = 1; // MUST BE ONE
mp3format->wfx.nSamplesPerSec = 44100; // 44.1kHz
mp3format->fdwFlags = MPEGLAYER3_FLAG_PADDING_OFF;
mp3format->nBlockSize = MP3_BLOCK_SIZE; // voodoo value #1
mp3format->nFramesPerBlock = 1; // MUST BE ONE
mp3format->nCodecDelay = 1393; // voodoo value #2
mp3format->wID = MPEGLAYER3_ID_MPEG;
Pour le VBR, j'ai trouvé ça :
http://msdn.microsoft.com/library/ [...] gmodes.asp
Selon cette page, il me faut changer la qualité en
mp3format->wfx.nAvgBytesPerSec = 0x7FFFFF5A;
5A pour qualité 90 (de 0 à 100)
Dans mon logiciel d'encodage le niveau de qualité est gradué de 0 à 9 donc j'ai mis 90.
Quelqu'un a une idée ou a déjà réussi à lire du vbr de cette facon ?
Merci 1000 fois.