Пример #1
0
 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;
 }
Пример #2
0
        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;
        }