首页 文章

iOS - 在设备处于纵向模式时以横向方式捕获视频

提问于
浏览
5

在设备处于纵向模式时,是否可以在横向捕获视频?

这样的事情:

enter image description here

实际上我需要的是以纵向捕捉,但宽度>高度,我不希望用户旋转设备,但我确实想要捕捉像横向模式更广泛的图片 .

只是将预览图层框架更改为宽(宽度>高度)当然不够 .

我尝试更改预览图层的视频方向,但这将旋转图片,这不是我想要的 .

previewLayer.connection.videoOrientation = .landscapeRight

这有什么意义吗?

3 回答

  • 0

    你试过设置previewLayer的重力和界限吗?

    var bounds:CGRect = self.view.layer.bounds
    previewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
    previewLayer?.bounds = bounds
    previewLayer?.position = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds))
    
  • 1

    不可能,因为您必须物理旋转相机 .

    您可以将输出视频CROP到您想要的任何宽高比 .

    但是,这将使您的垂直分辨率最多为您当前的水平分辨率 .

    以及减少你的视野 .

    如果您仍想裁剪视频以实时模拟此"smaller landscape mode"我建议您使用库中的"GPUImageCropFilter" GPUImage

  • 0

    您可以,您需要使用AVAssetWriter并设置输出视频的尺寸 .

    但是,请记住,你将会降低质量 . 如果相机方向是纵向,那么您收到的是一个视频(为了论证)720H x 360W .

    所以你想要制作这种风景,如果你保留宽高比,你最终会得到一个180H x 360W的视频(通过裁剪输入) .

    请记住,相机看到的内容,发送到预览图层的内容以及录制到文件的内容之间存在差异 - 它们都可以彼此独立(您谈到更改预览图层框架,请记住,没有任何内容处理你写的视频) .

相关问题