android librtmp 推送h264流 aac流 基本过程总结三 推流aac
1,aac 编码初始化
定义编码的结构体
typedef struct AudioEncodeFaacInformation
{
faacEncHandle hEncoder;
faacEncConfigurationPtr pConfiguration;
int init_flag;
unsigned long nInputSamples;
unsigned long nMaxOutputBytes;
}AudioEncodeFaac;
int Audio_Encode_Init_Faac(AudioEncodeFaac *args, int nSampleRate, int channel)
{
int ret = 0;
if (args == NULL)
return -1;
memset(args, 0, sizeof(AudioEncodeFaac));
args->hEncoder = faacEncOpen(nSampleRate, channel, &args->nInputSamples, &args->nMaxOutputBytes);
args->pConfiguration = faacEncGetCurrentConfiguration(args->hEncoder);
if (args->pConfiguration == NULL)
{
goto end;
}
// 设置编码配置信息
/*
PCM Sample Input Format
0 FAAC_INPUT_NULL invalid, signifies a misconfigured config
1 FAAC_INPUT_16BIT native endian 16bit
2 FAAC_INPUT_24BIT native endian 24bit in 24 bits (not implemented)
3 FAAC_INPUT_32BIT native endian 24bit in 32 bits (DEFAULT)
4 FAAC_INPUT_FLOAT 32bit floating point
*/
args->pConfigur