Hey team I have an RTMP pipeline (which I simplified for the purpose of the question):
def handle_init(ctx, socket: socket) do
Logger.info("Starting RTMP pipeline")
structure = [
child(:source, %Membrane.RTMP.Source{
socket: socket,
validator: Membrane.RTMP.DefaultMessageValidator
})
|> child(:demuxer, Membrane.FLV.Demuxer)
|> via_out(Pad.ref(:audio, 0))
# we use a fake sink to terminate the pipeline
|> child(:fake_sink, Membrane.Fake.Sink.Buffers)
]
{[spec: structure, playback: :playing], %{}}
end
Which is served by an TCP server:
{Membrane.RTMP.Source.TcpServer, rtmp_server_options()},
defp rtmp_server_options do
%Membrane.RTMP.Source.TcpServer{
port: rtmp_port(),
listen_options: [
:binary,
packet: :raw,
active: false,
ip: rtmp_ip()
],
socket_handler: fn socket ->
# On new connection a pipeline is started
{:ok, _supervisor, pipeline} = MyPipeline.Pipeline.start_link(socket: socket)
{:ok, pipeline}
end
}
end
This works great, I can initiate an rtmp session using this kind of url for example: rtmp://localhost:5000
Now I'm trying to use url like this: rtmp://localhost:5000?rtmp_id=xxxx or even something like this: rtmp://localhost:5000/xxxx/ So within my pipeline I can get this xxxx and use if for different things (maybe you can think of a filename which could be anice usecase) So far I don't manage to find how I can get this xxxx within my pipeline, happy to know if there is anotherway to do that 😄 ! Thanks