in Blog Posts, iOS Development

iOS逐帧处理录像-MPVideoProcessor

一般在iOS上做录像都可以直接使用UIImagePickerController。
但有时候难免需要做逐帧的处理,比如实时的滤镜之类的。

参照这个帖子: A (quasi-) real-time video processing on iOS 把使用AVFoundation做录像的代码,做了一个简单的封装。

Delegate可以得到逐帧的彩色或者灰度图,然后就可以加上自己需要的处理了。

代码放在Gihub上:MPVideoProcessor
具体使用请参见Github上的Readme.

Write a Comment

Comment

  1. 你好,请教个问题。

    在代码中设置的帧格式是:kCVPixelFormatType_420YpCbCr8BiPlanarFullRange

    然后在回调函数captureOutput中得到raw数据是:

    Pixel_8 *lumaBuffer = CVPixelBufferGetBaseAddressOfPlane(imageBuffer, 0);

    显示出来是灰度图(只有Y通道,没有UV通道),如果我想显示的是彩色图(YUV420(NV12)),那么应该怎么做呢?

    感谢解惑~

    • Hello, 如果取图像的时候用的是GrayColorSpace,应该只能显示出灰度图的。你可以看看WWDC里面的Capturing from the Camera using AV Foundation on iOS 5这个部分,貌似不是换一个ColorSpace这么直接。我没用过YUV的彩图,如果我搞清楚了再会更新的…

Webmentions

  • 利用iphone/ipad 摄像头判断手机移动方向[MPMotionPattern] 2012/12/22

    […] 需要用到之前的“iOS逐帧处理录像-MPVideoProcessor”。 主要的算法是从TinyMotion这个项目来的,用到的也是他们的算法。 功能很简单,就是通过iPhone摄像头拍摄的图像,判断手机当前的移动方向。 […]