webrtc demos

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

webrtc demos

Fabio Zingaro
Hi guys,

i need your help on 2 topics:

1) Build problems on embedded yocto linux
i'm trying to build this example (https://github.com/centricular/gstwebrtc-demos/tree/master/sendonly) on a Evaluation Board ARMv7l with gstreamer 1.14.4 installed (with all plugins, include files, etc).

when i launch make i obtain this:

```
webrtc-unidirectional-h264.c: In function 'create_receiver_entry':
webrtc-unidirectional-h264.c:177:3: error: unknown type name 'GstWebRTCRTPTransceiver'
   GstWebRTCRTPTransceiver *trans;
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:31:0,
                 from webrtc-unidirectional-h264.c:2:
webrtc-unidirectional-h264.c:213:40: error: 'GstWebRTCRTPTransceiver' undeclared (first use in this function)
   trans = g_array_index (transceivers, GstWebRTCRTPTransceiver *, 0); 
```

on a Ubuntu Linux x86_64 18.04 with gstreamer 1.14.5 it compiles and run without problems.

Comparing *.so, *.pc and *.h files on embedded board and linux machine i don't see differences.

Searching on google i've found some similar problems related to GNU Make version. I've 4.2.1 on the board and 4.1 on the Linux PC.

2) Bridging RTSP stream to webrtc web page
continuing my experiments on ubuntu x86_64 i've tried to change the pipeline removing v4l2 source and inserting a videotestsrc with no problems, it worked.
Now i'm trying to read a RTSP stream from an IP camera but i doesn't work and i've no errors on console.

this is the pipeline: 
```
receiver_entry->pipeline = gst_parse_launch (" rtspsrc location=//" RTSPSRC " "
"! webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
"! queue ! rtph264depay ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ", &error);
```

Thanks.

Fabio


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

Re: webrtc demos

Stephenwei
receiver_entry->pipeline = gst_parse_launch (" rtspsrc location=//" RTSPSRC "
"
        "! webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
        "! queue ! rtph264depay ! rtph264pay !
application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ",
&error);

webrtcbin <--- Make sure gst-inspect-1.0 can find this element.



-----
GStreamer is a convenient multimedia platform, I like it.
Develop the NVR system on ARM/x86(c/python)
Use python to generate NVR is crazy, of course works fine.

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

Re: webrtc demos

Fabio Zingaro
Hi Stephenwei,

yes, i've no error on webrtc part.
Please note that with this chain i receive the video test stream without problems.

receiver_entry->pipeline = gst_parse_launch ("webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
      " videotestsrc ! "
      " video/x-raw,width=640,height=360,framerate=15/1 ! videoconvert ! queue max-size-buffers=1 ! x264enc bitrate=600 speed-preset=ultrafast tune=zerolatency key-int-max$
      "rtph264pay config-interval=-1 name=payloader ! "
      "application/x-rtp,media=video,encoding-name=H264,payload="
      RTP_PAYLOAD_TYPE " ! webrtcbin. ", &error);





Il giorno mar 14 apr 2020 alle ore 03:21 Stephenwei <[hidden email]> ha scritto:
receiver_entry->pipeline = gst_parse_launch (" rtspsrc location=//" RTSPSRC "
"
        "! webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
        "! queue ! rtph264depay ! rtph264pay !
application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ",
&error);

webrtcbin <--- Make sure gst-inspect-1.0 can find this element.



-----
GStreamer is a convenient multimedia platform, I like it.
Develop the NVR system on ARM/x86(c/python)
Use python to generate NVR is crazy, of course works fine.

--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
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
Reply | Threaded
Open this post in threaded view
|

Re: webrtc demos

Fabio Zingaro
Hi all,

no one has ideas and suggestions?

Il giorno mar 14 apr 2020 alle ore 16:18 Fabio Zingaro <[hidden email]> ha scritto:
Hi Stephenwei,

yes, i've no error on webrtc part.
Please note that with this chain i receive the video test stream without problems.

receiver_entry->pipeline = gst_parse_launch ("webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
      " videotestsrc ! "
      " video/x-raw,width=640,height=360,framerate=15/1 ! videoconvert ! queue max-size-buffers=1 ! x264enc bitrate=600 speed-preset=ultrafast tune=zerolatency key-int-max$
      "rtph264pay config-interval=-1 name=payloader ! "
      "application/x-rtp,media=video,encoding-name=H264,payload="
      RTP_PAYLOAD_TYPE " ! webrtcbin. ", &error);





Il giorno mar 14 apr 2020 alle ore 03:21 Stephenwei <[hidden email]> ha scritto:
receiver_entry->pipeline = gst_parse_launch (" rtspsrc location=//" RTSPSRC "
"
        "! webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
        "! queue ! rtph264depay ! rtph264pay !
application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ",
&error);

webrtcbin <--- Make sure gst-inspect-1.0 can find this element.



