[英]Encode mono PCM file to MP3 with libmp3lame/liblame/lame
查看libmp3lame的API,所有功能:
1-选择左右声道,如下所示:
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来获取MONO PCM数据并编码单声道mp3音频? 如果我没有第二个渠道,该使用哪种正确的API?
看起来您需要将mode设置为MONO,将通道数设置为1( lame_set_num_channels
),并且将lame_encode_buffer
与“左”缓冲区中的PCM数据一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.