簡體   English   中英

使用Node JS傳輸多個文件

[英]Stream multiple files with node js

我正在嘗試通過expressmediaserver發送多個視頻文件。 有沒有一種方法可以檢查文件是否已完成流傳輸,然后將視頻更改為下一個? 以下是明確的要求。 為了澄清起見,我可以按照以下請求發送視頻,但是我不知道如何在完成流傳輸后更改文件,我讀到mediaserver非常mediaserver發送媒體文件,但是沒有任何文檔,因此我可以找不到方法或方法說明。

const express = require('express');
const app = express();
const ms = require('mediaserver');

app.get('/video', function(req, res){
   const filename = 'sample1.mp4'
   const filename1 = 'sample2.mp4'
   ms.pipe(req, res, assetsPath + filename);
   console.log ('[streaming video]: ' + filename);
});

app.listen(3000, function () {
   console.log('Listening on port 3000...');
});

動態托管我可以找到的文件的最佳方法是具有通用的“流”路由,然后將文件作為查詢傳遞:

const express = require('express'); 
const app = express();
const ms = require('fs'); 

app.get('/stream', function(req,res){
    var fileId = req.query.id,
    file = __dirname + fileId;
    fs.exists(file,function(exists){
        if(exists) {
            console.log("[Streaming:] %s", file);
            var rstream = fs.createReadStream(file); 
            rstream.pipe(res);
        } else {
            console.log("[ERROR Streaming:] %s", file);
            res.send("Playback 404");
            res.end();
        }
    });
}); 

app.listen(3000, function () {
    console.log('Listening on port 3000...');
});

然后,您可以瀏覽目錄並創建html字符串以發送到頁面,並創建一個按鈕,用於在單擊時流式傳輸文件:

var serverAddress = "http://localhost:3000"
var file = "sample.mp4"
stream = "<a href='" +serverAddress+ "/stream?id=" + file + "' target='_blank'><button class='btn btn-success'>Stream</button></a>";
res.send (stream)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM