我想将一个YouTube网址转换为mp3文件。目前,我使用Node的ytdl模块下载mp4文件,方法如下:
fs = require 'fs'
ytdl = require 'ytdl'
url = 'http://www.youtube.com/watch?v=v8bOTvg-iaU'
mp4 = './video.mp4'
ytdl(url).pipe(fs.createWriteStream(mp4))
下载完成后,我使用fluent-ffmpeg模块将mp4转换为mp3,如下所示:
ffmpeg = require 'fluent-ffmpeg'
mp4 = './video.mp4'
mp3 = './audio.mp3'
proc = new ffmpeg({source:mp4})
proc.setFfmpegPath('/Applications/ffmpeg')
proc.saveToFile(mp3, (stdout, stderr)->
return console.log stderr if err?
return console.log 'done'
)
我不想在开始mp3转换之前保存整个mp4。我该如何将mp4管道传输到proc中,以便在接收mp4块时执行转换?