美文网首页
iOS美颜过后视频方向改变处理方法

iOS美颜过后视频方向改变处理方法

作者: 一__谷__作气 | 来源:发表于2017-04-08 15:05 被阅读984次

    先获得原视频的方向,url为视频路径

    -(NSUInteger)degressFromVideoFileWithURL:(NSURL *)url
    {
        NSUInteger degress = 0;
        
        AVAsset *asset = [AVAsset assetWithURL:url];
        NSArray *tracks = [asset tracksWithMediaType:AVMediaTypeVideo];
        if([tracks count] > 0) {
            AVAssetTrack *videoTrack = [tracks objectAtIndex:0];
            CGAffineTransform t = videoTrack.preferredTransform;
            
            if(t.a == 0 && t.b == 1.0 && t.c == -1.0 && t.d == 0){
                // Portrait
                degress = 90;
            }else if(t.a == 0 && t.b == -1.0 && t.c == 1.0 && t.d == 0){
                // PortraitUpsideDown
                degress = 270;
            }else if(t.a == 1.0 && t.b == 0 && t.c == 0 && t.d == 1.0){
                // LandscapeRight
                degress = 0;
            }else if(t.a == -1.0 && t.b == 0 && t.c == 0 && t.d == -1.0){
                // LandscapeLeft
                degress = 180;
            }
        }
        
        return degress;
    }
    

    然后修改movieWriter的transform属性

            NSInteger a= [self degressFromVideoFileWithURL:self.pathURL];
            CGAffineTransform rotate = CGAffineTransformMakeRotation(a / 180.0 * M_PI );
            movieWriter.transform=rotate;
    

    这样就可以保证美颜之后的视频方向与原视频方向相同。

    相关文章

      网友评论

          本文标题:iOS美颜过后视频方向改变处理方法

          本文链接:https://www.haomeiwen.com/subject/dcblattx.html