ios - 如何防止视频流横向旋转 - AVCaptureSession 和 OpenGL

标签 ios video opengl-es

我创建了一个捕获实时视频流的应用程序,使用 OpenGL ES 对视频流进行一些处理,并将其显示在 UIView 的屏幕上

本质上数据流是: AVCaptureSession -> AVCaptureDeviceInput -> AVCaptureVideoDataOutput -> gl buffers -> 绘制到 UIView

我没有使用 AVCaptureVideoPreviewLayer 来显示内容。

当我使用此系统纵向显示视频时,它按预期工作,视频与显示器的方向相同。

但是,我的应用旨在横向使用。在 superview 的 shouldAutorotateToInterfaceOrientation 方法中,我只允许 UIInterfaceOrientationLandscapeLeft 和 UIInterfaceOrientationLandscapeRight。

我的问题是视频流被旋转了。手机横向,视频流旋转 90 度。我希望视频流的方向相同。

我不明白为什么视频流会旋转,我猜这是为了补偿横向模式,但我不知道如何防止这种旋转。有什么想法吗?

谢谢

迈克


感谢 VinceBurn 的回复。

最终我尝试了this post中的方法

并确定了 willRotateToInterfaceOrientation:duration 的示例代码

最佳答案

不知道这是否可行,我只是在这里猜测。

如果没有简单的解决方案,可以尝试在 UIView 层上应用 90° 旋转变换。 (我不喜欢这个想法,但可以工作)

关于ios - 如何防止视频流横向旋转 - AVCaptureSession 和 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992631/

相关文章:

c++ - 在 OpenGL ES 中使用单个 glDrawElement(triangle_strip...) 调用绘制圆角矩形

ios - glReadPixels返回iOS6设备上的空缓冲区

ios - 从第一页或 0 索引向后滑动时如何弹出 UIPageViewController?

html - 将外部链接设置为 youtube iframe 视频

php - YouTube(或其他)视频的强制质量

swift - AVAssetExport 失败 "cannot decode"

C++ QNetworkAccessManager (Qt) 结合 openGL

ios - 如何在IOS 10的快速菜单项中启用小部件

ios - 如何在一个 View Controller 中为 TableView 分配标签值

ios - 使用cpu在后台加载coreml模型