-----
GStreamer is a convenient multimedia platform, I like it.
Develop the NVR system on ARM/x86(c/python)
Use python to generate NVR is crazy, of course works fine.

--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
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
Reply | Threaded
Open this post in threaded view
|

Re: webrtc demos

Pascal Jacquemart
Hi Fabio,

First of all it could be a bandwidth problem.
Because the GStreamer implementation does not do adaptive streaming. In general your RTSP camera will try to use much more bandwidth than the videotestsrc (even for the same resolution).

Also I think RSTP and WebRTC are both using RTP but in slightly different ways. So you might need to add rtph264depay ! rtph264pay to make it work. You can try to dump the SDP offer in both case to compare.

No idea about your problem on ARM.

Le 18 avr. 2020 à 17:14, Fabio Zingaro <[hidden email]> a écrit :

Hi all,

no one has ideas and suggestions?

Il giorno mar 14 apr 2020 alle ore 16:18 Fabio Zingaro <[hidden email]> ha scritto:
Hi Stephenwei,

yes, i've no error on webrtc part.
Please note that with this chain i receive the video test stream without problems.

receiver_entry->pipeline = gst_parse_launch ("webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
      " videotestsrc ! "
      " video/x-raw,width=640,height=360,framerate=15/1 ! videoconvert ! queue max-size-buffers=1 ! x264enc bitrate=600 speed-preset=ultrafast tune=zerolatency key-int-max$
      "rtph264pay config-interval=-1 name=payloader ! "
      "application/x-rtp,media=video,encoding-name=H264,payload="
      RTP_PAYLOAD_TYPE " ! webrtcbin. ", &error);





Il giorno mar 14 apr 2020 alle ore 03:21 Stephenwei <[hidden email]> ha scritto:
receiver_entry->pipeline = gst_parse_launch (" rtspsrc location=//" RTSPSRC "
"
        "! webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
        "! queue ! rtph264depay ! rtph264pay !
application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ",
&error);

webrtcbin <--- Make sure gst-inspect-1.0 can find this element.



-----
GStreamer is a convenient multimedia platform, I like it.
Develop the NVR system on ARM/x86(c/python)
Use python to generate NVR is crazy, of course works fine.

--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
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


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

Re: webrtc demos

Jan Schmidt-6
In reply to this post by Fabio Zingaro


On 11/4/20 1:29 am, Fabio Zingaro wrote:
Hi guys,

i need your help on 2 topics:

1) Build problems on embedded yocto linux
i'm trying to build this example (https://github.com/centricular/gstwebrtc-demos/tree/master/sendonly) on a Evaluation Board ARMv7l with gstreamer 1.14.4 installed (with all plugins, include files, etc).

when i launch make i obtain this:

```
webrtc-unidirectional-h264.c: In function 'create_receiver_entry':
webrtc-unidirectional-h264.c:177:3: error: unknown type name 'GstWebRTCRTPTransceiver'
   GstWebRTCRTPTransceiver *trans;
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:31:0,
                 from webrtc-unidirectional-h264.c:2:
webrtc-unidirectional-h264.c:213:40: error: 'GstWebRTCRTPTransceiver' undeclared (first use in this function)
   trans = g_array_index (transceivers, GstWebRTCRTPTransceiver *, 0); 
```

on a Ubuntu Linux x86_64 18.04 with gstreamer 1.14.5 it compiles and run without problems.

Comparing *.so, *.pc and *.h files on embedded board and linux machine i don't see differences.

Searching on google i've found some similar problems related to GNU Make version. I've 4.2.1 on the board and 4.1 on the Linux PC.

I can't think of any good reason for that error. I don't know how GNU Make could affect things, unless the compilation command-line is different between the versions - but I'd expect you'd get a lot more errors than just the one if so.


2) Bridging RTSP stream to webrtc web page
continuing my experiments on ubuntu x86_64 i've tried to change the pipeline removing v4l2 source and inserting a videotestsrc with no problems, it worked.
Now i'm trying to read a RTSP stream from an IP camera but i doesn't work and i've no errors on console.

this is the pipeline: 
```
receiver_entry->pipeline = gst_parse_launch (" rtspsrc location=//" RTSPSRC " "
"! webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER " "
"! queue ! rtph264depay ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ", &error);

Your pipeline description is out of order here. You'll end up connecting the rtspsrc to webrtcbin first, and then creating a 2nd chain with queue ! .../ ! webrtcbin. that doesn't produce any data and stops the whole pipeline from pre-rolling. Try this:

```
receiver_entry->pipeline = gst_parse_launch ("webrtcbin name=webrtcbin stun-server=stun://" STUN_SERVER "
" rtspsrc location=//" RTSPSRC " ! queue ! rtph264depay ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin. ", &error);

```

Regards,

Jan.

```

Thanks.

Fabio


_______________________________________________
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