namespace FileFlows.VideoNodes
{
public class VideoInfo
{
public string FileName { get; set; }
///
/// Gets or sets the bitrate in bytes per second
///
public float Bitrate { get; set; }
public List VideoStreams { get; set; } = new List();
public List AudioStreams { get; set; } = new List();
public List SubtitleStreams { get; set; } = new List();
public List Chapters { 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 bitrate(BPS) of the video stream in bytes per second
///
public float Bitrate { get; set; }
///
/// The codec of the stream
///
public string Codec { get; set; } = "";
///
/// If this stream is an image
///
public bool IsImage { get; set; }
///
/// Gets or sets the index string of this track
///
public string IndexString { get; set; }
///
/// Gets or sets if the stream is HDR
///
public bool HDR { 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; }
}
public class Chapter
{
public string Title { get; set; }
public TimeSpan Start { get; set; }
public TimeSpan End { get; set; }
}
}