如何获取视频的最后一帧?

Poo*_*hah 5 video ios swift

我想要视频的最后一帧,我的代码如下所示:

let asset : AVURLAsset = AVURLAsset(URL: videoURL, options: nil)
    let generate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
    generate.appliesPreferredTrackTransform = true

    var err : NSError? = nil
    var lastFrameTime = Int64(CMTimeGetSeconds(asset.duration))
    let time : CMTime = CMTimeMake(lastFrameTime, 30)
    let imgRef : CGImageRef = generate.copyCGImageAtTime(time, actualTime: nil, error: &err)
    let img : UIImage = UIImage(CGImage: imgRef)!
Run Code Online (Sandbox Code Playgroud)

但我没有得到最后一帧,我得到了第一帧,请为我提供解决方案。

Poo*_*hah 2

我已经解决了这个问题,为了仅从视频中获取最后一帧,代码如下:

  let asset : AVURLAsset = AVURLAsset(URL: videoURL, options: nil)
    let generate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
    generate.appliesPreferredTrackTransform = true

    var err : NSError? = nil
    var lastFrameTime = Int64(CMTimeGetSeconds(asset.duration)*60.0)
    let time : CMTime = CMTimeMake(lastFrameTime, 2)
    let imgRef : CGImageRef = generate.copyCGImageAtTime(time, actualTime: nil, error: &err)
    let img : UIImage = UIImage(CGImage: imgRef)!
Run Code Online (Sandbox Code Playgroud)

这就是我在 img 变量中获取视频的最后一个图像的方法。