ios – 如何使用AVAssetWriter缩小尺寸的视频?

我会缩小尺寸的视频,可能是50像素,75像素长.那些是物理层面的.

你如何设定?在影片设置?我认为AVVideoWidthKey和AVVideoHeightKey更适合于不需要物理维度的分辨率.

NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                               AVVideoCodecH264,AVVideoCodecKey,[NSNumber numberWithInt: 320],AVVideoWidthKey,[NSNumber numberWithInt:480],AVVideoHeightKey,nil];
AVAssetWriterInput* writerInput = [[AVAssetWriterInput
                                    assetWriterInputWithMediaType:AVMediaTypeVideo
                                    outputSettings:videoSettings] retain

解决方法

您需要设置视频编解码器参数:
NSDictionary *videoCleanApertureSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                           [NSNumber numberWithInt:320],AVVideoCleanApertureWidthKey,AVVideoCleanApertureHeightKey,[NSNumber numberWithInt:10],AVVideoCleanApertureHorizontalOffsetKey,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,//AVVideoProfileLevelH264Main30,AVVideoProfileLevelKey,nil];





NSString *targetDevice = [[UIDevice currentDevice] model];

NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                               AVVideoCodecH264,codecSettings,AVVideoCompressionPropertiesKey,[NSNumber numberWithInt:320],nil];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...