用于视频录制的ios数码变焦.如何有效实施?

use*_*942 6 iphone objective-c avfoundation ios

我搜索过发现sdk不支持数字放大或缩小,你必须间接地做.我在stackoverflow上找到的方法是转换AVCaputureVideoPreviewLayerwhile录制,并对输出视频执行相应的转换后处理(我现在的想法是使用AVMutableVideoCompositionLayerInstruction's转换渐变功能.).

问题是如何记录用户缩放活动的所有连续过程,我认为这可能是一个非常复杂的放大和缩小行为的神秘感,我的意思是,例如,我设计了一个滑块供用户控制缩放,用户可以让滑块缓慢放大4倍(比如最后3秒),如果没有释放滑块,快速缩小到2X(比如说最后0.5秒),我必须根据时间线记录所有这些变化.

我真的觉得这个记录复杂,此外你还要保证它不会花费太多资源来保持视频录制过程的流畅性能!或者任何其他实现数码变焦的方式?感谢任何助手!

Mar*_*cel 1

您可以AVCaputureVideoPreviewLayer在录制时进行变换,并使用缩放值来操作委托中的帧AVCaptureVideoDataOutput。委托方法captureOutput:didOutputSampleBuffer:fromConnection:可用于处理视频帧。请参阅 AVFoundation 文档AVFoundation 文档、媒体捕获 > 处理视频帧。