美文网首页
CMSampleBufferRef获取音视频

CMSampleBufferRef获取音视频

作者: 大飞_2048 | 来源:发表于2019-04-17 10:35 被阅读0次

一、获取视频数据

- (NSData*)bufferToData:(CMSampleBufferRef)source

{    CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(source);

    CVPixelBufferLockBaseAddress(imageBuffer,0);

    size_tbytesPerRow =CVPixelBufferGetBytesPerRow(imageBuffer);//

  size_twidth =CVPixelBufferGetWidth(imageBuffer);

    size_theight =CVPixelBufferGetHeight(imageBuffer);

    void*src_buff =CVPixelBufferGetBaseAddress(imageBuffer);

    NSData*data = [NSDatadataWithBytes:src_bufflength:bytesPerRow * height];

    CVPixelBufferUnlockBaseAddress(imageBuffer, 0);

     return data;

}


二、音频数据

-(NSData*) getAudioData: (CMSampleBufferRef)sampleBuffer{

    AudioBufferListaudioBufferList;

    NSMutableData *videoData =[NSMutableData data];

    CMBlockBufferRefblockBuffer;

    CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer,NULL, &audioBufferList,sizeof(audioBufferList),NULL,NULL,0, &blockBuffer);

    for(inty=0; y

        AudioBufferaudioBuffer = audioBufferList.mBuffers[y];

        //void* audio = audioBuffer.mData;//这里获取

        NSData*data1 = [NSDatadataWithBytes: audioBuffer.mData  length:audioBuffer.mDataByteSize];

        [videoDataappendData:data1];

    }

    CFRelease(blockBuffer);

    returnvideoData;

}

相关文章

网友评论

      本文标题:CMSampleBufferRef获取音视频

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