了解 AVCaptureDeviceFormat 是否适合视频录制

Understand if an AVCaptureDeviceFormat suits video recording

在我正在开发的应用程序中,我想让用户选择视频录制的分辨率。由于规范,我不能使用 AVCaptureSessionPreset 个常量。
获取格式列表有3000px以上的分辨率,当然不能用于视频抓取,只能用于照片拍摄。

AVCaptureDeviceFormat: 0x17020c830 'vide'/'420f' 3264x2448, { 2- 30 fps}, HRSI:3264x2448, fov:58.040, max zoom:153.00 (upscales @1.00), AF System:2, ISO:29.0-1856.0, SS:0.000013-0.500000

我找不到查看特定格式是否适合视频录制的方法。
问题是,如果我尝试使用这种分辨率获取视频,应用程序会生成一个异常,指出没有活动或启用的连接。

-[AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:] - no active/enabled connections.

我也不想为每种设备硬编码限制。
我也不能尝试将限制限制为 AVCaptureSessionPresetHigh,因为如 Apple note 中所述,它不是实际的最大格式。
有没有办法了解 AVCaptureDeviceFormat 是否适合抓取视频?

在使用选定的-activeFormat 设置所有连接后检查当前AVCaptureConnection isActive 或使用KVO 观察属性 -active。如果不是,则该格式不可用于视频抓取,如果是,则可以使用。