gpt4 book ai didi

ios - Iphone 在当前帧内旋转视频

转载 作者:行者123 更新时间:2023-11-28 21:42:57 25 4
gpt4 key购买 nike

嗨,我有一个视频宽度 = 720高度 = 1280

因此视频处于人像模式。

我想让视频旋转 90 度。但是想要旋转的视频在相同大小的视频中,即 720,1280。是的视频将被缩放,但我需要这种类型的轮换。

请检查图片之前之后:

这是我的代码:

 CGAffineTransform rotationTransform =  CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90.0));
CGAffineTransform rotateTranslate = CGAffineTransformTranslate(rotationTransform,400,320);
[layerInst setTransform:rotateTranslate atTime:kCMTimeZero];

Before video screenshot After Video screenshot

最佳答案

您可以同时使用缩放、旋转和平移变换,并将每个变换连接到原始 Assets 变换。请针对您的问题尝试以下代码

        // here assetTransform is your AVAssetTrack preferred transform
CGAffineTransform defaultTransfrom = assetTransform;
// rotate 90 degree
CGAffineTransform rotateTransform = CGAffineTransformMakeRotation( M_PI_2);
//get scale factor of resized video
float scaleFactor = videoSize.width/videoSize.height;
CGAffineTransform scaleTransform = CGAffineTransformMakeScale(scaleFactor,scaleFactor);
// get blank Space At Bottom after rotation and scaling
float blankSpaceAtBottom = (videoSize.height-scaleFactor*videoSize.width);
//increase y translation according to scaling factor
float ytranslation = blankSpaceAtBottom/2/scaleFactor;
CGAffineTransform translationTransform = CGAffineTransformMakeTranslation(videoSize.height,ytranslation);
//concat all transform
CGAffineTransform finalTransform = CGAffineTransformConcat(CGAffineTransformConcat(defaultTransfrom,rotateTransform),translationTransform);
finalTransform = CGAffineTransformConcat(finalTransform,scaleTransform);
//apply final transform to layer instruction
[layerInstruction setTransform:finalTransform atTime:kCMTimeZero];

如果您需要更多说明,请告诉我。

关于ios - Iphone 在当前帧内旋转视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com