libpeer is a WebRTC implementation written in C, developed with BSD socket. The library aims to integrate IoT/Embedded device video/audio streaming with WebRTC, such as ESP32 and Raspberry Pi
- Video/Audio Codec
- H264
- G.711 PCM (A-law)
- G.711 PCM (µ-law)
- OPUS
- DataChannel
- STUN/TURN
- IPV4/IPV6
- Signaling
- WHIP
- MQTT
- Copy URL from the test website
- Build and run the example
$ sudo apt -y install git cmake wget ffmpeg
$ git clone --recursive https://github.com/sepfy/libpeer
$ cd libpeer
$ cmake -S . -B build && cmake --build build
$ wget -O sample.mp4 \
https://download.samplelib.com/mp4/sample-30s.mp4
$ ffmpeg -i sample.mp4 \
-map 0:v:0 -vf fps=25 -c:v libx264 -profile:v baseline -pix_fmt yuv420p \
-x264-params bframes=0:keyint=25:min-keyint=25:scenecut=0:repeat-headers=1 \
-f h264 test.264 \
-map 0:a:0 -ac 1 -ar 8000 -c:a pcm_alaw -f wav test.wav
$ ./build/examples/generic/sample -u <URL>- Click Connect button on the website
- ESP32: MJPEG over datachannel
- PICO: Ping pong with datachannel
- Raspberry Pi: Video and two-way audio stream