node.js:如何管道 – youtube到mp4到mp3

前端之家收集整理的这篇文章主要介绍了node.js:如何管道 – youtube到mp4到mp3前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将youtube网址转换为mp3文件.目前,我使用节点的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块时进行转换?

解决方法

而不是传递mp4文件的位置,传递ytdl流作为源,如下所示:
stream = ytdl(url)

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

猜你在找的Node.js相关文章