Objective c 减小AVCaptureMovieFileOutput文件的大小
我在MacOSX中使用AVFoundation实现了一个录像机。要将输出写入文件,我使用的是AVCaptureFileOutput对象。录制30秒的视频时,输出文件的大小达到3MB,这是巨大的。我已将捕获会话预设设置为AVCaptureSessionPresetMedium。我对添加设置感到困惑Objective c 减小AVCaptureMovieFileOutput文件的大小,objective-c,avfoundation,Objective C,Avfoundation,我在MacOSX中使用AVFoundation实现了一个录像机。要将输出写入文件,我使用的是AVCaptureFileOutput对象。录制30秒的视频时,输出文件的大小达到3MB,这是巨大的。我已将捕获会话预设设置为AVCaptureSessionPresetMedium。我对添加设置感到困惑 NSDictionary*videoCompressionSettings=[NSDictionary Dictionary Withinteger:264*1000],AVVideoCodecH264
NSDictionary*videoCompressionSettings=[NSDictionary Dictionary Withinteger:264*1000],AVVideoCodecH264,AVVideoCodecKey[NSDictionary Dictionary Withinteger:264*1000],AVVideoAverageBitRateKey,
[NSNumber numberWithInteger:30],AVVideoMaxKeyFrameIntervalKey,
AVVideoProfileLevelH264基线30,AVVideoProfileLevelKey,
AVVideoQualityKey,nil],avvideocompressionproperties key,nil]代码>
使用其setOutputSettings:forConnection:(AVCaptureConnection*)>
请在这方面帮助我。您可以使用sessionPreset属性更改分辨率
视频输入预设
NSString *const AVCaptureSessionPreset640x480
使用此代码
if ([self.captureSession canSetSessionPreset:AVCaptureSessionPreset640x480]) {
[self.captureSession setSessionPreset:AVCaptureSessionPreset640x480];
}
请参阅此文件,这里是一些更改文件输出平均比特率的示例代码(在我的示例中,我使用了AVCaptureMovieFileOutput)
通过提供输出的比特率,您可以简单地控制这一点
AVCaptureMovieFileOutput
.setOutputSettings([AVVideoCompressionPropertiesKey : [AVVideoAverageBitRateKey : 400000]])
我浪费了很多时间,因为当我不得不将其嵌套在AVVideoCompressionPropertiesKey下时,我直接尝试添加比特率密钥属性。您的要求是什么?我希望更改上述设置将有助于减小文件大小。您的平均比特率从何处获得264*1000?这将在短时间内更改视频与压缩或帧速率非常不同的方式。这也不一定是下采样。@Uchiugaka在哪方面不同?你认为哪一种质量更好?
AVCaptureMovieFileOutput
.setOutputSettings([AVVideoCompressionPropertiesKey : [AVVideoAverageBitRateKey : 400000]])