Question

I'm trying to convert an mp4 video to mp3 with node's fluent-ffmpeg module. Here is my code:

ffmpeg = require 'fluent-ffmpeg'

mp4 = '/Users/jashua/Desktop/video.mp4'
mp3 = '/Users/jashua/Desktop/audio.mp3'

proc = new ffmpeg({source:mp4})
    .toFormat('mp3')
    .setFfMpegPath('/Applications/ffmpeg')
    .saveToFile(mp3, (stdout, stderr)->
            return console.log stderr if err?
            return console.log 'done'
        )

On running it, I get the following error:

TypeError: Cannot call method 'saveToFile' of undefined
at Object.<anonymous> (/Users/jashua/Desktop/ytdl.coffee:10:12, <js>:18:60)
  at Object.<anonymous> (/Users/jashua/Desktop/ytdl.coffee:1:1, <js>:25:4)
  at Module._compile (module.js:456:26)

Any ideas?

Solution:

proc = new ffmpeg({source:mp4})
    proc.setFfMpegPath('/Applications/ffmpeg')
    proc.saveToFile(mp3, (stdout, stderr)->
                return console.log stderr if err?
                return console.log 'done'
            )
    enter code here
Was it helpful?

Solution 2

the spawn system call ends with error ENOENT if the program cannot be found. In this case, ffmpeg is not found, so you have to tell it where it is:

proc = new ffmpeg({source:mp4})
    .setFfmpegPath("wherever ffmpeg is installed ") <-- this is the new line
    .toFormat('mp3')
    .saveToFile(mp3, (stdout, stderr)->
            return console.log stderr if err?
            return console.log 'done'
        )

More info is available in a related issue

OTHER TIPS

For anyone else coming across this and experiencing the same issue I was .setFfmpegPath() requires the full path including the binary not just the directory the binary is in.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top