[英]Stream multiple files with node js
我正在尝试通过express
和mediaserver
发送多个视频文件。 有没有一种方法可以检查文件是否已完成流传输,然后将视频更改为下一个? 以下是明确的要求。 为了澄清起见,我可以按照以下请求发送视频,但是我不知道如何在完成流传输后更改文件,我读到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.