public void Save(string filePath) { Directory.CreateDirectory(Path.GetDirectoryName(filePath)); // Don't serialize DeshakerSesttings unless Deshaker is enabled, but preserve settings within class. MediaEncoderDeshakerSettings S = DeshakerSettings; if (!Deshaker) { DeshakerSettings = null; } using (var writer = new StreamWriter(filePath)) { var serializer = new XmlSerializer(typeof(MediaEncoderSettings)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); XmlWriterSettings ws = new XmlWriterSettings(); // ws.NewLineHandling = NewLineHandling.Entitize; using (XmlWriter wr = XmlWriter.Create(writer, ws)) { serializer.Serialize(wr, this, ns); } writer.Flush(); } if (!Deshaker) { DeshakerSettings = S; } }
public MediaEncoderSettings() { JobIndex = -1; SourceColorMatrix = ColorMatrix.Rec601; SourceChromaPlacement = ChromaPlacement.MPEG2; OutputHeight = 768; Denoise = true; DenoiseSharp = 13; DenoiseRn = 10; Degrain = false; DegrainStrength = 10; DegrainSharp = true; IncreaseFrameRate = true; IncreaseFrameRateValue = FrameRateModeEnum.fps60; IncreaseFrameRatePreset = FrameRatePresetEnum.Slower; UpscaleMethod = UpscaleMethods.SuperXbr; DownscaleMethod = DownscaleMethods.Bicubic; SuperXbrStrength = 27; SuperXbrSharpness = 13; SuperRes = true; SuperRes3Passes = true; SuperResStrength = 100; SuperResSoftness = 0; SSimStrength = 80; SSimSoft = false; TrimStart = 0; ChangeSpeedValue = 100; VideoAction = VideoAction.x265; EncodeQuality = 22; EncodePreset = EncodePresets.medium; AudioQuality = 256; ChangeAudioPitch = false; DeshakerSettings = new MediaEncoderDeshakerSettings(); DeshakerSettings.Segments = new ObservableCollection <MediaEncoderDeshakerSegmentSettings>(); DeshakerSettings.Segments.Add(new MediaEncoderDeshakerSegmentSettings()); }
public void CopyTo(MediaEncoderDeshakerSettings target) { ExtensionMethods.CopyAll <MediaEncoderDeshakerSettings>(this, target); }