首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS中的高性能视频文件服务器

NodeJS中的高性能视频文件服务器
EN

Stack Overflow用户
提问于 2015-08-03 16:21:22
回答 3查看 2.4K关注 0票数 1

我想要建立一个高可用性和高性能的视频文件服务器和流媒体视频在NodeJS。基本上,我想知道:

  1. 在NodeJS中创建视频文件服务器的可能方法是什么。
  2. 它会管理许多并发请求吗?由于这是一个视频文件,每个请求都需要时间才能完全解决。
  3. 是否还有其他可能使用其他静态文件服务器。

请给我建议如何走上正确的道路。

EN

回答 3

Stack Overflow用户

发布于 2015-08-13 07:11:52

视频流主要是通过HTTP实现高效的数据传输。数据是您的文件,通过with服务器进行的数据传输可能与NodeJS或任何后端处理没有任何共享。这取决于需求,但数据作为文件通常直接提供给用户,而不通过后端传递。否则,系统元素就会耦合在一起,从而影响性能,增加熵。

建议将系统部件分开处理,例如Nginx可以一次性处理身份验证、授权、视频流,而不需要任何后端,这是一个很好的起点,而且绝对是高性能的。查看这种方法

代码语言:javascript
复制
server {
   location /video/ {
      rewrite               /video/([a-zA-Z0-9_\-]*)/([0-9]*)/(.*)\.flv$ /flv/$3.mp4?st=$1&e=$2;
    }

    location /mp4/ {
      internal;
      mp4;
      secure_link           $arg_st,$arg_e;
      secure_link_md5       YOUR_SECRET_PASSWORD_HERE$arg_e$uri;
}

视频文件的URL将根据特定的算法由后端预生成,在示例中它是通过Ruby实现的,但是有关于巴什的一个例子

代码语言:javascript
复制
echo -n '2147483647/s/link127.0.0.1 secret' | \
    openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =

一旦你达到这个主要目标(视频文件流?)然后,NodeJS或任何其他给定的技术都可以用于常见的任务,如增强身份验证、授权、评论、共享和其他功能。

票数 6
EN

Stack Overflow用户

发布于 2015-08-13 07:55:09

正如注释中已经提到的,有其他现成的选项可以使用视频流服务器(恩吉克斯模块似乎非常合适)。尽管如此,如果您仍然希望构建自己的node.js,那么使用BinaryJS似乎是正确的工作工具。有一个相当直截了当的发展方式:

服务器

代码语言:javascript
复制
var server = BinaryServer({port: 9000});
server.on('connection', function(client){
client.on('stream', function(stream, meta){
     var file = fs.createWriteStream(meta.file);
     stream.pipe(file);
   }); 
});

文档演示部分有很好的文档说明,并且易于使用。

票数 0
EN

Stack Overflow用户

发布于 2015-08-12 17:30:11

许多意见都是很好的建议。在性能和可伸缩性方面,最大的瓶颈将是文件服务器。我的建议是使用Couchbase。由于它的缓存方法,它是性能最高的数据库,并且能够动态地向集群添加节点。在接受我的承诺之前,先做一些研究,因为我所做的是“先开枪,然后再问问题”。它会将接收到的数据存储在RAM中,报告成功,然后写到磁盘。类似地,它会将频繁访问的文件存储在RAM中,如果多个用户正在观看相同的视频,这将极大地提高性能。当一个节点被添加到集群中时,它会宣布自己,并且它的对等点会自动发送数据来平衡负载。负载平衡也会自动发生。

http://www.couchbase.com/

至于web服务器,则使用任何舒适的。Nginx很好,NodeJS被设置为Couchbase之类的东西,Apache甚至IIS都能工作。首先选择要在哪种语言中工作,然后根据这些选项选择服务器。

最后,您可以签入已有的服务器端视频流代码库。你这样做可以省去很多头痛。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31792198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档