[swift] CoreMedia 썸네일 생성

CoreMedia 프레임워크는 iOS 및 macOS에서 미디어 데이터를 효율적으로 처리하기 위한 핵심 라이브러리입니다. CoreMedia를 사용하면 비디오 파일에서 썸네일을 생성하고 사용자 정의 미디어 플레이어에 표시하는 것이 가능합니다.

모든 것이 시작되기 전에 CoreMedia 라이브러리를 프로젝트에 import 해야 합니다.

import CoreMedia

CoreMedia를 사용하여 비디오 파일에서 썸네일을 생성하기 위해서는 CMTime 객체를 사용해야 합니다. CMTime은 시간을 표현하는 CoreMedia 데이터 타입입니다.

다음은 비디오 파일에서 썸네일을 생성하는 방법을 보여주는 예제 코드입니다.

func generateThumbnailForVideo(atURL videoURL: URL, atTime time: Double) -> UIImage? {
    let asset = AVAsset(url: videoURL)
    let assetImageGenerator = AVAssetImageGenerator(asset: asset)
    assetImageGenerator.appliesPreferredTrackTransform = true
    let cmTime = CMTime(seconds: time, preferredTimescale: 100)
    do {
        let cgImage = try assetImageGenerator.copyCGImage(at: cmTime, actualTime: nil)
        return UIImage(cgImage: cgImage)
    } catch {
        print("Error generating thumbnail: \(error.localizedDescription)")
        return nil
    }
}

위의 예제 코드에서, generateThumbnailForVideo 함수는 비디오 파일의 URL과 시간을 입력으로 받아서 해당 시간에 해당하는 썸네일을 반환합니다. CoreMedia의 CMTime을 사용하여 비디오의 특정 시점에서 썸네일을 생성합니다.

이제 CoreMedia를 사용하여 비디오 파일에서 썸네일을 생성하는 방법에 대한 이해가 높아지셨을 것입니다.

참고 문헌: