我尝试使用AVFoundation和AVAssetWriter编写mp4。
我按如下方式配置压缩:
NSDictionary* compressionSettings = @{ AVVideoAverageBitRateKey : @(1048576),
AVVideoMaxKeyFrameIntervalKey : @(12),
AVVideoProfileLevelKey : AVVideoProfileLevelH264HighAutoLevel,
(NSString*)kVTCompressionPropertyKey_AllowFrameReordering : @(NO),
(NSString*)kVTCompressionPropertyKey_H264EntropyMode : (NSString*)kVTH264EntropyMode_CAVLC
};
AVAssetWriterInput* videoInput = [[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeVideo outputSettings:outputSettings];
虽然这很有效 - 当我分析它告诉我的文件时,熵正在使用2个参考帧,我只需要一个。
AVVideoSettings.h或VTVideoCompressionProperties.h中可用的任何键似乎都没有。
有没有办法以这样的方式配置AVAssetWriterInput,即H.264流只使用1个参考帧?