Skip to content

Instantly share code, notes, and snippets.

@developer-shubham101
Created February 24, 2022 16:45
Show Gist options
  • Save developer-shubham101/c6eec0163ce4d32a542823a0ded5d801 to your computer and use it in GitHub Desktop.
Save developer-shubham101/c6eec0163ce4d32a542823a0ded5d801 to your computer and use it in GitHub Desktop.
Create Thumbnail from video URL in iOS
//
// ThumbViewController.swift
// UpgradeMySelf-ios
//
// Created by Shubham Sharma on 19/02/20.
// Copyright © 2020 Shubham Sharma. All rights reserved.
//
import UIKit
import AVKit
class ThumbViewController: UIViewController {
@IBOutlet weak var urlField: UITextField!
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
urlField .text = "https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_1280_10MG.mp4"
}
@IBAction func fetch(_ sender: Any) {
DispatchQueue.main.async {
self.getThumbnailFromUrl(self.urlField.text) { (image) in
self.imageView.image = image
}
}
}
fileprivate func getThumbnailFromUrl(_ url: String?, _ completion: @escaping ((_ image: UIImage?)->Void)) {
guard let url = URL(string: url ?? "") else { return }
DispatchQueue.main.async {
let asset = AVAsset(url: url)
print(asset.duration)
let assetImgGenerate = AVAssetImageGenerator(asset: asset)
assetImgGenerate.appliesPreferredTrackTransform = true
let time = CMTimeMake(value: 2, timescale: 1)
do {
let img: CGImage = try assetImgGenerate.copyCGImage(at: time, actualTime: nil)
let thumbnail = UIImage(cgImage: img)
completion(thumbnail)
} catch (let error) {
print("Error :: ", error.localizedDescription)
completion(nil)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment