i recording video , saving in application's document folder.i want flip frames of video , save video play in flipped mode mirrored video.i not getting how achieve this. tried flip video saving blank video. here code flip video
nsurl *asseturl = self.outputurl; avasset *movieasset = [avasset assetwithurl:asseturl]; nslog(@"asset: %0.1f",cmtimegetseconds(movieasset.duration)); nslog(@"asset preferred transform %@", nsstringfromcgaffinetransform(movieasset.preferredtransform)); //output composition avmutablecomposition *outputcomposition = [[avmutablecomposition alloc] init]; avmutablecompositiontrack *videotrack = [outputcomposition addmutabletrackwithmediatype:avmediatypevideo preferredtrackid:kcmpersistenttrackid_invalid]; [videotrack inserttimerange:cmtimerangemake(kcmtimezero, movieasset.duration) oftrack:[[movieasset trackswithmediatype:avmediatypevideo] objectatindex:0] attime:kcmtimezero error:nil]; [videotrack setpreferredtransform:cgaffinetransformmakescale(1, -1)]; avmutablevideocompositionlayerinstruction *videolayerinstruction = [avmutablevideocompositionlayerinstruction videocompositionlayerinstructionwithassettrack:videotrack]; [videolayerinstruction settransform:cgaffinetransformmakescale(1, -1) attime:kcmtimezero]; avmutablevideocompositioninstruction *videoinstruction = [avmutablevideocompositioninstruction videocompositioninstruction]; videoinstruction.timerange = cmtimerangemake(kcmtimezero, movieasset.duration); videoinstruction.layerinstructions = [nsarray arraywithobjects:videolayerinstruction, nil]; avmutablevideocomposition *outputvideocomposition = [avmutablevideocomposition videocomposition]; outputvideocomposition.instructions = [nsarray arraywithobjects:videoinstruction, nil]; outputvideocomposition.frameduration = cmtimemake(1, 30); outputvideocomposition.rendersize = cgsizemake(480, 640); //export avassetexportsession *exporter = [[avassetexportsession alloc] initwithasset:outputcomposition presetname:avassetexportpresethighestquality] ; exporter.videocomposition = outputvideocomposition; nsarray *filepath = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes); nsstring *documentsdirectory = [filepath objectatindex:0]; nsstring *newpath = [documentsdirectory stringbyappendingpathcomponent: [nsstring stringwithformat:@"finalvideo-%d.mov",arc4random() % 1000]]; [[nsfilemanager defaultmanager] removeitematpath:newpath error:nil]; exporter.outputurl = [nsurl fileurlwithpath:newpath]; exporter.outputfiletype = avfiletypequicktimemovie; nslog(@"starting export%@",exporter.outputurl); [exporter exportasynchronouslywithcompletionhandler:^(void){ dispatch_async(dispatch_get_main_queue(), ^{ nslog(@"video exported"); nslog(@"%@", newpath); nsurl *newasseturl = [nsurl fileurlwithpath:newpath]; avasset *newmovieasset = [avasset assetwithurl:newasseturl]; nslog(@"new asset %@",newmovieasset); nslog(@"new asset duration: %0.1f",cmtimegetseconds(newmovieasset.duration)); nslog(@"new asset preferred transform %@", nsstringfromcgaffinetransform(newmovieasset.preferredtransform)); uisavevideoatpathtosavedphotosalbum(newpath, nil, nil, nil); }); }];
please help! thanks!
check link.. think want reverse video clip.. worked me..
Comments
Post a Comment