zoukankan      html  css  js  c++  java
  • 根据视频地址获取某一帧的图像

    http://blog.fuckbugs.me/category/ios/

     
    //CatchImage.h
     
    #import <Foundation/Foundation.h>
     
    @interface CatchImage : NSObject
     
    /*
     *videoURL:视频地址(本地/网络)
     *time      :第N帧
     */
    + (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time;
    @end
     
    //CatchImage.m
     
    #import "CatchImage.h"
    #import <AVFoundation/AVFoundation.h>
    #import <AVFoundation/AVAssetImageGenerator.h>
    #import <AVFoundation/AVAsset.h>
     
    @implementation CatchImage
     
    + (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
        
        AVURLAsset *asset = [[[AVURLAsset alloc] initWithURL:videoURL options:nil]autorelease];
        NSParameterAssert(asset);
        AVAssetImageGenerator *assetImageGenerator =[[[AVAssetImageGenerator alloc] initWithAsset:asset]autorelease];
        assetImageGenerator.appliesPreferredTrackTransform = YES;
        assetImageGenerator.apertureMode =AVAssetImageGeneratorApertureModeEncodedPixels;
        
        CGImageRef thumbnailImageRef = NULL;
        CFTimeInterval thumbnailImageTime = time;
        NSError *thumbnailImageGenerationError = nil;
        thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError];
        
        if(!thumbnailImageRef)
            NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);
        
        UIImage*thumbnailImage = thumbnailImageRef ? [[[UIImage alloc]initWithCGImage:thumbnailImageRef] autorelease] : nil;
        
        return thumbnailImage;
    }
    @end
  • 相关阅读:
    JSP(一)
    设计模式之UML类图
    Servle原理
    Servlet 浅谈(三)
    Servlet 浅谈(二)
    Servlet 浅谈(一)
    闲聊
    设计模式之装饰器模式
    struts2源码调试环境的搭建
    Github学习
  • 原文地址:https://www.cnblogs.com/q403154749/p/3928118.html
Copyright © 2011-2022 走看看