RTMP Pipeline Crash Issues: (MatchError) no match of right hand side value: {:error, :eaddrinuse}

Hi,

I have multiple issues with an RTMP-in to an HLS and RTMP-out pipeline. When using Membrane.Tee.Parallel, it buffers. As per the docs, I understand that:

the slowest output pad dictates the speed of processing data

On switching to Membrane.Tee.PushOutput, the pipeline crashes after a while with a toilet capacity error. What are my options and is there a “best” way to handle this situation?

Also, when the RTMP pipeline crashes, it takes down the entire app with:

** (MatchError) no match of right hand side value: {:error, :eaddrinuse}
(membrane_rtmp_plugin 0.27.3) lib/membrane_rtmp_plugin/rtmp_server/listener.ex:41: Membrane.RTMPServer.Listener.run/1

My understanding is that the RTMP server did not teardown properly when the pipeline crashed and repeated retries hit eaddrinuse, crashing the app. I tried a few supervision hacks but in the best case, the RTMP server stopped accepting connections.

How can I solve this, please?

Hi there, could you provide some code so I can reproduce?

Hey, thank you.

You can check out this repo.

An additional scenario I didn’t mention earlier is that an RTMP sink that is linked in handle_info sends out no data and displays as a black screen to the receiver.