Il semble que peu importe ce que AVVideoWidthKey
, AVVideoHeightKey
, AVVideoCleanApertureWidthKey
, AVVideoCleanApertureHeightKey
je choisis, ma résolution video sera 320×240 ou 480×360.
J'essaie d'save une video à 480p et tous mes tampons sont 640×480, ma session est à AVCaptureSessionPreset640x480
, tout est à 640×480 mais ma video de sortie est réduite.
J'utilise AVAssetWriterInputPixelBufferAdaptor
et le CMSampleBufferRef
que j'ai passé en 640×480.
J'ai regardé partout Stack Overflow mais je n'ai pas encore trouvé ce problème signalé. : /
J'utilise ce réglage tout le time et ça marche. Voici un exemple de code.
self.compressionProperties = [[[NSMutableDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:params.bps], AVVideoAverageBitRateKey, [NSNumber numberWithInt:params.keyFrameInterval],AVVideoMaxKeyFrameIntervalKey, //videoCleanApertureSettings, AVVideoCleanApertureKey, params.videoProfileLevel, AVVideoProfileLevelKey, nil ] autorelease]; self.videoSettings = [[[NSMutableDictionary alloc] initWithObjectsAndKeys:AVVideoCodecH264, AVVideoCodecKey, [NSNumber numberWithInt:params.outWidth], AVVideoWidthKey, [NSNumber numberWithInt:params.outHeight], AVVideoHeightKey, self.compressionProperties, AVVideoCompressionPropertiesKey, nil] autorelease]; ... wobj.writerInput = [[[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeVideo outputSettings:self.videoSettings] autorelease];