我有一个应用程序,我只想为前置摄像头进行视频捕获。那没问题。但我希望视频捕捉始终是横向的,即使手机处于纵向状态也是如此。
我有一个基于 Apple 发布的 AVCamDemo 代码的工作实现。并借用了中的信息本技术说明 http://developer.apple.com/library/ios/#qa/qa1744/_index.html#//apple_ref/doc/uid/DTS40011134,我能够指定方向。只有一个技巧:虽然视频帧的方向正确,但内容仍然看起来像纵向拍摄的:
我想知道我是否只是受到硬件的物理限制的束缚:图像传感器只是这样定位的吗?上面引用的技术说明做了这样的说明:
重要提示:设置静态图像输出和动画的方向
文件输出不会物理旋转缓冲区。对于电影文件
输出,它将轨道变换(矩阵)应用于视频轨道,以便
影片在播放时旋转,并用于静态图像输出
它插入图像查看器用于旋转图像的 exif 元数据
稍后查看时正确。
但我回放该视频却发现事实并非如此。任何见解或建议将不胜感激!
谢谢,
亚伦.
回答你的问题,是的,图像传感器就是这样定位的。摄像机是大约 1 兆像素的“1080p”摄像机,具有固定方向。 5MP(或 4S 等的 8MP)静态相机也有固定方向。镜头本身不旋转,任何其他相机部件也不旋转,因此馈送本身具有固定方向。
“但是等等!”,你说,“我用相机应用程序(或 API)拍摄的照片可以正确旋转。这是为什么呢?”这是因为 iOS 会在拍照时查看手机的方向,并将该信息与图片一起存储(作为 Exif 附件)。然而,视频并没有如此标记——并且每个帧都必须单独标记,然后存在用户旋转手机时该怎么做的问题during视频....
因此,不,您不能询问视频流或静态图像在捕获视频时手机处于什么方向。但是,您可以直接询问手机的方向now:
UIDeviceOrientation currentOrientation = [UIDevice currentDevice].orientation;
如果您在视频捕获开始时(或从视频源中抓取静态图像时)执行此操作,则可以使用该信息进行自己的播放旋转。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)