swift - AVAssetReader - Can not decode MOV -
i trying array of frames video. here code:
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*23.973) let context = cicontext() print("asset reader: \(reader.error)") _ in 0..<framecount{ let buff = output.copynextsamplebuffer() if buff == nil{ continue } let pixelbuffer = cmsamplebuffergetimagebuffer(buff!)! 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)) }
when try .mp4 works fine when want use .mov (i need alpha channel) says:
error domain=avfoundationerrordomain code=-11833 "cannot decode" userinfo={nslocalizedfailurereason=the decoder required media cannot found., nsunderlyingerror=0x15e77fb90 {error domain=nsosstatuserrordomain code=-12906 "(null)"}, averrormediatypekey=vide, nslocalizeddescription=cannot decode})
i've tried codecs available in premiere pro supports transparency , pixel formats kcvpixelformattype_32rgba, kcvpixelformattype_32bgra, kcvpixelformattype_32arg , kcvpixelformattype_32abgr still same error. suggestion?
Comments
Post a Comment