在iOS中以1:1的宽高比进行视频捕获

ksh*_*ksh 3 video-capture objective-c

我想用iOS相机以1:1的宽高比捕捉视频.

我尝试使用UIImagePickerController,但它没有提供更改的宽高比.有人能给我点子吗?

此外,iPhone应用程序"Viddy"提供1:1宽高比视频拍摄 http://gyazo.com/1ccba9990bb589961f1d5df23b71b84b.png?1364791668

谢谢!

aru*_*t21 5

AVCaptureVideoPreviewLayer *_preview = [AVVideoCaptureVideoPreviewLayer layerWithSession:_session];

_preview.frame = CGRectMake(0,0,320,320);
_preview.videoGravity = AVLayerVideoGravityResizeAspectFill;



NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                               AVVideoCodecH264, AVVideoCodecKey,
                               [NSNumber numberWithInt:320], AVVideoWidthKey,
                               [NSNumber numberWithInt:320], AVVideoHeightKey,
                               AVVideoScalingModeResizeAspectFill,AVVideoScalingModeKey,
                               nil];

self.videoInput = [AVAssetWriterInput assetWriterInputWithMediaType: AVMediaTypeVideo
                                                     outputSettings: videoSettings];


self.videoInput.transform = CGAffineTransformMakeRotation(M_PI);
if([_writer canAddInput:_videoInput]) // AVAssetWriter *_writer
    [_writer addInput:_videoInput];
Run Code Online (Sandbox Code Playgroud)

注意:

_preview的videoGravity和videoSettings AVVideoScalingModeKey应相同,以获得320 x 320的输出.