javascript - 在 nodejs 和 express 中使用 fluent-ffmpeg 下载视频

标签 javascript node.js express ffmpeg video-streaming

我正在做一个从 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/

相关文章:

Javascript/jQuery OR 运算符在 attr 值上无法正常工作

javascript - 将显示的数组逗号替换为换行符

mysql - 使用mysql node.js批量插入时出现Sql语法错误

node.js - 如何检查通过 node.js 代理的请求响应

javascript - 使用 Express.JS 的基本 MVC 原则

javascript - 如何在不刷新/提交页面的情况下发送 POST 方法

javascript - 响应问题

javascript - 异步构造函数

node.js - Express js,mongodb : "ReferenceError: db is not defined" when db is mentioned outside post function

node.js - 使用 MEAN 堆栈进行用户注册和身份验证/授权