pub struct Video { /* private fields */ }Implementations§
Source§impl Video
impl Video
Sourcepub fn rates(&self) -> Option<RateIter>
pub fn rates(&self) -> Option<RateIter>
Examples found in repository?
examples/codec-info.rs (line 23)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Sourcepub fn formats(&self) -> Option<FormatIter>
pub fn formats(&self) -> Option<FormatIter>
Examples found in repository?
examples/codec-info.rs (line 29)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Methods from Deref<Target = Codec>§
pub unsafe fn as_ptr(&self) -> *const AVCodec
pub fn is_encoder(&self) -> bool
pub fn is_decoder(&self) -> bool
Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
Examples found in repository?
examples/codec-info.rs (line 11)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Sourcepub fn description(&self) -> &str
pub fn description(&self) -> &str
Examples found in repository?
examples/codec-info.rs (line 12)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Sourcepub fn medium(&self) -> Type
pub fn medium(&self) -> Type
Examples found in repository?
examples/codec-info.rs (line 13)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Sourcepub fn id(&self) -> Id
pub fn id(&self) -> Id
Examples found in repository?
examples/codec-info.rs (line 10)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}pub fn is_video(&self) -> bool
pub fn is_audio(&self) -> bool
Sourcepub fn max_lowres(&self) -> i32
pub fn max_lowres(&self) -> i32
Examples found in repository?
examples/codec-info.rs (line 56)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Sourcepub fn capabilities(&self) -> Capabilities
pub fn capabilities(&self) -> Capabilities
Examples found in repository?
examples/transcode-audio.rs (line 41)
8fn filter(
9 spec: &str,
10 decoder: &codec::decoder::Audio,
11 encoder: &codec::encoder::Audio,
12) -> Result<filter::Graph, ffmpeg_rs::Error> {
13 let mut filter = filter::Graph::new();
14
15 let args = format!(
16 "time_base={}:sample_rate={}:sample_fmt={}:channel_layout=0x{:x}",
17 decoder.time_base(),
18 decoder.rate(),
19 decoder.format().name(),
20 decoder.channel_layout().bits()
21 );
22
23 filter.add(&filter::find("abuffer").unwrap(), "in", &args)?;
24 filter.add(&filter::find("abuffersink").unwrap(), "out", "")?;
25
26 {
27 let mut out = filter.get("out").unwrap();
28
29 out.set_sample_format(encoder.format());
30 out.set_channel_layout(encoder.channel_layout());
31 out.set_sample_rate(encoder.rate());
32 }
33
34 filter.output("in", 0)?.input("out", 0)?.parse(spec)?;
35 filter.validate()?;
36
37 println!("{}", filter.dump());
38
39 if let Some(codec) = encoder.codec() {
40 if !codec
41 .capabilities()
42 .contains(ffmpeg_rs::codec::capabilities::Capabilities::VARIABLE_FRAME_SIZE)
43 {
44 filter
45 .get("out")
46 .unwrap()
47 .sink()
48 .set_frame_size(encoder.frame_size());
49 }
50 }
51
52 Ok(filter)
53}More examples
examples/codec-info.rs (line 14)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Sourcepub fn profiles(&self) -> Option<ProfileIter>
pub fn profiles(&self) -> Option<ProfileIter>
Examples found in repository?
examples/codec-info.rs (line 16)
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}Trait Implementations§
impl Copy for Video
impl Eq for Video
impl StructuralPartialEq for Video
Auto Trait Implementations§
impl Freeze for Video
impl RefUnwindSafe for Video
impl Send for Video
impl Sync for Video
impl Unpin for Video
impl UnwindSafe for Video
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more