Supported protocols
Ottercast is open source! If your favorite app/protocol is missing, open an Issue or integrate it yourself and send a Pull Request.
Snapcast
Snapcast is a multiroom-capable network audio player.
Ottercast can act as a Snapcast client and will connect to a Snapcast server which is streaming audio.
Multiple Ottercasts (and other Snapcast clients) can connect to the same server and will play perfectly synced audio.
Ottercast can also work as a Snapcast server and stream audio from it’s Line-In port to multiple Snapcast clients.
Spotifyd / Spotify Connect
Spotifyd is a Spotify Connect client, written in Rust, utilizing the librespot library.
Requires Spotify Premium.

Shairport Sync / AirPlay
Shairport Sync is an open source reimplementation of the AirPlay protocol.
You can select your Ottercast as an AirPlay target on your iOS/macOS devices.
Shairport supports full audio synchronisation, which means audio/video sync will be enforced.

PulseAudio Sink
Ottercast can act as a PulseAudio Sink via module-native-protocol-tcp
.
Use paprefs
to enable local discovery and ensure avahi-daemon
is running.

Line In
Not really a protocol, but a yet badly supported input method! Connect a line-in via the TRS jack on the back of the OtterCastAmp or the left TRS jack of the OtterCastAudio, then log onto the device via SSH and run pactl load-module module-loopback latency_msec=1
.
You may need to adjust the input volume by running PULSE_SERVER=x.x.x.x pavucontrol
and e.g. lowering the input volume to 30%.