8

I have installed GStreamer-1.18.0 from source along with base, good, bad and ugly plugins.

I am unfamiliar with WebRTC so I decided to start with a demo and see how it works. I have found a small demo at https://github.com/centricular/gstwebrtc-demos/tree/master/sendonly.

Unfortunately when running the demo and browsing to the location I get the following error in the terminal:

WebRTC page link: http://127.0.0.1:57778/
Processing new websocket connection 0x6d14c0
** (webrtc-unidirectional-h264:168870): ERROR **: Could not create WebRTC pipeline: could not link payloader to webrtcbin, webrtcbin can't handle caps application/x-rtp, media=(string)video, encoding-name=(string)H264, payload=(int)96

Trace/BPT trap (core dumped)

Here is the pipeline command attempted by the demo application:

gst-launch-1.0 webrtcbin name=webrtcbin stun-server=stun://stun.l.google.com:19302 v4l2src ! videorate ! 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=15 ! video/x-h264,profile=constrained-baseline ! queue max-size-time=100000000 ! h264parse ! rtph264pay config-interval=-1 name=payloader ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin.

This seems wierd to me since when I inspect the webrtcbin, it does say that it has capability for application/x-rtp (also in GStreamer documentation):

Prompt--> gst-inspect-1.0 webrtcbin
...
Pad Templates:
  SINK template: 'sink_%u'
    Availability: On request
    Capabilities:
      application/x-rtp
    Type: GstWebRTCBinPad
    Pad Properties:
      transceiver         : Transceiver associated with this pad
                            flags: readable
                            Object of type "GstWebRTCRTPTransceiver"
  

Are there any suggestions on how to solve this? Perhaps something was not installed correctly in the GStreamer package? or maybe I am missing something in the OS permissions\setup?

miris
  • 201
  • 1
  • 7

1 Answers1

10

GStreamer was missing nice plugin. This problem was solved by making sure libgstnice.so was in the correct location.

miris
  • 201
  • 1
  • 7
  • Uhm.. Facing the same problem. Built GST from source, latest 1.22. Do you probably recall, what you did? I saw that meson was having support for libnice. What means "correct location"? I also don't have the "nice" plugin (gst-inspect-1.0), had that in previous versions. – decades Feb 01 '23 at 16:07
  • ./home/pi/gstreamer/builddir/subprojects/libnice/gst/libgstnice.so.p ./home/pi/gstreamer/builddir/subprojects/libnice/gst/libgstnice.so ./usr/local/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnice.so – decades Feb 01 '23 at 16:09