gpt4 book ai didi

ios - GPUImageMovie 不尊重 imageOrientation

转载 作者:可可西里 更新时间:2023-11-01 05:12:03 24 4
gpt4 key购买 nike

我正在使用正在播放电影文件的 GPUImageMovie,该文件是在 iOS 设备上录制的。

但是,当 GPUImageMovie 播放它时,它的方向错误,因此视频不会旋转以正确显示。

如何让它尊重它的方向?我试过修改 OpenGL 代码,但没有成功。

最佳答案

我在使用 GPUImageMovie 播放在 iOS 设备上录制的视频时遇到了同样的问题。我使用以下函数解决了它:

通过传递过滤器来调用此 setRotationForFilter: 方法。 orientationForTrack: 将返回您当前的视频方向。

- (void)setRotationForFilter:(GPUImageOutput<GPUImageInput> *)filterRef {
UIInterfaceOrientation orientation = [self orientationForTrack:self.playerItem.asset];
if (orientation == UIInterfaceOrientationPortrait) {
[filterRef setInputRotation:kGPUImageRotateRight atIndex:0];
} else if (orientation == UIInterfaceOrientationLandscapeRight) {
[filterRef setInputRotation:kGPUImageRotate180 atIndex:0];
} else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {
[filterRef setInputRotation:kGPUImageRotateLeft atIndex:0];
}
}

- (UIInterfaceOrientation)orientationForTrack:(AVAsset *)asset
{
AVAssetTrack *videoTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
CGSize size = [videoTrack naturalSize];
CGAffineTransform txf = [videoTrack preferredTransform];

if (size.width == txf.tx && size.height == txf.ty)
return UIInterfaceOrientationLandscapeRight;
else if (txf.tx == 0 && txf.ty == 0)
return UIInterfaceOrientationLandscapeLeft;
else if (txf.tx == 0 && txf.ty == size.width)
return UIInterfaceOrientationPortraitUpsideDown;
else
return UIInterfaceOrientationPortrait;
}

希望这能解决您的问题。

关于ios - GPUImageMovie 不尊重 imageOrientation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740964/

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