【发布时间】:2014-03-04 02:13:37
【问题描述】:
我正在开发一种视频压缩功能;我的想法如下:
- 获取视频的分辨率和比特率。
- 检查视频分辨率。如果它更大 640x480,我会将此视频压缩一半并将比特率调整为 1/4 。例如,如果视频的分辨率为 1920x1080,它将被压缩为 960x540,4mbps 的 1920x1080 将被压缩为 1mbps 的 960x540。
我有几个问题:
- 如何在 iOS 中获取视频的分辨率和码率?
- 如果将1920x1080对半压缩到960x540,码率也会自适应调整,还是需要手动设置码率?怎么能这样?
我尝试了下面的代码来压缩视频,但我不知道它压缩到哪个分辨率:
- (void)convertVideoToLowQuailtyWithInputURL:(NSURL*)inputURL
outputURL:(NSURL*)outputURL
handler:(void (^)(AVAssetExportSession*))handler
{
[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil];
AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset: urlAsset presetName:AVAssetExportPresetLowQuality];
session.outputURL = outputURL;
session.outputFileType = AVFileTypeQuickTimeMovie;
[session exportAsynchronouslyWithCompletionHandler:^(void)
{
handler(session);
}];
}
请给我一些建议。提前致谢。
【问题讨论】:
标签: ios objective-c cocoa-touch avfoundation avassetwriter