-
Notifications
You must be signed in to change notification settings - Fork 939
ffmpeg randomly/rarely giving this error \node_modules\fluent-ffmpeg\lib\processor.js:543 emitEnd(err, stdoutRing.get(), stderrRing.get()); #1316
Description
const stream = require("stream");
const ffmpeg = require("fluent-ffmpeg");
const ffmpegPath = require("@ffmpeg-installer/ffmpeg").path;
ffmpeg.setFfmpegPath(ffmpegPath);
async function googleTextToWav(voiceName, text, speech_client) {
timeFunction("Text to wav Starting: ");
const request = {
input: { ssml: <speak>${text}</speak> },
voice: {
languageCode: voiceName.split("-").slice(0, 2).join("-"),
name: voiceName,
},
audioConfig: { audioEncoding: "MP3" },
};
try {
const [response] = await speech_client.synthesizeSpeech(request);
const audioContent = response.audioContent;
timeFunction("Text to wav ending: ");
new Promise((resolve, reject) => {
const wavStream = new stream.PassThrough();
wavStream.end(audioContent);
const mulawStream = new stream.PassThrough();
const chunks = [];
mulawStream.on("data", (chunk) => {
chunks.push(chunk);
});
mulawStream.on("end", () => {
const buffer = Buffer.concat(chunks);
const base64Audio = buffer.toString("base64");
console.log(base64Audio?.length, "length of base64 audio");
});
mulawStream.on("error", (err) => {
reject(err);
});
ffmpeg(wavStream)
.audioFrequency(8000)
.audioChannels(1)
.audioCodec("pcm_mulaw")
.format("mulaw")
.on("error", (err) => reject(err))
.pipe(mulawStream, { end: true });
});
return audioContent;
} catch (error) {
console.error("Error in Google TTS:", error);
}
}
this function normal working correctly but some times randomly giving this error
E:\Satesfy Tech\task15\gioconda-ai\server\node_modules\fluent-ffmpeg\lib\processor.js:543
emitEnd(err, stdoutRing.get(), stderrRing.get());
^
TypeError: Cannot read properties of undefined (reading 'get')
at endCB (E:\Satesfy Tech\task15\gioconda-ai\server\node_modules\fluent-ffmpeg\lib\processor.js:543:37)
at ChildProcess. (E:\Satesfy Tech\task15\gioconda-ai\server\node_modules\fluent-ffmpeg\lib\processor.js:157:9)
at ChildProcess.emit (node:events:518:28)
at ChildProcess.kill (node:internal/child_process:511:12)
at Timeout._onTimeout (E:\Satesfy Tech\task15\gioconda-ai\server\node_modules\fluent-ffmpeg\lib\processor.js:490:28)
at listOnTimeout (node:internal/timers:594:17)
at process.processTimers (node:internal/timers:529:7)
Node.js v22.11.0
[nodemon] app crashed - waiting for file changes before starting...
i failed to reproduce this error and failed to fix it