Encode to MP3 and stream in real-time?


Can I pipe a PCM digital stream (say 24-bit at 96 kHz) from a console’s Firewire interface (assuming a driver exists) or a USB A/D (like M-Audio Fastrack Pro) into Ardour, encode it to MP3 (192 kbp/s) and stream the encoded MP3 output in real-time?

The application here would be to use Ardour as an encoding front end to stream real-time audio ONTO a network.


digital audio source | ardour for MP3 encoding > network stream program that bundles it into IP packets


Ardour is not and will never be an encoding front end.

One of the reasons why Linux is such a nice environment for doing “unconventional” things with audio is that a large variety of tools exist that can often be interconnected.

icecast and its cousins are the right tools for doing this. icecast even has JACK support (in at least one of its versions), which means you could actually mix incoming audio with existing material inside ardour, feed it to icecast and send it out onto the net. for regular streaming, just icecast is what you need.

note that since firewire audio devices are only supported under JACK at present (there are no ALSA drivers), if you want to use icecast with such a device you would have to be sure to get the icecast version with JACK support. for other types of audio interfaces, any old icecast version will be fine.

I have managed to do something similar with device -> Jack -> darkice -> icecast server -> clients via web browser. 20 second latency but it works really well.