Can i bypass playbin3's decoding part of the pipeline? or should i make a custom pipeline to emulate it?

Hello everyone, i am new to gstreamer and I’ve started using it a month ago.

My project is basically that I have 3 rtsp chanells that I shoot out of gstreamer.

Those chanells have a playlist in each of them which is different.

I add videos to these playlists using a different server and a relay node js

The relay node js spawns the python gstreamer processes and sends the streams.

at the moment my pipeline goes like this:

GcloudBucket(MP4)->Server->NodeJS Relay-> Python subprocess->uridecodebin3(strict caps passthrough)->multiqueue->input-selector->tee->streamsynchroniser->final queue->rtsp sink

and I use 2 uridecodebin3’s and with the input selector I switch them after preloading the other decoder ofc

and I’m using tee and streamsync because on one of the rtsp chanells I have audio aswell.

Since this is providing issues with gapless playback and requires a full custom pipeline(what I want is for the videos to be stitched perfectly with no gaps or freezes) I am thinking of using playbin3, but throughout all my tests with flags etc. i could not get it to do simple passthrough.

All my videos are already pre-encoded in h264 and opus for webrtc streaming (after rtsp we mediamtx to webrtc HTTP whep)

So my question is kind of double-layered.

Should I keep working on this custom pipeline? and if so do you have any tips to make it better? because I am getting freezes and not found etc

and

Is there a passthrough mode for playbin3? if there is how do I access it? (in my mind there should be since it uses uridecodebin3 which allows passthrough with strict caps)

Thank you for reading through this and if there are any tips I would gladly appreciate them.

P.S I don’t know how to produce a dot file from a dockerized environment (hehe I’m dum) so I cant show you the full pipeline. if I do find out I will post it under this thread.