andrewwakeling / parec-server

Encodes PulseAudio stream to flac or mp3 and serves it as a live http stream.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

parec-server

Encodes PulseAudio stream and serves it as a live http stream.

Background

I decided to write my own server after I found pulseaudio's Enable network access to local sound devices option too cumbersome to setup.

I wanted something plain and simple which would serve my currently playing stream so I can play it on my Sonos device.

The only limitation I noticed (which is also present in pulseaudio's network server, if enabled) is the latency which is on my system around 5 seconds.

Flac encoding is also possible (commented in code), but is disabled as Sonos only supports mp3, wma and aac.

Installation

# clone the repository
git clone https://github.com/jere/parec-server.git

# run the server
node parec-server <sink/source to connect to>

The server will be available on http://localhost:2000 or http://<your_ip>:2000.

<sink/source to connect to> must be defined or a default steam.monitor will be used.

You can use pactl load-module module-null-sink sink_name=steam to use the default monitor. You then need to redirect your output to that sink. See details here.

Requirements

Node.js and a linux machine running PulseAudio

About

Encodes PulseAudio stream to flac or mp3 and serves it as a live http stream.


Languages

Language:JavaScript 100.0%