using System; using System.Collections.Generic; using System.IO; using System.Text; namespace FFMpegCore { public class FFOptions : ICloneable { /// /// Working directory for the ffmpeg/ffprobe instance /// public string WorkingDirectory { get; set; } = string.Empty; /// /// Folder container ffmpeg and ffprobe binaries. Leave empty if ffmpeg and ffprobe are present in PATH /// public string BinaryFolder { get; set; } = string.Empty; /// /// Folder used for temporary files necessary for static methods on FFMpeg class /// public string TemporaryFilesFolder { get; set; } = Path.GetTempPath(); /// /// Encoding used for parsing stdout/stderr on ffmpeg and ffprobe processes /// public Encoding Encoding { get; set; } = Encoding.Default; /// /// /// public Dictionary ExtensionOverrides { get; set; } = new Dictionary { { "mpegts", ".ts" }, }; /// /// Whether to cache calls to get ffmpeg codec, pixel- and container-formats /// public bool UseCache { get; set; } = true; /// object ICloneable.Clone() => Clone(); /// /// Creates a new object that is a copy of the current instance. /// public FFOptions Clone() => (FFOptions)MemberwiseClone(); } }