首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用AVCaptureSession保存之前修改AVCaptureMovieFileOutput

在用AVCaptureSession保存之前修改AVCaptureMovieFileOutput
EN

Stack Overflow用户
提问于 2012-06-22 15:55:52
回答 1查看 1.5K关注 0票数 3

用例:--我想从相机中捕获输入,在捕获的帧(和声音)之上绘制,并将结果保存为.mov文件。

  • 我看到我可以用AVCaptureSession捕捉相机的输入。
  • 我可以使用.mov将其保存到AVCaptureMovieFileOutput文件中。
  • AVVideoComposition可以用来添加核心动画来播放。我想也是为了录音吧?

问题:我看不出在将输入保存到文件之前如何修改它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-25 19:24:20

RosyWriter几乎是在做我想做的事。将下面的代码添加到captureOutput:didOutputSampleBuffer:fromConnection:使我能够使用Quartz绘制到框架上。

代码语言:javascript
复制
    CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);

    CVPixelBufferLockBaseAddress(pixelBuffer, 0);
    void *pxdata = CVPixelBufferGetBaseAddress(pixelBuffer);
    NSParameterAssert(pxdata != NULL);

    CGSize frameSize = CGSizeMake(self.videoDimensions.width, self.videoDimensions.height);

    CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(pxdata, frameSize.width,
                                                 frameSize.height, 8, 4*frameSize.width, rgbColorSpace, 
                                                 kCGImageAlphaNoneSkipFirst);

    CGContextMoveToPoint(context, 100, 100);
    CGContextAddLineToPoint(context, 200, 200);
    CGContextDrawPath(context, kCGPathStroke);

    CGColorSpaceRelease(rgbColorSpace);
    CGContextRelease(context);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11159819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档