public void StopRecording() { if (null != activeCamera) { HDAdditionalCameraData camData = activeCamera.gameObject.GetComponent <HDAdditionalCameraData>(); camData.flipYMode = HDAdditionalCameraData.FlipYMode.Automatic; } if (encoder != null) { encoder.Release(); encoder = null; } recording = false; }
public void StartRecording() { string path = GlobalState.Settings.videoOutputDirectory; try { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } } catch (Exception) { GlobalState.Instance.messageBox.ShowMessage($"Failed to create directory {path}", 5f); return; } if (!Directory.Exists(path)) { GlobalState.Instance.messageBox.ShowMessage($"Failed to create directory {path}", 5f); return; } encoderConfigs.captureVideo = true; encoderConfigs.captureAudio = false; switch (CameraManager.Instance.OutputResolution) { case CameraManager.VideoResolution.VideoResolution_720p: encoderConfigs.mp4EncoderSettings.videoTargetBitrate = 10240000; break; case CameraManager.VideoResolution.VideoResolution_1080p: encoderConfigs.mp4EncoderSettings.videoTargetBitrate = 10240000 * 2; break; case CameraManager.VideoResolution.VideoResolution_2160p: encoderConfigs.mp4EncoderSettings.videoTargetBitrate = 10240000 * 8; break; } CameraManager.Instance.CurrentResolution = CameraManager.Instance.videoOutputResolution; encoderConfigs.Setup(CameraManager.Instance.CurrentResolution.width, CameraManager.Instance.CurrentResolution.height, 3, (int)AnimationEngine.Instance.fps); encoder = UTJ.FrameCapturer.MovieEncoder.Create(encoderConfigs, System.IO.Path.Combine(path, GlobalState.Settings.ProjectName + "_" + System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"))); if (encoder == null || !encoder.IsValid()) { StopRecording(); return; } recording = true; currentFrame = 0; }