缩放和旋转后合并视频 objective C

Combine videos after scale and rotate objective C

这是我的问题:我想生成一个包含多个视频片段的视频。 对于使用后置摄像头创建的视频,一切正常,但是当我尝试介绍来自自拍相机的视频时,我的屏幕有一半是黑色的。 这是我用来旋转、缩放、重新居中视频的代码。我想我也必须应用其他转换,但我找不到什么..

            CGAffineTransform orientationTransform = videoAssetTrack.preferredTransform;
            CGSize naturalSize = CGSizeApplyAffineTransform(videoAssetTrack.naturalSize, orientationTransform);
            naturalSize.width = fabs(naturalSize.width);
            naturalSize.height = fabs(naturalSize.height);

            // Make sure the video is transformed properly - Apply Aspect Fill
            float scale = naturalSize.width < naturalSize.height ? _renderSize.width / naturalSize.width : _renderSize.height / naturalSize.height;

            CGPoint recenter;
            recenter.x = (_finalSize.width - naturalSize.width * scale) * 0.5;
            recenter.y = (_finalSize.height - naturalSize.height * scale) * 0.5;

            // If orientationTransform rotated the video in a way that changed the orientation, switch recenter
            if ((videoAssetTrack.naturalSize.width > videoAssetTrack.naturalSize.height) != (naturalSize.width > naturalSize.height)) {
                typeof(recenter.x) temp = recenter.x;
                recenter.x = recenter.y;
                recenter.y = temp;
            }    
            CGAffineTransform transform = CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformMakeScale(scale, scale),  CGAffineTransformMakeTranslation(recenter.x, recenter.y)), orientationTransform);

            [layerInstruction setTransform:transform atTime:timeOffset];

您需要分别对纵向和横向进行变换。