The raplayer is a C-based cross-platfrom remote audio player.
It can play simple audio files or streams.
Windows: Cygwin environment only tested, MSVC and MinGW does NOT supported yet.
Linux: supported.
MacOS: supported.
Windows(cygwin): cmake make gcc-core
Linux: alsa-lib-development-package(debian: libasound-dev, RHEL: alsa-lib-devel) cmake make gcc
MacOS: cmake make gcc
Optional packages: libopus portaudio
run build.sh
to build, or configure cmake manually. cmake will automatically build optional packages and build the source.
-DBUILD_SHARED_LIBS
, Build using shared libraries.
-DRAPLAYER_BUILD_DEPS
, Try to build core dependencies.
-DRAPLAYER_DISABLE_APPLICATION
, Disable to build raplayer cli application.
-DRAPLAYER_INSTALL_PKGCONFIG
, install pkg-config module.
The server
mode is audio provider mode, client
mode is audio player mode.
raplayer can run server
, client
mode with one executable.
$ ./main
Usage: ./main <Running Mode>
--client: Running on client mode.
--server: Running on server mode.
$ ./main --server
Usage: ./main --server [--stream] <FILE> [Port]
<FILE>: The name of the pcm_s16le wav file to play. ("-" to receive from STDIN)
[--stream]: Allow consume streams from STDIN until client connected. (DEPRECATED)
[Port]: The port on the server to which you want to open.
$ ./main --client
Usage: ./main --client <Server Address> [Port]
<Server Address>: The IP or address of the server to which you want to connect.
[Port]: The port on the server to which you want to connect.
You can adjust the volume by pressing the up and down arrow keys during playback.
- Play pcm_16le wav file.
./main --server s16le.pcm
- Play audio file using
ffmpeg
.
ffmpeg -loglevel panic -i audio.mp3 -f s16le -ac 2 -ar 48000 -acodec pcm_s16le - | ./main --server -
- Play youtube audio using
ffmpeg
&yt-dlp
.
yt-dlp --quiet -f bestaudio "[Youtube URL]" -o - | ffmpeg -loglevel panic -i pipe: -f s16le -ac 2 -ar 48000 -acodec pcm_s16le - | ./main --server -
- Play audio stream using
ffmpeg
.
ffmpeg -loglevel panic -i http://aac.cbs.co.kr/cbs939/_definst_/cbs939.stream/playlist.m3u8 -f s16le -ac 2 -ar 48000 -acodec pcm_s16le - | ./main --server --stream -
- There is a slight difference in playback time between clients when connecting multiple clients.
This project is licensed under the GPLv3 License - see the LICENSE file for details.
PR is always welcome. If you have any questions, please contact at 20sunrin022@sunrint.hs.kr.