From 2c73d7ef19e1ca95d082af329ee8f5c7b30080a1 Mon Sep 17 00:00:00 2001 From: Amateur Audio Dude <168192910+AmateurAudioDude@users.noreply.github.com> Date: Sun, 20 Apr 2025 22:41:50 +1000 Subject: [PATCH] check available ffmpeg, check -ar offset setting --- server/stream/3las.server.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/server/stream/3las.server.js b/server/stream/3las.server.js index e12bbef..b2efd05 100644 --- a/server/stream/3las.server.js +++ b/server/stream/3las.server.js @@ -1,8 +1,11 @@ "use strict"; var fs = require('fs'); -const ffmpegStaticPath = require('ffmpeg-static'); -const {serverConfig} = require('../server_config') +const checkFFmpeg = require('./checkFFmpeg'); +const {serverConfig} = require('../server_config'); +let ffmpegStaticPath; + +function runStream() { /* Stdin streamer is part of 3LAS (Low Latency Live Audio Streaming) https://github.com/JoJoBond/3LAS @@ -243,7 +246,7 @@ class FallbackProviderMp3 extends AFallbackProvider { return [ "-fflags", "+nobuffer+flush_packets", "-flags", "low_delay", "-rtbufsize", "32", "-probesize", "32", "-f", "s16le", - "-ar", this.Server.SampleRate.toString(), + "-ar", Number(this.Server.SampleRate.toString()) + Number(serverConfig.audio.samplerateOffset), "-ac", this.Server.Channels.toString(), "-i", "pipe:0", "-c:a", "libmp3lame", @@ -274,7 +277,7 @@ class FallbackProviderWav extends AFallbackProvider { return [ "-fflags", "+nobuffer+flush_packets", "-flags", "low_delay", "-rtbufsize", "32", "-probesize", "32", "-f", "s16le", - "-ar", this.Server.SampleRate.toString(), + "-ar", Number(this.Server.SampleRate.toString()) + Number(serverConfig.audio.samplerateOffset), "-ac", this.Server.Channels.toString(), "-i", "pipe:0", "-c:a", "pcm_s16le", @@ -327,4 +330,10 @@ for (let i = 2; i < (process.argv.length - 1); i += 2) { } const Server = StreamServer.Create(Options); Server.Run(); -//# sourceMappingURL=3las.server.js.map \ No newline at end of file +//# sourceMappingURL=3las.server.js.map +} + +checkFFmpeg().then((ffmpegResult) => { + ffmpegStaticPath = ffmpegResult; + runStream(); +}); \ No newline at end of file