【问题标题】:iOS AVFoundation Video Capture Orientation OptionsiOS AVFoundation 视频捕捉方向选项
【发布时间】:2011-10-21 15:32:23
【问题描述】:

我有一个应用程序,我想只为前置摄像头拍摄视频。那没问题。但我希望视频捕捉始终是横向的,即使手机是纵向的。

我有一个基于 Apple 发布的 AVCamDemo 代码的工作实现。借用this tech note 中的信息,我可以指定方向。只有一个技巧:当视频帧的方向正确时,内容仍然看起来好像是纵向拍摄的:

我想知道我是否只是被硬件的物理限制所束缚:图像传感器是否只是这样定位的?上面引用的技术说明做了这样的说明:

重要提示:设置静止图像输出和电影的方向 文件输出不会物理旋转缓冲区。对于电影文件 输出,它将轨道变换(矩阵)应用于视频轨道,因此 电影在播放时旋转,以及用于静止图像输出 它插入图像查看器用来旋转图像的 exif 元数据 稍后查看时正确。

但我对该视频的播放表明并非如此。任何见解或建议将不胜感激!

谢谢, 亚伦。

【问题讨论】:

    标签: ios avfoundation video-capture


    【解决方案1】:

    要回答您的问题,是的,图像传感器就是这样定位的。摄像机是一个大约 1 兆像素的“1080p”摄像机,具有固定的方向。 5MP(或 8MP 用于 4S 等)静态相机也有固定的方向。镜头本身不旋转,任何其他相机位也不旋转,因此馈送本身具有固定的方向。

    “但是等等!”,你说,“我用相机应用程序(或 API)拍摄的照片可以正确旋转。这是为什么呢?”这是因为 iOS 在拍照时会查看手机的方向,并将该信息与图片一起存储(作为 Exif 附件)。然而,视频并没有被如此标记——每个帧都必须单独标记,然后当用户在视频中旋转手机时该怎么做就存在问题......

    所以,不,您不能询问视频流或静止图像在拍摄视频时手机处于什么方向。但是,您可以直接询问手机现在的方向:

    UIDeviceOrientation currentOrientation = [UIDevice currentDevice].orientation;
    

    如果您在视频捕获开始时(或从视频源中抓取静止图像)执行此操作,则可以使用该信息进行自己的播放轮换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多