const spawn = require('child_process').spawn;
const ffmpeg = spawn('ffmpeg',
['-i', 'upload_audio/'+ senderID +'.aac', '-ar', '16000', 'upload_audio/'+ senderID +'.wav', '-y']);
正在拿別人公開的程式碼練習,但是發現一直卡在這個地方,每當運行時都會出現:
Error: spawn ffmpeg ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
已經npm install ffmpeg,也一樣。
但是使用wget就沒問題…
const wget = spawn('wget',
['-O', 'upload_audio/'+ senderID +'.aac', audioUrl]);
然後這支程式是在heroku伺服器上運行的,是因為這樣所以抓不到ffmpeg的指令嗎?
還請知道的大大幫忙提點,感謝><
你用 npm 裝 ffmpeg module
可是卻用 spawn 去調用 ffmpeg
我很好奇這樣可以嗎?
這樣的操作我覺得就連在 windows 也會出現一樣的錯誤
用 npm 裝 ffmpeg module 的話
建議跟著他們的操作說明做
我發現我講的好像有點不夠清楚
補充一下
應該是說你用 spawn 去調用 ffmpeg
那裝那個 node-ffmpeg 就沒意義啦
當然
前提是你有裝 ffmpeg 的情況下
我也不確定…
寫技術文章的人似乎是在linux上使用apt-get安裝
wget下載音檔後用ffmpeg轉檔
但我是在windows並且還上傳到heroku上
也許我該捨棄上面的寫法直接用ffmpeg?
謝謝!我會試著用用看!
一定會需要用 apt-get
node-ffmpeg 最上面有說
To use this library requires that ffmpeg is already installed
ffmpeg是ffmpeg,node-ffmpeg是node-ffmpeg,這兩個不一樣。你用npm i ffmpeg
裝的是node-ffmpeg,並不是ffmpeg。
ENOENT是找不到檔案,應該是很好的提示了。