У меня есть это приложение для камеры, которое я разрабатываю. В какой-то момент я пытаюсь записать видео, поэтому я создаю assetsWriter, и у меня есть эти строки:
CGFloat videoFrameWidth = size.width;
CGFloat videoFrameHeight = size.height;
NSUInteger numPixels = videoFrameWidth * videoFrameHeight;
NSUInteger bitsPerSecond;
NSUInteger bitsPerPixel = 11.4; // This bitrate matches the quality produced by AVCaptureSessionPresetHigh... this was copied from a code from Apple
bitsPerSecond = numPixels * bitsPerPixel;
NSDictionary *videoCompressionSettings = @{AVVideoCodecKey : AVVideoCodecH264,
AVVideoWidthKey : @(videoFrameWidth),
AVVideoHeightKey : @(videoFrameHeight),
AVVideoCompressionPropertiesKey : @{ AVVideoAverageBitRateKey : @(bitsPerSecond),
AVVideoMaxKeyFrameIntervalKey : @(fps)}
};
if ([_assetWriter canApplyOutputSettings:videoCompressionSettings forMediaType:AVMediaTypeVideo])
если я записываю в формате 1080p при 30 кадрах в секунду, этот метод работает отлично, но если я переключаюсь на 720p при 60 кадрах в секунду, эта последняя строка не работает.
AVVideoMaxKeyFrameIntervalKey
? Я думаю, что вы говорите 1 ключевой кадр каждые 60 кадров с этим. - person Rhythmic Fistman   schedule 11.04.2017