Sending multiple video streams using webrtcbin

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Sending multiple video streams using webrtcbin

hetelek
Hi,

I hope this is an appropriate place to ask webrtcbin questions! :)

I have a pipeline using webrtcbin successfully sending video to a mobile app! It looks something like this:
myvideosrc -> ... -> webrtcbin

It's working great for a single video stream, but now I'm trying to send multiple video streams using webrtcbin to the mobile app. I've tried linking an additional src to my webrtcbin:
myvideosrc -> ... -> webrtcbin
videotestsrc -> ... ----^

When I do this, only 1 stream comes thru to the phone. By looking at the SDP answer that webrtcbin is generating, it is only responding with 1 stream in the answer. I know both pipelines work individually, but I cannot get both streams to come thru at the same time.

I'm not sure if it's an issue with how the mobile app is sending it's offer (does it need to offer to receive 2 streams?), or how I'm handling on the webrtcbin side? Any help would be appreciated.

Thank you!

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Sending multiple video streams using webrtcbin

Matthew Waters
Yes, in order for webrtcbin to answer with sending two streams, the original offer must have two streams to receive.

There was also an issue in webrtcbin at some point with multiple similar streams being confused for each other (at offer/answer creation) that was fixed a little while ago.  I can't remember the details off the top of my head though :).

Cheers
-Matt

On 20/8/20 11:51 am, Stergios Hetelekides wrote:
Hi,

I hope this is an appropriate place to ask webrtcbin questions! :)

I have a pipeline using webrtcbin successfully sending video to a mobile app! It looks something like this:
myvideosrc -> ... -> webrtcbin

It's working great for a single video stream, but now I'm trying to send multiple video streams using webrtcbin to the mobile app. I've tried linking an additional src to my webrtcbin:
myvideosrc -> ... -> webrtcbin
videotestsrc -> ... ----^

When I do this, only 1 stream comes thru to the phone. By looking at the SDP answer that webrtcbin is generating, it is only responding with 1 stream in the answer. I know both pipelines work individually, but I cannot get both streams to come thru at the same time.

I'm not sure if it's an issue with how the mobile app is sending it's offer (does it need to offer to receive 2 streams?), or how I'm handling on the webrtcbin side? Any help would be appreciated.

Thank you!

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Sending multiple video streams using webrtcbin

Matthew Waters
Correct, that is one video stream.

You need as many m= lines as streams that are going to be transmitted.

On 21/8/20 12:47 pm, Stergios Hetelekides wrote:
Thanks for the info - I think I found the commit that you're talking about https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/bd92b2f7c4f28b6fac854ddbdae08b821adb55c4
I'm using GStreamer 1.14 (hoping to bump to 1.18 soon), so definitely could be related to that.

Would you know where I can find an example sdp offer offering to receive multiple video streams? The offer from my app looks like this, which I don't think is offering to receive multiple streams?
v=0
o=- 4844745111013802911 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 123 125 122 124
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:rhZo
a=ice-pwd:la1S6P3cNIKonj6+auUhqj7+
a=ice-options:trickle renomination
a=fingerprint:sha-256 E5:E0:B9:27:C8:F8:1A:F1:6A:1F:67:F0:47:E9:96:49:7B:9A:83:08:F9:55:5D:75:6F:E4:27:AA:40:79:FA:0C
a=setup:actpass
a=mid:video
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c1f
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 VP9/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=rtpmap:123 rtx/90000
a=fmtp:123 apt=127
a=rtpmap:125 red/90000
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=125
a=rtpmap:124 ulpfec/90000

On Thu, Aug 20, 2020 at 2:19 AM Matthew Waters <[hidden email]> wrote:
Yes, in order for webrtcbin to answer with sending two streams, the original offer must have two streams to receive.

There was also an issue in webrtcbin at some point with multiple similar streams being confused for each other (at offer/answer creation) that was fixed a little while ago.  I can't remember the details off the top of my head though :).

Cheers
-Matt

On 20/8/20 11:51 am, Stergios Hetelekides wrote:
Hi,

I hope this is an appropriate place to ask webrtcbin questions! :)

I have a pipeline using webrtcbin successfully sending video to a mobile app! It looks something like this:
myvideosrc -> ... -> webrtcbin

It's working great for a single video stream, but now I'm trying to send multiple video streams using webrtcbin to the mobile app. I've tried linking an additional src to my webrtcbin:
myvideosrc -> ... -> webrtcbin
videotestsrc -> ... ----^

When I do this, only 1 stream comes thru to the phone. By looking at the SDP answer that webrtcbin is generating, it is only responding with 1 stream in the answer. I know both pipelines work individually, but I cannot get both streams to come thru at the same time.

I'm not sure if it's an issue with how the mobile app is sending it's offer (does it need to offer to receive 2 streams?), or how I'm handling on the webrtcbin side? Any help would be appreciated.

Thank you!

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (499 bytes) Download Attachment