Expand description
§rtp-engine
A pure Rust RTP media engine for VoIP applications.
This crate provides the building blocks for real-time audio communication:
- Codecs: G.711 (μ-law/A-law) and Opus encoding/decoding
- RTP/RTCP: Packet construction, parsing, and statistics
- SRTP: Secure RTP with AES-CM-128-HMAC-SHA1-80
- Audio devices: Cross-platform capture and playback via cpal
- Resampling: Sample rate conversion between codecs and devices
§Quick Start
use rtp_engine::{MediaSession, CodecType};
use std::net::SocketAddr;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let remote: SocketAddr = "192.168.1.100:5004".parse()?;
// Start a media session with G.711 μ-law
let session = MediaSession::start(10000, remote, CodecType::Pcmu).await?;
// The session captures from mic and plays to speaker automatically
// Send DTMF
session.send_dtmf("1");
// Mute/unmute
session.set_mute(true);
// Get statistics
let stats = session.stats();
println!("Packets sent: {}", stats.packets_sent);
// Stop when done
session.stop();
Ok(())
}§Feature Flags
g711(default): G.711 μ-law and A-law codecsopus: Opus codec support (requires libopus)srtp: SRTP/SRTCP encryptiondevice: Audio device capture/playback via cpal
Re-exports§
pub use codec::CodecType;pub use error::Error;pub use error::Result;pub use jitter::JitterBuffer;pub use jitter::JitterConfig;pub use jitter::JitterMode;pub use jitter::JitterStats;pub use resample::f32_to_i16;pub use resample::i16_to_f32;pub use resample::resample_linear;pub use resample::resample_linear_i16;pub use rtp::RtpStats;pub use srtp::SrtpContext;
Modules§
- codec
- Audio codec implementations for RTP media.
- device
- Audio device abstraction for capture and playback.
- error
- Error types for rtp-engine.
- jitter
- Jitter buffer implementations for RTP media.
- resample
- Audio resampling utilities.
- rtp
- RTP (Real-time Transport Protocol) implementation.
- srtp
- SRTP (Secure RTP) implementation per RFC 3711.
Structs§
- Media
Session - A complete RTP media session with bidirectional audio.