AVAssetWriterInput, невозможно выбрать разрешение видео?

Похоже, несмотря ни на что AVVideoWidthKey, AVVideoHeightKey, AVVideoCleanApertureWidthKey, AVVideoCleanApertureHeightKey Я выбираю, мое разрешение видео будет либо 320х240, либо 480х360.

Я пытаюсь сохранить видео в 480p, и все мои буферы 640x480, моя сессия в AVCaptureSessionPreset640x480, все в 640x480, но все же мое выходное видео уменьшено.

я использую AVAssetWriterInputPixelBufferAdaptor и CMSampleBufferRef что я прошел в это, это в 640x480.

Я просмотрел все переполнения стека, но пока не нашел сообщения об этой проблеме.:/

1 ответ

Решение

Я использую этот параметр все время, и он работает. Вот пример кода.

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];
Другие вопросы по тегам