Je crée un WAV
(PCM
) au convertisseur MP3
. Mais la sortie est trop rapide.Changements de vitesse audio sur la conversion WAV en MP3
Ceci est le code qui convertit le codage.
FILE *pcm = fopen(in_path, "rb");
FILE *mp3 = fopen(out_path, "wb");
int read, write;
const int PCM_SIZE = 8192;
const int MP3_SIZE = 8192;
short int pcm_buffer[PCM_SIZE*2];
unsigned char mp3_buffer[MP3_SIZE];
lame_t lame = lame_init();
lame_set_in_samplerate(lame, sampleRate);
lame_set_brate(lame, byteRate);
lame_set_num_channels(lame, channels);
lame_set_mode(lame, MONO);
lame_set_VBR(lame, vbr_default);
lame_init_params(lame);
do {
read = fread(pcm_buffer, 2*sizeof(short int), PCM_SIZE, pcm);
if (read == 0)
{
write = lame_encode_flush(lame, mp3_buffer, MP3_SIZE);
}
else
{
write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, mp3_buffer, MP3_SIZE);
}
fwrite(mp3_buffer, write, 1, mp3);
} while (read != 0);
lame_close(lame);
fclose(mp3);
fclose(pcm);
Les paramètres sampleRate
, byteRate
et channels
sont lues dans l'en-tête de WAV.
Je crois que quelque chose manque dans le code ....
Merci! J'ai trouvé votre code, et change tout pour le faire fonctionner! Je pensais que régler MONO fera des œuvres. Mais maintenant je me rends compte que définir un tampon comme NULL va le réparer! – Victor
Merci !!!!! vous résolvez mon problème –