Sorry for my english) Looking for information about read frames from a video with iPhone i found this project, http://www.codza.com/extracting-frames-from-movies-on-iphone/c
In Swift 4 this worked for me with some modifications, mainly changing the "at" parameter of imageGenerator.copyCGImage to a CMTime type:
func showFrame(from file:String) {
let file = file.components(separatedBy: ".")
guard let path = Bundle.main.path(forResource: file[0], ofType:file[1]) else {
debugPrint( "\(file.joined(separator: ".")) not found")
return
}
let url = URL(fileURLWithPath: path)
let image = previewImageForLocalVideo(url: url)
let imgView = UIImageView(image: image)
view.addSubview(imgView)
}
func previewImageForLocalVideo(url:URL) -> UIImage? {
let asset = AVAsset(url: url)
let imageGenerator = AVAssetImageGenerator(asset: asset)
imageGenerator.appliesPreferredTrackTransform = true
let tVal = NSValue(time: CMTimeMake(12, 1)) as! CMTime
do {
let imageRef = try imageGenerator.copyCGImage(at: tVal, actualTime: nil)
return UIImage(cgImage: imageRef)
}
catch let error as NSError
{
print("Image generation failed with error \(error)")
return nil
}
}
override func viewDidLoad() {
super.viewDidLoad()
showFrame(from:"video.mp4")
}
Source