PipeWire is a multimedia (audio and video) framework for Linux. WHIP (RFC 9725) is a standardised protocol for streaming audio and video to network servers. WHIP is notably implemented by the Galene videoconferencing server.
The program pw-whip acts as a bridge between PipeWire and WHIP: it
allows any Linux program that is able to speak to PipeWire to stream its
audio over WHIP.
For example, on Debian, do
apt install libopus-dev libpipewire-0.3-devcd ~/src
git clone https://github.com/paullouisageneau/libdatachannel
cd libdatachannel
cmake -Bbuild
cd build
make -j
sudo mv libdatachannel.so* /usr/local/lib/
sudo ldconfigcd ~/src/pw-whip/
make -jIf your copy of the libdatachannel sources doesn't live at
~/src/libdatachannel, specify its location as LIBDATACHANNEL_ROOT:
make -j LIBDATACHANNEL_ROOT=/usr/local/src/libdatachannelYou may optionally install pw-whip:
sudo make install./pw-whip https://galene.org:8443/group/public/pw-whip/.whipBy default, pw-whip appears as an audio sink to PipeWire, but isn't
connected to a source. You will need to connect it manually to a source
using something like qpwgraph.
You may request automatic connection using the -c flag, or connection to
a specific target using the -C flag:
./pw-whip -C mpv https://galene.org:8443/group/public/pw-whip/.whipFor more information, please consult the manual page:
man ./pw-whip.man- No support for ICE restarts, even if supported by the server.
- No support for trickling local ICE candidates, even if supported by the server.
- No support for video.
- We do not currently adapt the throughput and the amount of FEC to varying network conditions.
— Juliusz Chroboczek https://www.irif.fr/~jch/