繁体   English   中英

Nodejs,Android-视频流

[英]Nodejs, Android - Video Streaming

我正在开发一个显示来自Nodejs&MongoDB服务器的视频的应用程序。

这里的问题是因为视频没有流,Android上的mediaPlayer会完全下载视频,然后显示它,这确实很慢,您可以猜到。

我不是母语人士,因此阅读文档对我来说很难理解。

我应该走哪条路? RTSP或HTTP流。 有什么技巧可以实现我的目标吗?

谢谢您的所有帮助,最好的问候。

尽管专用的流服务器对于任何大型解决方案或要求良好性能的任何解决方案可能都是更好的解决方案,但您绝对应该能够从标准的node.js应用程序中流式传输视频文件。

最简单的方法是将视频放置在服务器上某个目录中,并将其作为静态内容提供。

以下非常基本的node.js应用将提供视频-您可以从基本url以及目录和视频文件名访问它,例如http:// [您的服务器url] / videos / [您的视频文件名]

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流可能无法为您服务的原因之一。 这种机制允许客户端一次只请求文件的一部分。 请参阅此处以获取更多信息:

您尚未提供有关您的应用程序的详细信息。 RTSP或HLS是流式格式,根据要求具有相对于其他格式的一些优势,Android也支持这两种格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM