草庐IT

cmsamplebuffer

全部标签

ios - CIImage 回到 CMSampleBuffer

我使用AVAssetWriter和CMSampleBuffer数据(来自视频、音频输入)录制视频(.mp4文件)。在录制时我想处理帧,我正在将CMSampleBuffer转换为CIImage并对其进行处理。但是如何使用来自CIImage的新处理图像缓冲区更新CMSampleBuffer?funccaptureOutput(_output:AVCaptureOutput,didOutputsampleBuffer:CMSampleBuffer,fromconnection:AVCaptureConnection){ifoutput==videoOutput{letimageBuffer:

ios - CMSampleBuffer 到 Swift 中的字节数组

我正在尝试为多点连接应用程序实现视频流。捕获的帧将由VTCompressionSession压缩,并且正在调用我的回调。现在我的CMSamplebuffer包含一个CMBlockBuffer,我可以提取NALU等,就像这个答案中提到的HowtouseVideoToolboxtodecompressH.264videostream但我正在寻找一种不同的方法。是否可以将CMSampleBuffer的整个字节写入UInt8数组?我能够获取CMSampleBuffer的指针,但如何计算出长度?抱歉我的英语不好,如果有任何问题请告诉我,这是我的第一篇文章。谢谢你 最佳

swift - 由于缓冲区不足,从 AVCaptureDataOutputSynchronizerDelegate 中适当释放缓冲区

我正在使用AVCaptureDataOutputSynchronizerDelegate来处理视频、深度和元数据的捕获数据privateletvideoDataOutput=AVCaptureVideoDataOutput()privateletdepthDataOutput=AVCaptureDepthDataOutput()privateletmetadataOutput=AVCaptureMetadataOutput()因此,使用下面的代码,我能够在AVCaptureDataOutputSynchronizerDelegate使用的委托(delegate)方法中获取特定的视频数据

swift - 使用 CVMetalTextureCacheCreateTextureFromImage 在 Swift 中将 CMSampleBuffer 转换为 CVMetalTexture

我正在尝试建立一个简单的渲染相机输出到Metal层管道,它在Objective-C中工作得很好(有MetalVideoCapture示例应用程序)但是当我试着把它翻译成swift。我的超简单捕获缓冲区看起来像这样(忽略缺乏清理...)funccaptureOutput(captureOutput:AVCaptureOutput!,didOutputSampleBuffersampleBuffer:CMSampleBuffer!,fromConnectionconnection:AVCaptureConnection!){varerror:CVReturn!=nilletsourceIm

ios - 类型 'CMSampleBuffer' 的值没有成员 'imageBuffer'

我目前正在开发一个在Swift中使用实时相机View的项目。我使用在GitHub上找到的一些代码来提供实时摄像头View,它在我运行Mojave的MacBookPro上运行良好。我将所有文件都存储在外部硬盘上,所以我打开我的iMac并开始在那里处理项目。我想我有两个不同版本的Xcode10beta,这可能是问题的一部分?基本上这条线在我的MacBook上运行良好,但在iMac上却不行,顺便说一下,iMac运行的是macOShighSierra版本15:guardletpixelBuffer:CVPixelBuffer=sampleBuffer.imageBufferelse{retur

ios - 使用 ReplayKit 流式传输时从 CMSampleBuffer 保存视频

我正在将我的应用内容流式传输到我的RTMP服务器并使用RPBroadcastSampleHandler。其中一种方法是overridefuncprocessSampleBuffer(_sampleBuffer:CMSampleBuffer,withsampleBufferType:RPSampleBufferType){switchsampleBufferType{case.video:streamer.appendSampleBuffer(sampleBuffer,withType:.video)captureOutput(sampleBuffer)case.audioApp:str

iphone - 从 CVPixelBuffer Reference 获取所需数据

我有一个程序可以实时查看相机输入并获取中间像素的颜色值。我使用captureOutput:方法从AVCaptureSession输出(恰好被读取为CVPixelBuffer)中获取CMSampleBuffer,然后使用以下代码获取像素的rgb值://GetaCMSampleBuffer'sCoreVideoimagebufferforthemediadataCVImageBufferRefimageBuffer=CMSampleBufferGetImageBuffer(sampleBuffer);//LockthebaseaddressofthepixelbufferCVPixelBu

iphone - 从 CVPixelBuffer Reference 获取所需数据

我有一个程序可以实时查看相机输入并获取中间像素的颜色值。我使用captureOutput:方法从AVCaptureSession输出(恰好被读取为CVPixelBuffer)中获取CMSampleBuffer,然后使用以下代码获取像素的rgb值://GetaCMSampleBuffer'sCoreVideoimagebufferforthemediadataCVImageBufferRefimageBuffer=CMSampleBufferGetImageBuffer(sampleBuffer);//LockthebaseaddressofthepixelbufferCVPixelBu

ios - 从 CMSampleBuffer 制作 UIImage

这与关于将CMSampleBuffer转换为UIImage的无数问题不同。我只是想知道为什么我不能像这样转换它:CVPixelBufferRefpixelBuffer=(CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer);CIImage*imageFromCoreImageLibrary=[CIImageimageWithCVPixelBuffer:pixelBuffer];UIImage*imageForUI=[UIImageimageWithCIImage:imageFromCoreImageLibrary];它似

ios - 从 CMSampleBuffer 制作 UIImage

这与关于将CMSampleBuffer转换为UIImage的无数问题不同。我只是想知道为什么我不能像这样转换它:CVPixelBufferRefpixelBuffer=(CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer);CIImage*imageFromCoreImageLibrary=[CIImageimageWithCVPixelBuffer:pixelBuffer];UIImage*imageForUI=[UIImageimageWithCIImage:imageFromCoreImageLibrary];它似