Gstreamer WebRTC SFU

Nirbheek Chauhan nirbheek.chauhan at gmail.com
Sat Mar 31 06:00:08 UTC 2018


On Fri, Mar 30, 2018 at 10:58 PM, roy_ros <roy.ros.cobo at gmail.com> wrote:
> Thanks for the answer.
>
> My problem is that the browser 2 even it get a media stream it doesnt play.
>
> The structure is like: Browser1 -> webrtcbin1 -> Decoding vp8 ->
> videoconvert -> Coding vp8 -> webrtcbin2 -> Browser2
>
> I dont know what is wrong, the negotiations are okay, and if instead of
> Coding again and send i try to stream it with xvimagesink it works.

One thing to note is that webrtcbin must go to PLAYING only after sink
pads have been requested on it, otherwise it will create an empty SDP.
So when you get the pad-added signal on webrtcbin1, you should create
the `decoder ! videoconvert ! encoder` branch, then create webrtcbin2,
add both to the pipeline, link them, and sync their state with the
parent pipeline.

Then you'll receive on-negotiation-needed and so on for webrtcbin2.

> Btw the negotiation of the webrtcbin2 the offer it has no framerate=30
> option as the first negotiation with webrtcbin1 have.
>
> I have also thought about do simply B1 -> webrtcbin1 -> webrtcbin2 -> B2 but
> i dont think could works right?
>

This should work fine. You should only need to depayload the vp8 and
payload it again without decoding/encoding it.

Hope that helps!

Cheers,
Nirbheek


More information about the gstreamer-devel mailing list