Video capture with 1:1 aspect ratio in iOS

objective-c, video-capture

Solution

 GPUImageMovie* movieFile = [[GPUImageMovie alloc] initWithAsset:asset];
    GPUImageCropFilter *cropFilter = [[GPUImageCropFilter alloc] initWithCropRegion:CGRectMake(0.0, 0.1, 1.0, 0.8)];

    [movieFile addTarget:cropFilter];
    GPUImageMovieWriter* movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(320.0, 320.0)];

    [cropFilter addTarget:movieWriter];
    [movieWriter startRecording];
    [movieFile startProcessing]; 
    [movieWriter finishRecordingWithCompletionHandler:^{

               NSLog(@"Completed Successfully");
               [cropFilter removeTarget:movieWriter];
               [movieFile removeTarget:cropFilter];
    }];

where

- `asset` is the input movie file.

- `cropRegion` is the area to crop.

- `movieUrl` is the target url to save the cropped movie.

Problem

I want to capture videos with an iOS camera with 1:1 aspect ratio. I tried with `UIImagePickerController`, but it doesn't provide changing aspect ratio. Could anyone give me ideas? Additionally, the iPhone app "Viddy" provides 1:1 aspect ratio video capturing:

Original source