在iOS上录制的视频播放颠倒

在iOS上录制的视频播放颠倒,ios,opengl-es,avassetwriter,Ios,Opengl Es,Avassetwriter,在我的工作中,我通常使用CVOpenGLESTextureCacheCreateTextureFromImage从fob获取缓存纹理。然后我用asssetwriter写了一个mov文件,mov播放效果很好,但视频是颠倒的 我确实在互联网上搜索过,发现我应该对其进行编码: assetWriterInput.transform=CGAffineTransformMakeScale(1.0, -1.0); 它工作得很好,但当我在WindowsXP上玩它时,它仍然是颠倒的。我发现它只在iOS或非苹果操

在我的工作中,我通常使用CVOpenGLESTextureCacheCreateTextureFromImage从fob获取缓存纹理。然后我用asssetwriter写了一个mov文件,mov播放效果很好,但视频是颠倒的

我确实在互联网上搜索过,发现我应该对其进行编码:

assetWriterInput.transform=CGAffineTransformMakeScale(1.0, -1.0);
它工作得很好,但当我在WindowsXP上玩它时,它仍然是颠倒的。我发现它只在iOS或非苹果操作系统上的Quicktime视频播放器上运行良好

那么原因是什么呢?为什么不起作用?

CGAffineTransformMaskScale'只在Mov`容器中设置一些元信息,以便在播放时对视频图像应用一些图像变换。但是,只有Quicktime玩家才尊重此标志

首先,图像是颠倒的,这是因为OpenGL假设图像原点位于左下角,而大多数视频图像格式将其放置在左上角,如果这些假设发生冲突,当然会翻转图像。明智的解决方案是实际翻转图像,而不仅仅是设置此元数据标志


翻转图像很容易,因为您只需在中间步骤中反转扫描线。

这意味着我应该在录制视频之前翻转图像,我使用opengl渲染yup pic,如何反转它?你能给我一些关于反转扫描线的例子吗?@user1586321:你能添加你目前使用的代码吗?这样我就可以看到如何将它添加到你已经拥有的代码中。