查看libmp3lame的API,所有函数:
要么选择左、右通道,比如这个:
int CDECL lame_encode_buffer (
lame_global_flags* gfp, /* global context handle */
const short int buffer_l [], /* PCM data for left channel */
const short int buffer_r [], /* PCM data for right channel */
const int nsamples, /* number of samples per channel */
unsigned char* mp3buf, /* pointer to encoded MP3 stream */
const int mp3buf_size ); /* number of valid octets in this
stream */2-采用交错的数据,如这个:
int CDECL lame_encode_buffer_interleaved(
lame_global_flags* gfp, /* global context handlei */
short int pcm[], /* PCM data for left and right
channel, interleaved */
int num_samples, /* number of samples per channel,
_not_ number of samples in
pcm[] */
unsigned char* mp3buf, /* pointer to encoded MP3 stream */
int mp3buf_size ); /* number of valid octets in this
stream */这是事实,虽然人们可以选择单声道而不是立体声。使用:
lame_set_mode(lame,MPEG_mode_e::MONO);但是,我如何才能让libmp3lame获取单PCM数据并编码单点mp3音频呢?如果我没有第二个通道,那么正确的API是什么?
发布于 2016-10-03 13:44:03
看起来您需要将模式设置为MONO,将通道数设置为1 (lame_set_num_channels),并在“左”缓冲区中使用lame_encode_buffer与PCM数据。
https://stackoverflow.com/questions/39832189
复制相似问题