2015-09-20 84 views
2

我试图使用AVAssetWriterInput裁剪我在我的应用程序的屏幕录像中阅读的视频。这是我目前的配置。AVAssetWriterInput目前不支持AVVideoScalingModeFit - IOS错误

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


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

NSDictionary *codecSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
           [NSNumber numberWithInt:960000], AVVideoAverageBitRateKey, 
           [NSNumber numberWithInt:1],AVVideoMaxKeyFrameIntervalKey, 
           videoCleanApertureSettings, AVVideoCleanApertureKey, 
           videoAspectRatioSettings, AVVideoPixelAspectRatioKey, 
           AVVideoProfileLevelH264BaselineAutoLevel, AVVideoProfileLevelKey, 
           nil]; 

NSDictionary *videoSettings = @{AVVideoCodecKey:AVVideoCodecH264, 
           AVVideoCompressionPropertiesKey:codecSettings, 
           AVVideoScalingModeKey:AVVideoScalingModeResizeAspectFill, 
           AVVideoWidthKey:[NSNumber numberWithInt:320], 
           AVVideoHeightKey:[NSNumber numberWithInt:480]}; 

_videoWriterInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoSettings]; 

我收到以下错误:“AVAssetWriterInput目前不支持AVVideoScalingModeFit”

这是使用这个库的人常犯的错误,但我无法找到实际解决的办法。我只是看到有人说:“我终于明白了”而不解释它。问题肯定与这一行有关:“AVVideoScalingModeKey:AVVideoScalingModeResizeAspectFill”,它告诉AVAssetWriter裁剪视频并保持宽高比。任何人都知道这个解决方案?

回答

0

本身没有“解决方案”。这只是不受支持。您需要使用核心图像或VTPixelTransferSession或任何适合您的管道的比例来自行缩放视频帧。