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: