#h264 #web-rtc #sdp

h264-profile-level-id

处理H264 profile-level-id值的实用工具

3个版本 (破坏性更新)

0.2.0 2023年12月18日
0.1.1 2020年11月29日
0.1.0 2020年11月29日
0.0.0 2020年10月11日

#118 in 视频

Download history 239/week @ 2024-04-08 230/week @ 2024-04-15 222/week @ 2024-04-22 246/week @ 2024-04-29 398/week @ 2024-05-06 340/week @ 2024-05-13 160/week @ 2024-05-20 272/week @ 2024-05-27 392/week @ 2024-06-03 188/week @ 2024-06-10 136/week @ 2024-06-17 188/week @ 2024-06-24 200/week @ 2024-07-01 220/week @ 2024-07-08 575/week @ 2024-07-15 199/week @ 2024-07-22

1,215 monthly downloads
2个Crates中使用(通过mediasoup

ISC许可证

28KB
563 代码行

h264-profile-level-id

Build Status Crates.io Docs License

由Iñaki Baz Castillo从https://github.com/ibc/h264-profile-level-id移植的Rust风格。

基于Google的libwebrtc C++代码,处理H264 profile-level-id值的Rust实用工具。

基本使用示例

use h264_profile_level_id::{Profile, Level, ProfileLevelId};

fn main () {
    let profile_level_id: ProfileLevelId = "42e01f".parse().unwrap();
    
    assert_eq!(profile_level_id.profile(), Profile::ConstrainedBaseline);
    assert_eq!(profile_level_id.level(), Level::Level31);
    
    let s = profile_level_id.to_string();
    
    assert_eq!(s.as_str(), "42e01f");

    let local_profile_level_id = "42e01f".parse::<ProfileLevelId>().ok();
    let local_level_asymmetry_allowed = true;

    let remote_profile_level_id = "42e015".parse::<ProfileLevelId>().ok();
    let remote_level_asymmetry_allowed = true;

    assert_eq!(
        h264_profile_level_id::generate_profile_level_id_for_answer(
            local_profile_level_id,
            local_level_asymmetry_allowed,
            remote_profile_level_id,
            remote_level_asymmetry_allowed
        ),
        Ok("42e01f".parse::<ProfileLevelId>().unwrap()),
    );
}

贡献

请随意创建问题和发送拉取请求,它们非常受欢迎!

许可证

ISC

依赖项

~0.3–0.8MB
~19K SLoC