簡體   English   中英

如何將AVCaptureSession.sessionPreset設置為720x1280px(或1 / 1.77比例尺)

[英]How to AVCaptureSession.sessionPreset to 720x1280px(or 1/1.77 scale of anything)

我正在使用swift3,當我使用AVCaptureSessionPresetMedium等時,無法將分辨率更改為自定義值。它不適合屏幕比例(1 / 1.77)。

    let output = AVCaptureVideoDataOutput()

    output.setSampleBufferDelegate(self, queue: sampleQueue)

    let metaOutput = AVCaptureMetadataOutput()
    metaOutput.setMetadataObjectsDelegate(self, queue: faceQueue)

    session.beginConfiguration()

//所需分辨率:720x1280px // session.sessionPreset = AVCaptureSessionPresetMedium;

    if session.canAddInput(input) {
        session.addInput(input)
    }
    if session.canAddOutput(output) {
        output .alwaysDiscardsLateVideoFrames = true;
        session.addOutput(output)
        connection1 = output.connection(withMediaType: AVMediaTypeVideo)
        connection1?.preferredVideoStabilizationMode = AVCaptureVideoStabilizationMode.auto;
        connection1?.videoOrientation = .portrait
        connection1?.isVideoMirrored = true;
    }
    if session.canAddOutput(metaOutput) {
        output .alwaysDiscardsLateVideoFrames = true;
        session.addOutput(metaOutput)
        connection2 = metaOutput.connection(withMediaType: AVMediaTypeMetadata)
        connection2?.preferredVideoStabilizationMode = AVCaptureVideoStabilizationMode.auto;
        connection2?.videoOrientation = .portrait
        connection2?.isVideoMirrored = true
    }

您應該使用AVCaptureSessionPreset1280x720預設。 預設以橫向表示,但1280x720的捕獲設置與720x1280相同,唯一的不同是方向。 例如,對於支持旋轉的應用程序:

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!)
{
    guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }
    cameraImage = CIImage(cvPixelBuffer: pixelBuffer)
    print(cameraImage?.extent ?? "")
}

橫向時將打印(0.0, 0.0, 1280.0, 720.0) (0.0, 0.0, 720.0, 1280.0) ,縱向時將打印(0.0, 0.0, 1280.0, 720.0) (0.0, 0.0, 720.0, 1280.0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM