ffmpeg randomly/rarely giving this error \node_modules\fluent-ffmpeg\lib\processor.js:543 emitEnd(err, stdoutRing.get(), stderrRing.get());

Author: AnsHanifCreated Feb 25, 2025Updated Feb 25, 2025

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

Source: fluent-ffmpeg/node-fluent-ffmpeg