此文章基于FFmpeg 3.4.2版本,对PCM的采样率、帧格式、通道数进行重采样功能封装。
class FFmpegAudioDecoder
{
public:
FFmpegAudioDecoder(void *pUserData);
~FFmpegAudioDecoder();
/*******/
/**
初始化PCM重采样编码器
@param pInCodecCtx 输入音频解码上下文
@param out_sample_fmt 输出音频格式
@param out_channels 输出音频通道数
@param out_sample_rate 音频采样率
@param out_buf 重采样输出buffer,不需要申请空间,用完需释放
@return 0:success,否则失败
*/
int ConvertInit(AVCodecContext *pInCodecCtx, int out_sample_fmt, int out_channels, int out_sample_rate, uint8_t ***out_buf);
/**
PCM音频重采样
@param pInFrame 输入帧
@param out_sample_fmt 输出音频格式
@param out_channels 输出音频通道数
@param out_sample_rate 音频采样率
@param out_buf 重采样输出buffer
@return 重采样音频大小
*/
int Convert(AVFrame *pInFrame, int out_sample_fmt, int out_channels, int out_sample_rate, uint8_t **out_buf);
/**
释放PCM重采样编码器
*/
void ConvertDeInit();
private:
//......
int m_nConvertBitRate = 0;

该博客详细介绍了如何利用FFmpeg 3.4.2版本进行PCM音频的重采样,涉及关键步骤包括改变采样率、帧格式和通道数。通过实例演示了具体的实现过程。
最低0.47元/天 解锁文章
2877

被折叠的 条评论
为什么被折叠?



