J'ai CVPixelBufferRef
à partir d'un AVAsset
. J'essaye d'appliquer un CIFilter
à lui. J'utilise ces lignes:Système de coordonnées CoreImage
CVPixelBufferRef pixelBuffer = ...
CVPixelBufferRef newPixelBuffer = // empty pixel buffer to fill
CIContex *context = // CIContext created from EAGLContext
CGAffineTransform preferredTransform = // AVAsset track preferred transform
CIImage *phase1 = [CIImage imageWithCVPixelBuffer:pixelBuffer];
CIImage *phase2 = [phase1 imageByApplyingTransform:preferredTransform];
CIImage *phase3 = [self applyFiltersToImage:phase2];
[context render:phase3 toCVPixelBuffer:newPixelBuffer bounds:phase3.extent colorSpace:CGColorSpaceCreateDeviceRGB()];
Malheureusement, le résultat obtenu est incorrect. Par exemple, une vidéo capturée en mode portrait est à l'envers. Je suppose que le problème est en allant de AVAsset
à CoreImage
système de coordonnées (montrant un aperçu en XCode pour phase2 présente également un résultat incorrect). Comment le réparer?
vous avez réussi à jamais comprendre comment fixer l'orientation des vidéos portrait? Je vois la même chose et je n'arrive pas à comprendre s'il y a simplement un paramètre à régler –
C'était il y a quelque temps donc je ne m'en souviens pas exactement, mais je suppose que j'ai codé en dur comme vous l'avez fait dans votre réponse. –