我正在开发一个显示来自Nodejs&的视频的应用程序。 MongoDB服务器。
这里的问题是因为视频不是流媒体,Android上的mediaPlayer完全下载视频然后显示它,这可能是你猜的慢。
我不是母语人士所以阅读文档对我来说很难理解。
我应该去哪条路? RTSP或HTTP流式传输。任何提示如何实现我的目标?
所有的帮助表示赞赏,最好的问候。
答案 0 :(得分:1)
虽然专用流媒体服务器可能是任何大型解决方案或任何需要良好性能的解决方案的更好解决方案,但您绝对应该能够从标准node.js应用程序中流式传输视频文件。
最简单的方法是将视频放在服务器上的某个目录中,并将其作为静态内容提供。
以下非常基本的节点,js app将提供视频 - 您可以从基本网址访问它,然后是目录和视频文件名称 - 例如http://[your服务器网址] /视频/ [视频文件名称]
var express = require('express');
var fs = require('fs');
var morgan = require('morgan');
//Define the app
var app = express();
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'});
// setup the logger
app.use(morgan('combined', {stream: accessLogStream}));
// Constants
var PORT = 3000;
//Use static middleware to serve static content - using absolute paths here (you may want something different)
app.use('/videos', express.static('/videos'));
//Add error handling
app.use(function(err, req, res, next) {
console.log("error!!!");
console.log(err.stack);
});
// Video Server test page
app.get('/', function (req, res) {
console.log("In Get!!!");
res.send('Hello world from Video server\n');
});
//Start web server
var server = app.listen(PORT, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
如果您的服务器不支持范围请求,简单HTTP流可能不适合您的一个原因。此机制允许客户端一次只请求文件的一部分。有关详细信息,请参阅此处:
答案 1 :(得分:0)
您尚未提供有关申请的详细信息。 RTSP或HLS是流媒体格式,根据要求具有一些优势,Android也支持这两种格式。