 <p>You can use <strong><code>AVMutableComposition</code></strong> and <strong><code>AVAssetExportSession</code></strong> Which are available in <strong><code>AVFoundation Framework</code></strong></p> <p>For more detail visit apple's reference library <a href="https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVMutableComposition_Class/Reference/Reference.html" rel="nofollow">AVMutableComposition Class Reference</a> and <a href="https://developer.apple.com/library/ios/DOCUMENTATION/AVFoundation/Reference/AVAssetExportSession_Class/Reference/Reference.html#//apple_ref/occ/cl/AVAssetExportSession" rel="nofollow">AVAssetExportSession Class Reference</a></p> <pre><code>AVAsset* asset = // Create your asset with source video url AVMutableComposition *videoComposition = [AVMutableComposition composition]; AVMutableCompositionTrack *compositionVideoTrack = [videoComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; AVAssetTrack *clipVideoTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]; AVMutableVideoComposition* videoComposition = [[AVMutableVideoComposition videoComposition]retain]; videoComposition.renderSize = CGSizeMake(320, 240); videoComposition.frameDuration = CMTimeMake(1, 30); AVMutableVideoCompositionInstruction *instruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction]; instruction.timeRange = CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(60, 30) ); AVMutableVideoCompositionLayerInstruction* transformer = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:clipVideoTrack]; CGAffineTransform finalTransform = // setup a transform that grows the video, effectively causing a crop [transformer setTransform:finalTransform atTime:kCMTimeZero]; instruction.layerInstructions = [NSArray arrayWithObject:transformer]; videoComposition.instructions = [NSArray arrayWithObject: instruction]; CGSize videoSize = myVideoComposition.renderSize; CALayer *parentLayer = [CALayer layer]; CALayer *videoLayer = [CALayer layer]; NSLog(@"%f %f",_playerLayer.frame.origin.x,_playerLayer.frame.size.width); parentLayer.frame = CGRectMake( 0, 0 , cropsize.x , cropsize.y ); [videoLayer setPosition:CGPointMake(videoLayer.position.x, videoSize.height)]; [parentLayer addSublayer:videoLayer]; videoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer]; exporter = [[AVAssetExportSession alloc] initWithAsset:saveComposition presetName:AVAssetExportPresetHighestQuality] ; exporter.videoComposition = videoComposition; exporter.outputURL=url3; exporter.outputFileType=AVFileTypeQuickTimeMovie; [exporter exportAsynchronouslyWithCompletionHandler:^(void){}]; </code></pre>