The Gstreamer webrtcbin plugin provides the signalling logic and full-duplex low latency video and/or audio RTP live streaming for a Raspberry Pi IoT device (e.g. RPi3 B+) to operate as a WebRTC endpoint.
Gstreamer webrtcbin demo and installation information can be found at these links:
http://blog.nirbheek.in/2018/02/gstreamer-webrtc.html
https://gitlab.freedesktop.org/gstreamer/gst-examples/-/tree/master/webrtc
https://gitlab.freedesktop.org/gstreamer/gst-build
If the RPi IoT device connects to a browser based app, then JavaScript is used with the WebRTC API for custom features such as browser based recording and audio spectrograms.
WebRTC requires HTTPS. A RPi IoT device can use the same self-signed SSL certificate for both the webserver and signalling server (often secure websockets).
On the RPi, node.js with C code functions may be a good choice since node.js is a server-side version of JavaScript, and node.js can call Gstreamer custom C code functions that can be compiled easily with the meson and ninja tools.
WebRTC requires a signalling server. The webrtcbin demo uses a websockets Python signalling server, which can be modified for your application and run on the RPi.
As described in Audio Classification with TensorFlow Artificial Intelligence, a RPi can support WebRTC, video recogntion, and/or AI audio classification, which opens the door to a vast array of meaningful IoT applications.
OTTStreamingVideo.net has extensive experience with WebRTC, gstreamer, AI video recognition, and AI audio classification for embedded Linux applications. Please contact us for more information.