Поворот сохраненного видео перед загрузкой на сервер Swift

У меня есть требование записать видео в формате mp4 и отправить на сервер AWS. Ниже приведен код, используемый для того же.

 lazy var frontCameraDevice: AVCaptureDevice? = {
    let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [AVCaptureDevice.DeviceType.builtInDuoCamera, AVCaptureDevice.DeviceType.builtInWideAngleCamera, AVCaptureDevice.DeviceType.builtInTelephotoCamera], mediaType: AVMediaTypeVideo, position: AVCaptureDevice.Position.front).devices
    return devices?.filter{$0.position == .front}.first
}()

lazy var micDevice: AVCaptureDevice? = {
    return AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio)
}()

var movieOutput = AVCaptureMovieFileOutput() 

func record() {
        captureSession.beginConfiguration()
        captureSession.sessionPreset = AVCaptureSessionPresetHigh

        // add device inputs (front camera and mic)
        captureSession.addInput(deviceInputFromDevice(device: frontCameraDevice))
        captureSession.addInput(deviceInputFromDevice(device: micDevice))

        // add output movieFileOutput
        movieOutput.movieFragmentInterval = kCMTimeInvalid
        captureSession.addOutput(movieOutput)

        // start session
        captureSession.commitConfiguration()

        recordVideoView.backgroundColor = UIColor.clear
        videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        videoPreviewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
        videoPreviewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.landscapeRight
        videoPreviewLayer?.frame = view.layer.bounds
        cameraView.layer.addSublayer(videoPreviewLayer!)
        captureSession.startRunning()
}


func capture(_ output: AVCaptureFileOutput!, didFinishRecordingToOutputFileAt outputFileURL: URL!, fromConnections connections: [Any]!, error: Error!) {
    if (error == nil)
    {
        transferDetail.videoUrl = outputFileURL
        transferDetail.videoTiming = NSNumber(integerLiteral: (15 - countdownValue == 0) ? 1 : 15 - countdownValue)
    }
}

Видео записывается в ландшафтном режиме и сохраняется во временную папку. Видео сохраняется в ландшафтном режиме и воспроизводится в портретном режиме. Я хочу повернуть видео на 90 градусов перед отправкой на сервер. Пожалуйста, предоставьте быстрый код для поворота видео.

Я нашел аналогичный пост с кодом Objective C. Любой быстрый код очень заметен.

0 ответов

Другие вопросы по тегам