Skip to main content

RtmpHandler

Struct RtmpHandler 

Source
pub struct RtmpHandler { /* private fields */ }
Available on crate features ingest and rtmp only.
Expand description

RTMP protocol handler. One instance serves an address; each connection is an independent publish or play session.

Publish (ingest) works through the ProtocolHandler contract alone. Play (egress) additionally needs read access to live streams, which run does not provide, so supply a PlaybackRegistry via with_playback (the bundled Engine implements both). Without it, play requests are answered with a failure status.

Implementations§

Source§

impl RtmpHandler

Source

pub fn new(addr: SocketAddr) -> Self

Create a handler bound to addr (typically 0.0.0.0:1935).

Source

pub fn max_connections(self, max: usize) -> Self

Cap the number of concurrent connections (default 1024).

Source

pub fn with_playback(self, playback: Arc<dyn PlaybackRegistry>) -> Self

Enable play (egress) by providing a PlaybackRegistry to resolve live streams from. Pass the same engine you publish into.

Trait Implementations§

Source§

impl ProtocolHandler for RtmpHandler

Source§

fn name(&self) -> &'static str

Human-readable name (e.g. "rtmp", "hls").
Source§

fn run<'life0, 'async_trait>( &'life0 self, registry: Arc<dyn PublishRegistry>, shutdown: CancellationToken, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Start accepting connections. Implementations should run until the provided shutdown token is cancelled, resolving incoming connections to a StreamKey and forwarding frames through registry.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more