2013-04-01 79 views

回答

4
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]; 
    }]; 

其中

  • asset是輸入的電影文件。
  • cropRegion是要裁剪的區域。
  • movieUrl是目標URL,即可保存剪裁的電影。
+0

我不知道這個庫。非常感謝! :) – fsh

+0

我嘗試了上面的方法,但它正在採取的很多時間。對於12秒播放影片時超過12秒,修剪......請讓我知道是否有可用來提高速度的任何解決方案。 –

-1

我不認爲這是可能沒有一些應用程序的幫助,這樣做,或者即使它可能與一個應用程序,你可以捕捉那麼視頻它裁剪到1:1

+0

非常感謝您快速響應! 你介意告訴我怎樣裁剪視頻嗎? – fsh

+0

最簡單和免費的我可以記得的是Youtube視頻編輯器,你也可以在谷歌,長單上搜索作物視頻。 :) –

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]; 

注:

_preview的videoGravity和videoSettings AVVideoScalingModeKey應該是相同的,以獲得輸出320×320

+0

謝謝你的回答! – fsh

+0

以上編碼中的自我是什麼?請讓我知道,因爲我認爲這是視頻剪裁的正確解決方案。 –

+0

自我是我的自定義類無我有「CameraRecorder.h .M班」和我有一個屬性AVAssetWriterInput * videoInput。 – arunit21