Sobre o projeto
rtmp-rs é uma biblioteca assíncrona de servidor e cliente RTMP escrita em Rust e construída sobre o runtime Tokio. Permite que desenvolvedores ingestem streams ao vivo de codificadores como OBS ou FFmpeg, retransmitam para espectadores, puxem streams de servidores externos ou publiquem em endpoints RTMPS como YouTube e Twitch.
A biblioteca suporta tanto RTMP legado (H.264 e AAC) quanto Enhanced RTMP v2, permitindo codecs modernos como HEVC, AV1, VP9, VP8, Opus, FLAC, AC-3 e E-AC-3. É projetada para lidar gracefulmente com peculiaridades reais de codificadores, incluindo nomes de app vazios e regressões de timestamp.
Principais recursos incluem:
- GOP Caching: Entrega um keyframe imediatamente para espectadores que se juntam tarde.
- Backpressure Handling: Descarta frames de vídeo para assinantes lentos mantendo áudio contínuo.
- Zero-Copy Sharing: Payloads de mídia são passados como bytes::Bytes para compartilhar frames entre assinantes sem cópia.
- Suporte RTMPS: RTMP seguro sobre TLS usando rustls e webpki-roots.
- Extensible Callbacks: O trait RtmpHandler fornece hooks personalizáveis para autenticação, parsing de metadados e processamento por frame.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.