在上传到服务器Swift之前旋转已保存的视频

时间:2018-03-21 10:57:33

标签: ios swift avcapturesession avcapturemoviefileoutput

我需要以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 个答案:

没有答案
相关问题