Új hozzászólás Aktív témák

  • kemkriszt98

    aktív tag

    Sziasztok.
    Egy videót próbálok frame-ekre bontani. Itt a kódom:

    private class func videoToFrames(name:String, vExtension ext: String)->[UIImage]?{
    do{

    var frames = [UIImage]()

    let url = NSBundle.mainBundle().URLForResource(name, withExtension: ext, subdirectory: "Assets")!
    let asset = AVAsset(URL: url)
    let reader = try AVAssetReader(asset: asset)
    let output = AVAssetReaderVideoCompositionOutput(videoTracks: asset.tracksWithMediaType(AVMediaTypeVideo), videoSettings: nil)
    output.videoComposition = AVVideoComposition(propertiesOfAsset: asset)
    reader.addOutput(output)
    reader.startReading()

    let frameCount = Int(asset.duration.seconds*fps)
    let context = CIContext()

    print("Asset reader: \(reader.error)")
    for _ in 0..<frameCount{
    let buff = output.copyNextSampleBuffer()
    if buff == nil{

    continue
    }
    let pixelBuffer = CMSampleBufferGetImageBuffer(buff!)! as CVPixelBuffer
    let ciImage = CIImage(CVPixelBuffer: pixelBuffer)
    let cgImgRef = context.createCGImage(ciImage, fromRect: CGRectMake(0, 0, CGFloat(CVPixelBufferGetWidth(pixelBuffer)), CGFloat(CVPixelBufferGetHeight(pixelBuffer))))
    frames.append(UIImage(CGImage: cgImgRef))
    }
    return frames
    }catch{
    print(error)
    return nil
    }
    }

    .mp4 fájlokkal működik de nekem .mov kellene az aplha channel miatt. Arra viszont azt a hibaüzenetet kapom, hogy:

    Error Domain=AVFoundationErrorDomain Code=-11833 "Cannot Decode" UserInfo={NSLocalizedFailureReason=The decoder required for this media cannot be found., NSUnderlyingError=0x15e77fb90 {Error Domain=NSOSStatusErrorDomain Code=-12906 "(null)"}, AVErrorMediaTypeKey=vide, NSLocalizedDescription=Cannot Decode})

    Google-on nem találok semmi használhatót... próbáltam a pixel formatokat állítgatni de az sem segített. Esetleg valami ötlet?

    "Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-

Új hozzászólás Aktív témák