微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 如何从视频中获取最后一帧?

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

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)!

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

解决方法

你可以在Objective-C中获得最后一帧视频,如下所述: –

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoURL options:nil];
    AVAssetimageGenerator *generate = [AVAssetimageGenerator assetimageGeneratorWithAsset:asset];
    generate.appliesPreferredTrackTransform = YES;

    NSError *error;

    int64_t lastFrameTime = CMTimeGetSeconds(asset.duration)*60.0;
    CMTime time = CMTimeMake(lastFrameTime,2);
    CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:nil error:&error];
    UIImage *image = [UIImage imageWithCGImage:imgRef];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