2013-03-02 94 views
1

我试图在一个条件下对iOS设备上的实时视频进行采样(以每秒像素为例):以60 fps的速度进行。以60 fps对iOS应用中的实时视频进行下采样

分辨率可能会降低,视频屏幕的视图可能只是一个小矩形(大约200x200px)。结果应该在屏幕上预览。

我一直以优秀的2012年WWDC RosyWriter为例作为起点。 但是经过几个小时的搜索,我找不到一个教程,也没有一个github项目的人已经做了同样的事情,可以解释如何做到这一点。我一遍又一遍地浏览了StackOverflow中的所有相关问题,但都没有取得任何成功。我正在寻找一个代码示例,很好的答案或对这个主题的教程的快速参考。

相关,但仍然没有答案的问题:

回答

1

看一看在GPUImageSimpleVideoFilter例子。

然后消除这样的事情怀旧滤镜只是为了获得一个预览:

videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
GPUImageView *filterView = (GPUImageView *)self.view; 
[videoCamera addTarget:filterView]; 
[videoCamera startCameraCapture]; 

这是什么布拉德的意见建议开始:

videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
GPUImageLanczosResamplingFilter* filter = [[GPUImageLanczosResamplingFilter alloc] init]; 
GPUImageView *filterView = (GPUImageView *)self.view; 
[videoCamera addTarget:filter]; 
[filter forceProcessingAtSize:self.view.frame.size]; 
[filter addTarget:filterView];  
[videoCamera startCameraCapture]; 

从输出过滤器也将被发送到GPUImageMovieWriter。 SimpleVideoFilter示例涵盖了它。

+1

这不会进行任何实际的缩减采样,但是如果您将GPUImageLanczosResamplingFilter与“-forceProcessingAtSize:”一起用于目标图像大小,则应该能够进行快速,高质量的下采样。 – 2013-03-05 22:02:12

+0

我稍微扩展了这个答案,以包含下采样(sans video file writer)。感谢您的建议和框架布拉德。 – 2013-03-05 23:00:33

+0

是的,这应该做的伎俩。 – 2013-03-05 23:02:50

相关问题