Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func removeAudioFromVideo(_ videoPath: String) {
- let initPath1: String = videoPath
- let composition = AVMutableComposition()
- let inputVideoPath: String = initPath1
- let sourceAsset = AVURLAsset(url: URL(fileURLWithPath: inputVideoPath), options: nil)
- let compositionVideoTrack: AVMutableCompositionTrack? = composition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: kCMPersistentTrackID_Invalid)
- let sourceVideoTrack: AVAssetTrack? = sourceAsset.tracks(withMediaType: AVMediaTypeVideo)[0]
- let x: CMTimeRange = CMTimeRangeMake(kCMTimeZero, sourceAsset.duration)
- _ = try? compositionVideoTrack!.insertTimeRange(x, of: sourceVideoTrack!, at: kCMTimeZero)
- if FileManager.default.fileExists(atPath: initPath1) {
- try? FileManager.default.removeItem(atPath: initPath1)
- }
- let url = URL(fileURLWithPath: initPath1)
- let exporter = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetHighestQuality)
- exporter?.outputURL = url
- exporter?.outputFileType = "com.apple.quicktime-movie"
- exporter?.exportAsynchronously(completionHandler: {() -> Void in
- self.saveFinalVideoFile(toDocuments: exporter!.outputURL!)
- })
- }
- func saveFinalVideoFile(toDocuments url: URL) {
- let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("Videos")
- let movieData = try? Data(contentsOf: url)
- try? movieData?.write(to: fileURL, options: .atomic)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement