This commit is contained in:
legop3
2026-03-17 03:31:53 -04:00
parent ad664f2d32
commit 9f1efc6b91
+11 -9
View File
@@ -7,7 +7,7 @@ const logger = require('../globals/logger').child('audioForwardService');
const { loadConfig } = require('../helpers/configLoader'); const { loadConfig } = require('../helpers/configLoader');
const roverManager = require('./roverManager'); const roverManager = require('./roverManager');
const { isAdmin } = require('./roleService'); const { isAdmin } = require('./roleService');
const { getAudioLevels, audioLevelsEvents } = require('./audioLevelsService'); const { audioLevelsEvents } = require('./audioLevelsService');
const audioForwardEvents = new EventEmitter(); const audioForwardEvents = new EventEmitter();
const config = loadConfig(); const config = loadConfig();
@@ -174,6 +174,14 @@ function buildPublisherArgs(fifoPath, outputUrl) {
'20', '20',
'-compression_level', '-compression_level',
'0', '0',
'-fflags',
'nobuffer',
'-flush_packets',
'1',
'-muxdelay',
'0',
'-muxpreload',
'0',
'-f', '-f',
'mpegts', 'mpegts',
outputUrl, outputUrl,
@@ -201,7 +209,6 @@ function buildSilenceWriterArgs() {
} }
function buildClipWriterArgs(filePath) { function buildClipWriterArgs(filePath) {
const forwardGain = Math.max(0, Number(getAudioLevels()?.forwardGain) || 1);
return [ return [
'-hide_banner', '-hide_banner',
'-loglevel', '-loglevel',
@@ -211,7 +218,7 @@ function buildClipWriterArgs(filePath) {
filePath, filePath,
'-vn', '-vn',
'-af', '-af',
`aresample=16000,volume=${forwardGain}`, 'aresample=16000',
'-f', '-f',
's16le', 's16le',
'-ac', '-ac',
@@ -397,12 +404,7 @@ roverManager.managerEvents.on('rover', ({ roverId, action } = {}) => {
}); });
audioLevelsEvents.on('change', () => { audioLevelsEvents.on('change', () => {
workers.forEach((worker, roverId) => { // Forward gain now applies at rover ALSA mixer (ForwardMaster), so no writer restart is needed.
if (worker?.contentKind === 'clip') {
// Restart clip writer so forward gain changes are immediately reflected.
startClipWriter(roverId, testAudioPath);
}
});
}); });
io.on('connection', (socket) => { io.on('connection', (socket) => {