Mobile App/iOS

Swift 4 - 영상처리 관련 코드 주석

bugtype 2019. 3. 9. 15:03

Swift 4 - 영상처리 관련 코드 주석

// 합치기위한
let composition = AVMutableComposition()
// 비디오 불러오기
let vidAsset = AVURLAsset(url: url)
// get video track
let videoTrack = vidAsset.tracks(withMediaType: AVMediaTypeVideo)[0]
// get audio track
let audioTrack = vidAsset.tracks(withMediaType: AVMediaTypeAudio)[0]
// CMTimeRangeMake 시간을 설정함.
let vid_timerange = CMTimeRangeMake(kCMTimeZero, duration)
// 트랙을 추가함. 비디오트랙
let compositionvideoTrack:AVMutableCompositionTrack = composition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: CMPersistentTrackID())





// 비디오 저장 코드
       let documentDir = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
       let path = documentDir.appending("/export.mov")
       let outputURL = URL(fileURLWithPath: path)
       _ = try? FileManager.default.removeItem(at: outputURL)

       guard let presetName = AVAssetExportSession.exportPresets(compatibleWith: asset).first,
           let exportSession = AVAssetExportSession(asset: asset, presetName: presetName) else {
               print("failed to create asset export session")
               completion(nil)
               return
       }
       exportSession.videoComposition = videoComposition
       exportSession.outputFileType = AVFileTypeMPEG4
       exportSession.outputURL = outputURL
       exportSession.exportAsynchronously {
           guard exportSession.status == .completed else {
               print("export failed: \(exportSession.error)")
               completion(nil)
               return
           }
           completion(outputURL)
       }

https://github.com/claygarrett/CustomVideoCompositor

2018.02.26 에 작성된 글입니다.