了解如何使用 cinematic video api,让你的 app 轻松拍摄大片感满屏的精彩视频。我们将介绍如何配置电影效果拍摄会话,并讲解构建视频拍摄 ui 的基本知识。我们还将探索高级电影效果功能,例如应用景深效果来实现动态跟踪拍摄和巧妙的焦点切换。

视频封面
视频地址

此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com

在应用中录制电影效果视频:全面解析 Cinematic Video API

电影效果视频已成为现代移动设备的重要拍摄功能,通过专业的浅景深效果和智能对焦技术,让普通用户也能拍摄出电影质感的视频。苹果在 WWDC 上发布的 Cinematic Video API 为开发者提供了将这些专业功能集成到应用中的机会。

电影效果视频的核心价值

电影效果视频的核心在于其模仿专业电影拍摄手法,特别是焦点转移和跟踪对焦技术的应用。通过浅景深效果,开发者可以将观众的注意力引导至场景中的关键主体,增强叙事感染力。传统上,这些对焦技术需要专业人员操作,而电影效果视频通过智能算法极大地简化了这一过程。

电影效果视频的智能特性包括:

  • 自动识别进入画面的主体并跟踪对焦
  • 主体移开视线时自动转移焦点
  • 适时将焦点回归至原始主体

构建电影效果拍摄会话的完整流程

使用 Cinematic Video API 构建电影效果视频拍摄功能需要遵循特定的设置流程:

设备与格式选择

首先需要选择支持电影效果的设备。电影效果视频支持后置双广角摄像头和原深感摄像头,可以通过以下代码查找设备:

let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualWideCamera], mediaType: .video, position: .back)

选择设备后,必须确保使用支持电影效果的格式:

for format in camera.formats {
    if format.isCinematicVideoCaptureSupported {
       try! camera.lockForConfiguration()
       camera.activeFormat = format
       camera.unlockForConfiguration()
       break
    }
}

音频输入配置

专业的视频拍摄离不开高质量的音频录制:

let audioDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes [.microphone], mediaType: .audio, position: .unspecified)

启用电影效果的关键步骤

在输入配置中启用电影效果是核心步骤:

if (videoInput.isCinematicVideoCaptureSupported) {
  videoInput.isCinematicVideoCaptureEnabled = true
}

输出与预览配置

配置输出时,可以考虑添加视频稳定功能:

if let connection = movieFileOutput.connection(with: .video), 
    connection.isVideoStabilizationSupported {
    connection.preferredVideoStabilizationMode = .cinematicExtendedEnhanced
}

预览层的设置可以使用 SwiftUI 实现:

struct CameraPreviewView: UIViewRepresentable {
    func makeUIView(context: Context) -> PreviewView {
        return PreviewView()
    }
}

高级控制功能详解

Cinematic Video API 提供了丰富的高级控制功能,让开发者能够精细调整拍摄效果。

虚化强度调整

通过 simulatedAperture 属性可以调整虚化强度:

open class AVCaptureDeviceInput : AVCaptureInput {
    open var simulatedAperture: Float
}

焦点控制方法

API 提供了三种手动对焦方式:

  1. 按检测对象 ID 对焦
  2. 按视图点对焦
  3. 固定焦点对焦

示例代码展示了如何按视图点对焦:

open func setCinematicVideoTrackingFocus(at point: CGPoint, focusMode: AVCaptureDevice.CinematicVideoFocusMode)

光线监测

在低光环境下提供用户反馈十分重要:

observation = camera.observe(\.cinematicVideoCaptureSceneMonitoringStatuses) { _, value in
    if let newStatuses = value.newValue {
        if newStatuses.contains(.notEnoughLight) {
            // 更新UI提示"光线不足"
        }
    }
}

应用场景与最佳实践

开发者应考虑以下应用场景:

  • 专业视频拍摄应用
  • 社交媒体视频创作工具
  • 教育类视频录制应用
  • 企业视频会议增强功能

最佳实践包括:

  • 提供虚化强度调整滑块
  • 在低光条件下提示用户
  • 实现多种对焦模式切换
  • 保存元数据以供后期编辑

未来展望与资源

随着 Cinematic Video API 的推出,开发者现在可以在应用中实现以往只有专业设备才能完成的电影效果视频拍摄。这一技术的开放将为移动视频创作带来更多可能性。

开发者可以参考以下资源深入学习和应用这一技术:

相关视频

利用拍摄控件提升你的相机体验
打造出色的锁定屏幕相机拍摄体验
在 iPadOS App 中支持外部摄像头
打造更流畅的相机体验
探索 tvOS 连续互通相机

文档

AVFoundation
Cinematic