播放局域网中的视频文件



我有一台服务器和一些安卓设备,都连接到同一个wifi。如何在不访问互联网的情况下从服务器播放视频文件? 我尝试使用 VideoView,但我只能加载网址,所以我使用了 ngrok,但随后它进入了互联网......

如果它是 LAN 上本地服务器上的静态托管视频,并且您有访问该视频的 URL,那么您应该能够简单地将 URL 输入到客户端计算机上的浏览器中。

您确实需要确保视频是机器和浏览器支持的视频 - 使用一些常用视频进行测试将是一个好的开始。mp4格式的传统"大巴克兔子"视频是一个很好的下载测试视频:

  • http://camendesign.com/code/video_for_everybody/test.html

例如,如果您查看该页面的来源,您将看到MP4视频的直接URL,您可以直接在浏览器中进行测试。

如果您的服务器可以服务器静态视频文件,则在本地网络上也应该同样有效。请注意,值得检查您的服务器支持范围请求 - 这允许逐块请求文件,因此可以尽快开始播放,而不必等待整个文件下载。大多数服务器都支持此功能,尽管您可能必须在配置中启用它。

在 Web 服务器上提供静态视频文件

视频文件可以被视为Web资源,就像文档,文件图像一样。请注意,这不是通过互联网提供视频的最有效方式,这就是为什么有专门的流媒体服务器的原因,但如果您只需要一个简单的解决方案,它将起作用。

不同的Web服务器有不同的方法来提供静态内容,因此您需要检查您正在使用的服务器,但作为节点.js服务器的示例,以下代码将提供仅放置在"video"目录中的任何视频文件:

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 servern');
});
//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://[您的服务器网址]/视频/[视频文件的名称]

最新更新