【发布时间】:2018-01-05 18:44:54
【问题描述】:
我正在使用 node.js 模块 sox-audio 修剪 mp3 音频以进行流式传输。
从这个example -
var SoxCommand = require('sox-audio');
var trimFileAndPipeExample = function(inputFile, startTimeSeconds, endTimeSeconds, outputPipe) {
var startTimeFormatted = TimeFormat.formatTimeAbsolute(startTimeSeconds);
var endTimeFormatted = TimeFormat.formatTimeAbsolute(endTimeSeconds);
var command = SoxCommand()
.input(inputFile)
.output(outputPipe)
.outputFileType('wav')
.trim(startTimeFormatted, endTimeFormatted)
.run();
return command;
}
为了分配输出,您使用 - fs.createWriteStream('./output.mp3');
所以
var outputPipe = fs.createWriteStream('./output.mp3');
trimFileAndPipeExample(inputFile, startTime, endTime, outputPipe);
创建输出文件。
我想做的是从我收到的请求中获取输出并将其定向到fs.createReadStream -
var outputPipe = fs.createWriteStream('./test.mp3');
trim(path, startTime, endTime, outputPipe);
outputPipe.on('finish', () => {
var readStream = fs.createReadStream('./test.mp3');
readStream.pipe(res);
});
但我不一定要每次都创建文件,而是将数据定向到fs.createReadStream。
有没有办法重写fs.createWriteStream,这样它就不需要输出路径,只需将.pipe 直接直接写入fs.createReadStream 吗?
谢谢
【问题讨论】: