HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – UIImagePickerController:从视频中获取图像大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从视频中提取帧作为图像.使用UI ImagePickerController记录视频.

录制视频后,我会获取其URL并使用AVURLAsset加载它.然后我创建一个AVAssetReader和AVAssetReaderTrackOutput来获取各个帧.

当我将帧作为CMSampleBufferRef获取时,我将它们传递给Apple的imageFromSampleBuffer方法,该方法应该返回一个UIImage.当我使用AVCaptureSession获取帧时,此方法工作正常,但当我使用通过UIImagePickerController录制的视频时,此行返回0x0:

CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);

其中sampleBuffer是我传递的CMSampleBufferRed.

我通过调试器检查了sampleBuffer的值,看起来没问题(不是0x0). CMSampleBufferGetImageBuffer会返回0x0有什么原因吗?

或者是否有另一种方法从MOV文件提取单个视频帧并将其保存为UIImage?

谢谢.

解决方法

我找到了解决方案.您必须在初始化AVAssetReaderTrackOutput时传递的设置中设置像素格式.

我通过了以下设置字典:

NSString* key = (NSString*)kCVPixelBufferPixelFormatTypeKey;
NSnumber* value = [NSnumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA];
NSDictionary* videoSetTings = [NSDictionary DictionaryWithObject:value forKey:key];

希望这有助于其他人.

大佬总结

以上是大佬教程为你收集整理的ios – UIImagePickerController:从视频中获取图像全部内容,希望文章能够帮你解决ios – UIImagePickerController:从视频中获取图像所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。