Membrane.RTC.Engine.Endpoint.RTSP (Membrane RTC Engine RTSP Endpoint v0.9.0)
View SourceAn Endpoint responsible for connecting to a remote RTSP stream source and sending the appropriate media track to other Endpoints.
Limitations
Currently, only H264 streams are supported.
If the RTSP Endpoint has yet to successfully connect to the stream source,
a reconnect attempt can be made, either by the endpoint itself,
or by calling Membrane.RTC.Engine.Endpoint.RTSP.request_reconnect/2
.
Once connected, however, if RTSP signalling crashes, the endpoint WILL NOT be able
to reconnect, and will shut down instead.
A manual restart of the endpoint will then be needed to restore its functionality.
Note that the RTSP Endpoint is not guaranteed to work when NAT is used
by either side of the connection. By default, the endpoint will attempt to
create client-side NAT binding by sending an empty datagram from client to source,
after the completion of RTSP setup. This behaviour may be disabled by setting
the option :pierce_nat
to false
.
Bin options
Passed via struct Membrane.RTC.Engine.Endpoint.RTSP.t/0
rtc_engine
pid()
Required
PID of parent Enginesource_uri
URI.t()
Required
URI of source streamrtp_port
1..65535
Default value:
20000
Local port RTP stream will be received atmax_reconnect_attempts
non_neg_integer() | :infinity
Default value:
3
How many times the endpoint will attempt to reconnect before hibernatingreconnect_delay
non_neg_integer()
Default value:
15000
Delay (in ms) between successive reconnect attemptskeep_alive_interval
non_neg_integer()
Default value:
15000
Interval (in ms) in which keep-alive RTSP messages will be sent to the remote stream sourcepierce_nat
boolean()
Default value:
true
Whether to attempt to create client-side NAT binding by sending an empty datagram from client to source, after the completion of RTSP setup
Pads
:output
Accepted formats:
Membrane.RTP
Direction: | :output |
Availability: | :on_request |
Summary
Types
Struct containing options for Membrane.RTC.Engine.Endpoint.RTSP
Functions
Returns description of options available for this module
Request that a given RTSP Endpoint attempts a reconnect to the remote stream source.
Types
@type t() :: %Membrane.RTC.Engine.Endpoint.RTSP{ keep_alive_interval: non_neg_integer(), max_reconnect_attempts: non_neg_integer() | :infinity, pierce_nat: boolean(), reconnect_delay: non_neg_integer(), rtc_engine: pid(), rtp_port: 1..65535, source_uri: URI.t() }
Struct containing options for Membrane.RTC.Engine.Endpoint.RTSP
Functions
@spec options() :: keyword()
Returns description of options available for this module
Request that a given RTSP Endpoint attempts a reconnect to the remote stream source.