I recently worked on a similar project. My solution was to use nodeshout (node binding for libshout) to send audio data from Node to Icecast.
. :
function playSong(){
const nextSong = "./song.mp3";
const fileStream = new FileReadStream(nextSong, 65536);
const shoutStream = fileStream.pipe(new ShoutStream(shout));
shoutStream.on('finish',playSong);
}
playSong()
.
. icecast.xml ~ 30 . , , , - , " ", ( ).
Gist : https://gist.github.com/Cretezy/3623fecb1418e21b5d1f77db50fc7e07