如何实现多路同时MP3编码,解决libmp3lame转换wav单声道变快,处理双声道和单声道PCM输入QQ35744025

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xjb2006/article/details/81261699

之前写过一篇《如何实现多路同时MP3编码》(地址https://blog.csdn.net/xjb2006/article/details/78404523   ) 

那篇主要使用了intel的ipp技术,今天写下更简单而且功能强大的mp3编码库,也可以实现同样的功能:

这里处理了双声道和单声道:

BYTE mp3_buffer[4096*5];

    int write = 0;
    if(channel==2)
        write=lame_encode_buffer_interleaved(lame,(short*)pData,nAudioLen/4 , mp3_buffer, sizeof(mp3_buffer));
    else
        write = lame_encode_buffer(lame, (short*)pData, NULL,nAudioLen/2, mp3_buffer, sizeof(mp3_buffer));
    if(write>0)
        fwrite(mp3_buffer, write, 1, mp3);

lame_encode_buffer_interleaved是写的双声道混合,lame_encode_buffer写左右声道分开。

再贴一些初始化的代码吧:

     lame_t lame;

    lame = lame_init();
    int nV=lame_get_version(lame);
    //lame_init_bitstream(lame);
    lame_set_in_samplerate(lame, 22050);
    lame_set_out_samplerate(lame, 22050);
    lame_set_num_channels(lame, 1);
    lame_set_brate(lame,64);
    lame_set_quality(lame,2);
    lame_init_params(lame);

很简单,很强大,直接支持采样率从8000到48000HZ,根据不同采样率设置不同的版本,如8000设置为版本2.5

什么时候找个时间上传代码上去,最后打个广告:

需要合作的联系QQ35744025,本人03年从事工作,“精通”音视频应用编程技术(勉强加个精通,吸引眼球,哈哈),精通VC,MFC,多媒体教学软件,录播软件,直播软件的核心技术大部分已掌握,如ffmpeg技术,MP4,FLV编码合成,H264,AAC,MP3,可以运用IPP进行高效图像空间转换等,可以运用INTEL和cuda进行硬件H264编解码,可以实现240帧1080P实时编码,完全同步及平滑度极高,rtmp直播推送,rtmp服务器,YV12,YUV422,NV12,RGB24,RGB32熟悉转换,缩放,wav,AAC, mp3的编码解码,视频切换特效算法,视频水印,LOGO,文字。屏幕截取录像,摄像头捕获录像,D3D高效视频图像显示,OPENCV,图像库ximage,GDI,GDIPLUS熟练应用,语音识别及文字转换,人脸识别及匹配,局域网内远程控制,音视频实时通话,声卡捕获回放等,另外SQL数据库,ACCESS,EXCEL数据库,DOC,PDF文件打开提取,FTPServer,Client,以上所有代码均已商用。

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,一直没有仔细统计过,原来我也学会了这么多东西了啊,真佩服自己啊

猜你喜欢

转载自blog.csdn.net/xjb2006/article/details/81261699