namespace FileFlows.VideoNodes { public class VideoInfo { public string FileName { get; set; } public List VideoStreams { get; set; } = new List(); public List AudioStreams { get; set; } = new List(); public List SubtitleStreams { get; set; } = new List(); } public class VideoFileStream { /// /// The original index of the stream in the overall video /// public int Index { get; set; } /// /// The index of the specific type /// public int TypeIndex { get; set; } /// /// The stream title (name) /// public string Title { get; set; } = ""; /// /// The codec of the stream /// public string Codec { get; set; } = ""; } public class VideoStream : VideoFileStream { /// /// The width of the video stream /// public int Width { get; set; } /// /// The height of the video stream /// public int Height { get; set; } /// /// The number of frames per second /// public float FramesPerSecond { get; set; } /// /// The duration of the stream /// public TimeSpan Duration { get; set; } } public class AudioStream : VideoFileStream { /// /// The language of the stream /// public string Language { get; set; } /// /// The channels of the stream /// public float Channels { get; set; } /// /// The duration of the stream /// public TimeSpan Duration { get; set; } /// /// The sample rate of the audio stream /// public int SampleRate { get; set; } } public class SubtitleStream : VideoFileStream { /// /// The language of the stream /// public string Language { get; set; } /// /// If this is a forced subtitle /// public bool Forced { get; set; } } }