oximedia_transcode/presets/
vimeo.rs1use crate::{PresetConfig, QualityMode};
4
5#[must_use]
7pub fn vimeo_sd() -> PresetConfig {
8 PresetConfig {
9 video_codec: Some("h264".to_string()),
10 audio_codec: Some("aac".to_string()),
11 video_bitrate: Some(2_000_000), audio_bitrate: Some(128_000),
13 width: Some(640),
14 height: Some(480),
15 frame_rate: Some((30, 1)),
16 quality_mode: Some(QualityMode::High),
17 container: Some("mp4".to_string()),
18 audio_channel_layout: None,
19 }
20}
21
22#[must_use]
24pub fn vimeo_hd() -> PresetConfig {
25 PresetConfig {
26 video_codec: Some("h264".to_string()),
27 audio_codec: Some("aac".to_string()),
28 video_bitrate: Some(5_000_000), audio_bitrate: Some(192_000),
30 width: Some(1280),
31 height: Some(720),
32 frame_rate: Some((30, 1)),
33 quality_mode: Some(QualityMode::High),
34 container: Some("mp4".to_string()),
35 audio_channel_layout: None,
36 }
37}
38
39#[must_use]
41pub fn vimeo_full_hd() -> PresetConfig {
42 PresetConfig {
43 video_codec: Some("h264".to_string()),
44 audio_codec: Some("aac".to_string()),
45 video_bitrate: Some(10_000_000), audio_bitrate: Some(192_000),
47 width: Some(1920),
48 height: Some(1080),
49 frame_rate: Some((30, 1)),
50 quality_mode: Some(QualityMode::VeryHigh),
51 container: Some("mp4".to_string()),
52 audio_channel_layout: None,
53 }
54}
55
56#[must_use]
58pub fn vimeo_4k() -> PresetConfig {
59 PresetConfig {
60 video_codec: Some("h264".to_string()),
61 audio_codec: Some("aac".to_string()),
62 video_bitrate: Some(40_000_000), audio_bitrate: Some(256_000),
64 width: Some(3840),
65 height: Some(2160),
66 frame_rate: Some((30, 1)),
67 quality_mode: Some(QualityMode::VeryHigh),
68 container: Some("mp4".to_string()),
69 audio_channel_layout: None,
70 }
71}
72
73#[must_use]
75pub fn vimeo_pro() -> PresetConfig {
76 PresetConfig {
77 video_codec: Some("h264".to_string()),
78 audio_codec: Some("aac".to_string()),
79 video_bitrate: Some(20_000_000), audio_bitrate: Some(320_000),
81 width: Some(1920),
82 height: Some(1080),
83 frame_rate: Some((24, 1)), quality_mode: Some(QualityMode::VeryHigh),
85 container: Some("mp4".to_string()),
86 audio_channel_layout: None,
87 }
88}
89
90#[cfg(test)]
91mod tests {
92 use super::*;
93
94 #[test]
95 fn test_vimeo_hd() {
96 let preset = vimeo_hd();
97 assert_eq!(preset.width, Some(1280));
98 assert_eq!(preset.height, Some(720));
99 assert_eq!(preset.video_bitrate, Some(5_000_000));
100 }
101
102 #[test]
103 fn test_vimeo_full_hd() {
104 let preset = vimeo_full_hd();
105 assert_eq!(preset.width, Some(1920));
106 assert_eq!(preset.height, Some(1080));
107 assert_eq!(preset.quality_mode, Some(QualityMode::VeryHigh));
108 }
109
110 #[test]
111 fn test_vimeo_4k() {
112 let preset = vimeo_4k();
113 assert_eq!(preset.width, Some(3840));
114 assert_eq!(preset.height, Some(2160));
115 assert_eq!(preset.video_bitrate, Some(40_000_000));
116 }
117
118 #[test]
119 fn test_vimeo_pro() {
120 let preset = vimeo_pro();
121 assert_eq!(preset.frame_rate, Some((24, 1)));
122 assert_eq!(preset.audio_bitrate, Some(320_000));
123 }
124}