To create a live streaming audio server using Node.js, you can use the node-media-server
package along with a media player on the client-side. Here's a step-by-step guide to set up the live streaming audio server:
Step 1: Create a new Node.js project and install the required dependencies:
bashnpm init -y npm install node-media-server
Step 2: Create a server.js
file and set up the live streaming audio server:
javascriptconst NodeMediaServer = require('node-media-server');
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 30,
ping_timeout: 60,
},
http: {
port: 8000,
allow_origin: '*',
},
};
const nms = new NodeMediaServer(config);
nms.on('prePublish', (id, StreamPath, args) => {
console.log('[NodeEvent on prePublish]:', id, StreamPath, args);
// You can add any custom logic here before publishing the stream
});
nms.run();
In this code, we configure the node-media-server
with RTMP (Real-Time Messaging Protocol) and HTTP settings. RTMP is used for publishing live streams, while HTTP is used for playback. The prePublish
event is used to add any custom logic before publishing the stream.
Step 3: Start the Node.js server:
bashnode server.js
Step 4: On the client-side, you can use a media player to play the live streaming audio. For example, you can use howler.js
to play the audio stream:
html<!DOCTYPE html>
<html>
<head>
<title>Live Audio Streaming Client</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.3.0/howler.min.js"></script>
</head>
<body>
<h1>Live Audio Streaming</h1>
<button onclick="playAudio()">Play</button>
<button onclick="stopAudio()">Stop</button>
<script>
const audio = new Howl({
src: ['rtmp://your-server-ip:8000/live/streamName'],
format: ['mp3'], // Adjust the format based on the audio type
autoplay: false,
html5: true,
});
function playAudio() {
audio.play();
}
function stopAudio() {
audio.stop();
}
</script>
</body>
</html>
Replace your-server-ip
with the IP address of your Node.js server running the node-media-server
. Adjust the audio format and other settings as needed.
With this setup, you can now broadcast live streaming audio from the server and play it on the client-side using a media player. Keep in mind that this is a basic setup, and you may need to implement more features and security measures based on your specific requirements and use case.