Chr*_*kle 6 resolution uiimagepickercontroller ios videoquality
为什么使用UIImagePickerController选择高视频和中等视频质量设置的视频会产生完全相同的视频属性,至少在iPhone4和iPad3等设备上?
细节:
我们正在使用UIImagePickerController让我们的应用程序用户从照片库中选择图像或视频,然后将它们传输到服务器.我们让用户选择我们直接映射到UIImagePickerControllerQualityTypeHigh,UIImagePickerControllerQualityTypeMedium和UIImagePickerControllerQualityTypeLow videoQuality常量的高,中或低视频质量.
当我们使用相机在我们的应用程序外拍摄的10秒左右的视频被选中并在3GS(iOS 5.0)上发送时,我们会看到每个质量设置的明显差异,例如:
当我们在iPhone4或iPad3上尝试相同时(我们碰巧有那些设备很方便;不确定它只发生在那些设备上)我们看到低设置产生等效的低分辨率结果,但高和中等设置给出我们相同的结果,像这样:
(请注意,中高结果是相同的.)
该设备的原始版本为12.8 MB,720x1280,编解码器:AAC H.264,比特率更高.
可以解释一下这里发生了什么吗?我希望能够向我们的客户解释它,甚至更好地指出Apple的文档中涉及到这一点.
在此先感谢任何帮助......
视频质量设置仅适用于捕获视频而不是从视频选择器中拾取视频.该设置清楚地列在下面的捕获设置部分下.
您可以使用以下代码以原始格式导出视频.只需传递所选视频的URL值,该函数将返回导出视频的路径.
+(NSString*) videoAssetURLToTempFile:(NSURL*)url
{
NSString * surl = [url absoluteString];
NSString * ext = [surl substringFromIndex:[surl rangeOfString:@"ext="].location + 4];
NSTimeInterval ti = [[NSDate date]timeIntervalSinceReferenceDate];
NSString * filename = [NSString stringWithFormat: @"%f.%@",ti,ext];
NSString * tmpfile = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
NSURL *outputURL = [NSURL fileURLWithPath:tmpfile];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetHighestQuality];
exportSession.outputURL = outputURL;
exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
[exportSession exportAsynchronouslyWithCompletionHandler:^(void)
{
NSLog(@"Export Complete %d %@ %@", exportSession.status, exportSession.error, outputURL);
[exportSession release];
}];
return tmpfile;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4293 次 |
| 最近记录: |