/// <summary> /// Creates a new file output. /// </summary> /// <returns></returns> public static ObsOutput CreateOutput() { string videoDirectory = $"{FolderService.GetPath(KnownFolder.Videos)}\\{Store.Data.Record.VideoOutputFolder}"; if (Store.Data.Record.RecordedFiles.Count == 0) { Store.Data.Record.LastVideoName = $"ScreenRecording {DateTime.Now:yyyy-MM-dd HH.mm.ss}"; } string videoFileName = Store.Data.Record.LastVideoName + "_part " + (Store.Data.Record.RecordedFiles.Count + 1) + ".mp4"; string videoFilePath = $"{videoDirectory}\\{videoFileName}"; Store.Data.Record.RecordedFiles.Add(new FileInfo(videoFilePath)); Directory.CreateDirectory(videoDirectory); videoFilePath = videoFilePath.Replace("\\", "/"); // OBS uses forward slashes ObsOutput obsOutput = new ObsOutput(ObsOutputType.Dummy, "ffmpeg_muxer", "simple_file_output"); ObsData outputSettings = new ObsData(); outputSettings.SetString("path", videoFilePath); outputSettings.SetString("muxer_settings", "movflags=faststart"); obsOutput.Update(outputSettings); outputSettings.Dispose(); return(obsOutput); }
public void Dispose() { obsOutput?.Dispose(); obsOutput = null; obsVideoEncoder?.Dispose(); obsVideoEncoder = null; obsAudioEncoder?.Dispose(); obsAudioEncoder = null; }