2013-07-26 72 views
4

我正在使用AVAssetWriter錄製視頻,並且希望能夠將視頻裁剪成偏移頂部的正方形。這裏是我的代碼 -如何使用AVAssetWriter將視頻裁剪成方形iOS

NSDictionary *videoCleanApertureSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
              @320, AVVideoCleanApertureWidthKey, 
              @320, AVVideoCleanApertureHeightKey, 
              @10, AVVideoCleanApertureHorizontalOffsetKey, 
              @10, AVVideoCleanApertureVerticalOffsetKey, 
              nil]; 


NSDictionary *videoAspectRatioSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
              @3, AVVideoPixelAspectRatioHorizontalSpacingKey, 
              @3,AVVideoPixelAspectRatioVerticalSpacingKey, 
              nil]; 



NSDictionary *codecSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
           [NSNumber numberWithInteger:bitsPerSecond], AVVideoAverageBitRateKey, 
           @1,AVVideoMaxKeyFrameIntervalKey, 
           videoCleanApertureSettings, AVVideoCleanApertureKey, 
           //AVVideoScalingModeFit,AVVideoScalingModeKey, 
           videoAspectRatioSettings, AVVideoPixelAspectRatioKey, 
           nil]; 

NSDictionary *videoCompressionSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
           AVVideoCodecH264, AVVideoCodecKey, 
           codecSettings,AVVideoCompressionPropertiesKey, 
           @320, AVVideoWidthKey, 
           @320, AVVideoHeightKey, 
           nil]; 

每當我去掉了AVVideoScalingModeKey中,我assetWriter給我有關無法應用videoCompressionSettings錯誤。我嘗試使用How do make a reduced size video using AVAssetWriter?,但它仍然不適合我。

回答

5

我將AVVideoScalingModeFit,AVVideoScalingModeKey添加到我的videoCompressionSettings中以使其起作用。

+10

我試過,但我得到「AVAssetWriterInput目前不支持AVVideoScalingModeFit」。任何解決此問題的新解決方案? – jgvb

+1

是比avassetexportsession更快速的avassetwriter嗎? –