美文网首页精彩文章iOS Developer
七牛上传视频之后,获取对应秒数的视频截图

七牛上传视频之后,获取对应秒数的视频截图

作者: Chase_Eleven | 来源:发表于2017-08-21 21:52 被阅读51次

    项目需求要获取多个视频的第十秒截图

    百度了一个方法

    // 获取视频第一帧
    - (UIImage*) getVideoPreViewImage:(NSURL *)path
    {
        AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:path options:nil];
        AVAssetImageGenerator *assetGen = [[AVAssetImageGenerator alloc] initWithAsset:asset];
        
        assetGen.appliesPreferredTrackTransform = YES;
        CMTime time = CMTimeMakeWithSeconds(0.0, 600);
        NSError *error = nil;
        CMTime actualTime;
        CGImageRef image = [assetGen copyCGImageAtTime:time actualTime:&actualTime error:&error];
        UIImage *videoImage = [[UIImage alloc] initWithCGImage:image];
        CGImageRelease(image);
        return videoImage;
    }
    

    想当然地把CMTime time = CMTimeMakeWithSeconds(0.0, 600);改成CMTime time = CMTimeMakeWithSeconds(10.0, 600);

    发现效率很低
    废了很多时间去做优化,开线程,回主线程刷界面,巴拉巴拉

    之后查阅了七牛开发文档之后,才发现,七牛给了获取视频截图的接口,
    用文件地址 + vframe/jpg/offset/0 就是取 0秒的截图 。 后边0是秒的单位
    瞬间XXXXX

    [imageView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@?vframe/jpg/offset/10",model.url]]];
    

    这样就OK了!!


    小白总结,欢迎打脸指正

    相关文章

      网友评论

        本文标题:七牛上传视频之后,获取对应秒数的视频截图

        本文链接:https://www.haomeiwen.com/subject/neghdxtx.html