FFMPEG in Node.js: Conversion Failed

  Kiến thức lập trình

I have a small node.js web app. I use like this in a get request:

app.get('/api/voice/:gender/:voice/:pitch', function(req, res){
        if(req.params.pitch == "1" || req.params.pitch == "1.0") {
            const file = "./voices/" + req.params.gender.toLowerCase() + "/" + req.params.voice + ".mp3"
            res.download(file);
            return
        }

        const inputFile = "./voices/" + req.params.gender.toLowerCase() + "/" + req.params.voice + ".mp3"
        const output_file = "./Audio/Temp/" + req.params.voice + ".mp3"
        ffmpeg()
                .input(inputFile)
                .audioCodec('pcm_s16le') // Set the audio codec to PCM with 16-bit depth
                .audioFrequency(44100) // Set the sample rate
                .on('error', function(err) {
                    console.error('Error while converting:', err);
                })
                .on('end', function() {
                    // res.download(output_file)
                })
                .save(output_file);

    });

It gives Conversion Failed error:

[2024-07-11T18:11:22.880Z] Error while converting: Error: ffmpeg exited with code 1: Conversion failed!

    at ChildProcess.<anonymous> (d:DevAnimaClientnode_modulesfluent-ffmpeglibprocessor.js:180:22)
    at ChildProcess.emit (d:DevAnimaClientlibevents.js:519:28)
    at ChildProcess._handle.onexit (d:DevAnimaClientlibinternalchild_process.js:294:12)
    at Process.callbackTrampoline (node:internal/async_hooks:130:17) {stack: 'Error: ffmpeg exited with code 1: Conversion …Trampoline (node:internal/async_hooks:130:17)', message: 'ffmpeg exited with code 1: Conversion failed!
'}

When I use same code in a node.js desktop(.exe) app, it successfully runs. When I use it in an express.js app, it fails. Error message is not clear. What is the issue?

Theme wordpress giá rẻ Theme wordpress giá rẻ Thiết kế website

LEAVE A COMMENT