【问题标题】:GPUImage displaying image instead of live videoGPUImage 显示图像而不是实时视频
【发布时间】:2016-08-20 16:56:14
【问题描述】:

我浏览了 obj-c GPUImage 框架,根据文档中的示例,我添加了以下 sn-p 以显示过滤后的实时视频:

    CGRect mainScreenFrame = [[UIScreen mainScreen] applicationFrame];
    GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

    GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"PositionColor"];
    GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:mainScreenFrame];

    // Add the view somewhere so it's visible
    [self.view addSubview:filteredVideoView];
    [videoCamera addTarget:customFilter];
    [customFilter addTarget:filteredVideoView];

    [videoCamera startCameraCapture];

它有效,但我得到的不是视频,而是一个静止图像。我已经对其进行了审查并查看了示例,但无法真正确定它为什么不能正常工作。任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: objective-c xcode ios7 gpuimage


    【解决方案1】:

    你需要在某个地方挂上你的 GPUImageVideoCamera。如果将上述内容放在方法中,并且为项目启用了 ARC,则 GPUImageVideoCamera 实例将在该方法退出的那一刻被释放。这将终止视频捕获,并可能导致其他令人不安的伪影。

    改为在您的类中创建一个 GPUImageVideoCamera 实例变量,并将其用于上述情况。您还需要这样做,以便在完成后暂停和停止相机。

    【讨论】:

    • 谢谢布拉德。真的很喜欢这个框架,希望我能用它创造一些好东西:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多