Avassetwriter的输出(写入视频的UIImages)扭曲[英] Output from AVAssetWriter (UIImages written to video) distorted

本文是小编为大家收集整理的关于Avassetwriter的输出(写入视频的UIImages)扭曲的处理方法,想解了Avassetwriter的输出(写入视频的UIImages)扭曲的问题怎么解决?Avassetwriter的输出(写入视频的UIImages)扭曲问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在使用avassetwriter以将一系列图像编码为电影文件,在这里zoul的答案之后:如何将UiImage数组作为电影导出?.

简而言之,我的过程是:

  • 从.png文件中创建UIImage
  • 从UiImage
  • 获得CGImage
  • 将cgimage转换为cvpixelbuffer(使用zoul的函数pixelbufferfromcgimage)
  • 使用avassetwriterInputpixelBufferAdaptor和AvassetWriter
  • 写入.mov的帧.

在大多数情况下,它在大多数情况下工作,但有时被编码的.mov文件扭曲(参见下图).我想知道这种类型的扭曲图像输出是否熟悉任何人,如果有任何步骤,我可能已经拍摄了将导致此的帧进行编码.当我使用的源代码通过Titanium中的呼叫生成ImageView.toblob()生成时,会出现问题.除了钛方面,任何关于这种结果的暗示可能会出现的任何提示都会很棒!

谢谢, 亚历山大

屏幕来自电影: http://tinypic.com/view.php?pic=8wkqys&s=7

原始图片: http://commons.wikimedia.org/wiki/file:phonopsis_ (aka).jpg

phalaenopsis_(aka)

推荐答案

OK,这结果是具有我正在读取的图像的宽高比与我正在创建的PixelBuffer的宽高比不同的问题.使它们相等,它可以正常工作.

其他推荐答案

请看看这个链接.它说宽度应该是16的倍数.

刚刚获得size.width,计算最接近的数字为16. 并将其代替尺寸.

它有效:)

其他推荐答案

旧线程但不同的答案,而不是乘以一个数字我使用cvpixelbuffergetbytesperrow每行获取cgbitmapcontextcreate的实际字节,它固定失真,留下高度/宽度相同的

本文地址:https://www.itbaoku.cn/post/924324.html