1
0
mirror of https://github.com/KubaPro010/fm-dx-webserver.git synced 2026-02-26 22:13:53 +01:00

some changes

This commit is contained in:
2026-02-24 12:20:09 +01:00
parent 1f70b58295
commit 1d04719580
18 changed files with 160 additions and 259 deletions

View File

@@ -21,9 +21,9 @@ checkFFmpeg().then((ffmpegPath) => {
logInfo(`${consoleLogTitle} Using ${ffmpegPath === 'ffmpeg' ? 'system-installed FFmpeg' : 'ffmpeg-static'}`);
logInfo(`${consoleLogTitle} Starting audio stream on device: \x1b[35m${serverConfig.audio.audioDevice}\x1b[0m`);
const sampleRate = Number(this?.Server?.SampleRate || serverConfig.audio.sampleRate || 44100) + Number(serverConfig.audio.samplerateOffset || 0);
const sampleRate = Number(serverConfig.audio.sampleRate || 44100) + Number(serverConfig.audio.samplerateOffset || 0);
const channels = Number(this?.Server?.Channels || serverConfig.audio.audioChannels || 2);
const channels = Number(serverConfig.audio.audioChannels || 2);
let ffmpeg = null;
let restartTimer = null;
@@ -48,7 +48,7 @@ checkFFmpeg().then((ffmpegPath) => {
...inputArgs,
"-thread_queue_size", "1024",
"-thread_queue_size", "1536",
"-ar", String(sampleRate),
"-ac", String(channels),

View File

@@ -28,9 +28,7 @@ function parseAudioDevice(options, callback) {
const matches = (data.match(regex) || []).map(match => 'hw:' + match.replace(/\s+/g, '').slice(1, -1));
matches.forEach(match => {
if (typeof match === 'string') {
audioDevices.push({ name: match });
}
if (typeof match === 'string') audioDevices.push({ name: match });
});
} catch (err) {
console.error(`Error reading file: ${err.message}`);

View File

@@ -1,15 +1,12 @@
const WebSocket = require('ws');
const { serverConfig } = require('../server_config');
const { audio_pipe } = require('./index.js');
const { PassThrough } = require('stream');
function createAudioServer() {
const audioWss = new WebSocket.Server({ noServer: true });
audioWss.on('connection', (ws, request) => {
const clientIp =
request.headers['x-forwarded-for'] ||
request.connection.remoteAddress;
const clientIp = request.headers['x-forwarded-for'] || request.socket.remoteAddress;
if (serverConfig.webserver.banlist?.includes(clientIp)) {
ws.close(1008, 'Banned IP');
@@ -19,12 +16,7 @@ function createAudioServer() {
audio_pipe.on('data', (chunk) => {
audioWss.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send(chunk, {
binary: true,
compress: false
});
}
if (client.readyState === WebSocket.OPEN) client.send(chunk, {binary: true, compress: false });
});
});