aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/FFMpeg/FFProbeResult.cs
blob: cc449991de9390e1bbc7afd4b42690f39231bfd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System.Collections.Generic;

namespace MediaBrowser.Controller.FFMpeg
{
    /// <summary>
    /// Provides a class that we can use to deserialize the ffprobe json output
    /// Sample output:
    /// http://stackoverflow.com/questions/7708373/get-ffmpeg-information-in-friendly-way
    /// </summary>
    public class FFProbeResult
    {
        public IEnumerable<MediaStream> streams { get; set; }
        public MediaFormat format { get; set; }
    }

    public class MediaStream
    {
        public int index { get; set; }
        public string profile { get; set; }
        public string codec_name { get; set; }
        public string codec_long_name { get; set; }
        public string codec_type { get; set; }
        public string codec_time_base { get; set; }
        public string codec_tag { get; set; }
        public string codec_tag_string { get; set; }
        public string sample_fmt { get; set; }
        public string sample_rate { get; set; }
        public int channels { get; set; }
        public int bits_per_sample { get; set; }
        public string r_frame_rate { get; set; }
        public string avg_frame_rate { get; set; }
        public string time_base { get; set; }
        public string start_time { get; set; }
        public string duration { get; set; }
        public string bit_rate { get; set; }

        public int width { get; set; }
        public int height { get; set; }
        public int has_b_frames { get; set; }
        public string sample_aspect_ratio { get; set; }
        public string display_aspect_ratio { get; set; }
        public string pix_fmt { get; set; }
        public int level { get; set; }
        public MediaTags tags { get; set; }
    }

    public class MediaFormat
    {
        public string filename { get; set; }
        public int nb_streams { get; set; }
        public string format_name { get; set; }
        public string format_long_name { get; set; }
        public string start_time { get; set; }
        public string duration { get; set; }
        public string size { get; set; }
        public string bit_rate { get; set; }
        public MediaTags tags { get; set; }
    }

    public class MediaTags
    {
        public string title { get; set; }
        public string comment { get; set; }
        public string artist { get; set; }
        public string album { get; set; }
        public string album_artist { get; set; }
        public string composer { get; set; }
        public string copyright { get; set; }
        public string publisher { get; set; }
        public string track { get; set; }
        public string disc { get; set; }
        public string genre { get; set; }
        public string date { get; set; }
        public string language { get; set; }
    }
}