1

It looks like no matter what AVVideoWidthKey, AVVideoHeightKey, AVVideoCleanApertureWidthKey, AVVideoCleanApertureHeightKey I choose, my video resolution will be either 320x240 or 480x360.

I'm trying to save a video at 480p and all my buffers are 640x480, my session is at AVCaptureSessionPreset640x480, everything is at 640x480 but still my output video is scaled down.

I'm using AVAssetWriterInputPixelBufferAdaptor and the CMSampleBufferRef that I've pass into it it's at 640x480.

I've looked all over Stack Overflow but I haven't found this issue yet being reported. :/

Brock Adams
  • 90,639
  • 22
  • 233
  • 295
Dado
  • 1,147
  • 1
  • 13
  • 31

1 Answers1

6

I use this setting all the time and it works. Here is a code sample.

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];
Steve McFarlin
  • 3,576
  • 1
  • 25
  • 24
  • Ok I've figured out, I was just being stupid, as the any iPhone share utility (youtube, mail, message etc...) did downsampled and downscaled the video automatically. The only way I've found to export the original video is through iPhoto. The code you pasted here is pretty much what I have and it's working well, hence it's a worthy answer for me. – Dado Jan 13 '12 at 18:13