流式传输和保存

问题描述

我有一个 mp4 视频流进来,我想将它保存到磁盘,但我也想在完成之前流式传输已保存到磁盘的数据,以便我可以同时观看和保存。 我目前的方法是将流通过管道传输到磁盘并从磁盘创建一个读取流然后发送,但目前它只是加载一点然后停止。

这是我当前的代码

const express = require('express');
const axios = require('axios').default;
const fs = require('fs');
const Path = require('path');
const yargs = require('yargs');
const { hideBin } = require('yargs/helpers');

const argv = yargs(hideBin(process.argv)).argv;

const url = argv._[0];
const path = Path.resolve(argv._[1])

const app = express();

(async () => {
    const response = await axios({
        method: 'get',url: url,responseType: 'stream'
    });

    const ws = fs.createWriteStream(path);
    response.data.pipe(ws);
    
    app.get('/stream',(req,res) => {
        res.header('Content-Type','video/mp4')
        const rs = fs.createReadStream(path);
        
        rs.pipe(res);

        // rs.on('close',() => res.end());
    });
    
    app.listen(3000);
})()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...