美文网首页
iOS音频推流格式转换

iOS音频推流格式转换

作者: 前行的骆驼 | 来源:发表于2021-08-20 10:29 被阅读0次

音频采集会得到格式为CMSampleBufferRef的音频包,音频推流一般把音频流转换成flv格式

(1)将音频流CMSampleBufferRef转换成PCM data

- (NSData *)convertAudioSmapleBufferToPcmData:(CMSampleBufferRef) audioSample{

//获取数据大小

NSInteger audioDataSize =CMSampleBufferGetTotalSampleSize(audioSample);

//分配数据空间

int8_t * audio_data =aw_alloc((int32_t)audioDataSize);

//创建CMBlockBufferRef,获取PCM数据

CMBlockBufferRef dataBuffer =CMSampleBufferGetDataBuffer(audioSample);

//将数据copy至分配的内存中

CMBlockBufferCopyDataBytes(dataBuffer,0, audioDataSize, audio_data);

//返回PCM data

return [NSData dataWithBytesNoCopy:audio_data length:audioDataSize];

}

(2)将音频PCM data编码成acc格式并合成为flv

- (aw_flv_audio_tag*)encodePCMDataToFlvTag:(NSData*)pcmData{

self.curFramePcmData= pcmData;

AudioBufferList outAudioBufferList = {0};

outAudioBufferList.mNumberBuffers=1;

outAudioBufferList.mBuffers[0].mNumberChannels = (uint32_t)self.audioConfig.channelCount;

outAudioBufferList.mBuffers[0].mDataByteSize = self.aMaxOutputFrameSize;

outAudioBufferList.mBuffers[0].mData = malloc(self.aMaxOutputFrameSize);

uint32_t outputDataPacketSize =1;

OSStatus status =AudioConverterFillComplexBuffer(_aConverter,aacEncodeInputDataProc, (__bridgevoid*_Nullable)(self), &outputDataPacketSize, &outAudioBufferList,NULL);

if(status == noErr) {

NSData * rawAAC = [NSDatadataWithBytesNoCopy: outAudioBufferList.mBuffers[0].mDatalength:outAudioBufferList.mBuffers[0].mDataByteSize];

self.manager.timestamp += 1024*1000/self.audioConfig.sampleRate;

return aw_encoder_create_audio_tag((int8_t*)rawAAC.bytes, rawAAC.length, (uint32_t)self.manager.timestamp, &_faacConfig);

}else {

NSLog(@"aac编码错误");

}

return NULL;

}

相关文章

  • iOS音频推流格式转换

    音频采集会得到格式为CMSampleBufferRef的音频包,音频推流一般把音频流转换成flv格式 (1)将音频...

  • iOS音频研究

    [iOS]短音频格式转换 LQQZYY的github ------------------------------...

  • iOS视频推流格式转换

    视频采集会得到格式为CMSampleBufferRef的视频包,视频推流一般把视频流转换成flv格式 (1)首先将...

  • iOS-音频转换

    iOS处理音频过程中有时候需要不同格式的音频进行转换,最近需要将m4a格式的音频转换成wav,在网上搜索之后代码整...

  • iOS直播推流实现-采集

    将最近学习的直播推流技术做个笔记。iOS推流的主要流程如下: 视频音频采集[https://www.jianshu...

  • iOS直播推流实现-音视频编码

    将最近学习的直播推流技术做个笔记。iOS推流的主要流程如下: 视频音频采集[https://www.jianshu...

  • iOS直播推流实现-滤镜

    将最近学习的直播推流技术做个笔记。iOS推流的主要流程如下: 视频音频采集[https://www.jianshu...

  • iOS直播推流实现-推流

    将最近学习的直播推流技术做个笔记。iOS推流的主要流程如下: 视频音频采集[https://www.jianshu...

  • AudioToolbox音频入门(一)

    AudioToolbox, 记录或播放音频,转换格式,解析音频流以及配置音频会话。音频工具箱框架提供了用于记录,回...

  • MP3音频格式转换器的下载使用方法-内附详细图文教程

    MP3音频格式转换器是一种专门用来转换音频格式的工具,通过这款工具可以对音频格式进行转换,将一种格式的音频转换成另...

网友评论

      本文标题:iOS音频推流格式转换

      本文链接:https://www.haomeiwen.com/subject/awttiltx.html