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

HIL*_*EEN 1 video video-streaming node.js

我想在NodeJS中构建一个高可用性和高性能的视频文件服务器和流视频.基本上,我想知道:

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

请告诉我如何走上正确的道路.

Ana*_*oly 6

视频流主要是通过HTTP进行有效的数据传输.数据是您的文件,通过网络服务器传输的数据可能与NodeJS或任何类型的后端处理无任何共享.它取决于需求,但数据作为文件通常直接提供给用户而不通过后端传递给用户.否则,系统元件变得耦合在一起,这会影响性能并增加熵.

建议单独保留系统部件,例如Nginx可以一次性处理身份验证,授权,视频流,而不需要任何后端,这可能是一个很好的起点,绝对是真正的高性能.检查这个方法:

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;
}
Run Code Online (Sandbox Code Playgroud)

视频文件的URL将由后端基于某种算法预生成,在示例中它是通过Ruby完成的,但有一个关于Bash的示例:

echo -n '2147483647/s/link127.0.0.1 secret' | \
    openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =
Run Code Online (Sandbox Code Playgroud)

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