Skip to main content

ybd_core/model/
quality.rs

1//! 视频与音频清晰度及编码枚举定义
2
3use clap::ValueEnum;
4
5#[derive(ValueEnum, Copy, Clone, Debug, PartialEq, Eq)]
6pub enum VideoQuality {
7        K8 = 127,
8        K4 = 120,
9        FHD1080P60 = 116,
10        FHD1080P = 80,
11        HD720P = 64,
12        SD480P = 32,
13        LD360P = 16,
14}
15
16#[derive(ValueEnum, Copy, Clone, Debug)]
17pub enum VideoEncode {
18        AVC,  // H.264,兼容性最好
19        HEVC, // H.265,压缩率更高
20        AV1,  // AV1,最新,压缩率最高
21}
22
23impl VideoEncode {
24        pub fn as_str(&self) -> &'static str {
25                // 过滤时通过start_with
26                match self {
27                        Self::AVC => "avc",
28                        Self::HEVC => "hev",
29                        Self::AV1 => "av01",
30                }
31        }
32}
33
34#[derive(ValueEnum, Copy, Clone, Debug, PartialEq, Eq)]
35pub enum AudioQuality {
36        HiRes = 30251,  // Hi-Res 无损
37        Dolby = 30250,  // 杜比全景声
38        High = 30280,   // 192kbps
39        Medium = 30232, // 132kbps
40        Low = 30216,    // 64kbps
41}