我正在做一个从 Reddit 下载视频的辅助项目,但它们将视频和音频分隔在不同的文件中。所以我必须先合并它们,然后再将它们下载到客户端。我能够按照以下代码片段完成所有这些操作。
const ffmpeg = require("fluent-ffmpeg");
const proc = new ffmpeg();
app.post('/download', async (req, res) => {
const audio = "some aduio link";
const video = "some video link";
proc.addInput(video)
.output('${some path}./video.mp4')
.format('mp4')
.on("error", err => console.log(err))
.on('end', () => console.log('Done'));
if(audio) {
proc.addInput(audio);
}
proc.run()
});
使用上面的代码,视频正在本地下载到指定路径的服务器中。但我想在发送请求的客户端浏览器中下载视频。我试过了 :
proc.pipe(res);
但它没有用,这是我第一次使用 ffmpeg ,所以如果有人给我提示会很好
最佳答案
添加 writeToStream(res, { end: true });
在结束时流式传输
const ffmpeg = require("fluent-ffmpeg");
const proc = new ffmpeg();
app.post('/download', async (req, res) => {
const audio = "some aduio link";
const video = "some video link";
ffmpeg(video).format('mp4')
.on("error", err => console.log(err))
.on('end', () => console.log('Done')).writeToStream(res, { end: true });
});
`我希望它有效
关于javascript - 在 nodejs 和 express 中使用 fluent-ffmpeg 下载视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66892167/