如何使用 node.JS 流式传输 .avi 电影文件? (文件打开下载屏幕而不是流式传输)

How to stream .avi film files with node.JS? (File opens download screen instead of streamed)

我正在使用 vid-streamer https://github.com/meloncholy/vid-streamer

  1. 要安装,只需在您的电脑上创建一个文件夹
  2. 打开终端并执行 CD 到文件夹
  3. 执行 npm 初始化
  4. 给应用起一个像 'MyVidStreamer'
  5. 这样的名字
  6. 将创建一个package.json
  7. npm 安装 express
  8. 在 package.json
  9. 的同一文件夹中创建一个 server.js
  10. 写下并保存

    var app = require("express");
    var app = app();
    var vidStreamer = require("vid-streamer");
    app.get("/videos/:type", vidStreamer); //{folder}/{videoName.extension}
    app.listen(3000);
    
  11. 更新 vid-streamer 配置:打开 node_modules/vid-streamer/config/ 并编辑 json 文件 vidStreamer-sample.json:

    {
    "mode": "development",
    "forceDownload": false,
    "random": false,
    "rootFolder": "",   <----
    "rootPath": "",  <-------
    "server": "VidStreamer.js/0.1.4",
    "maxAge": "3600",
    "throttle": false
    }
    
  12. 在我们 server.js
  13. 的同一级别创建一个名为 videos 的文件夹
  14. 在里面添加一个avi文件
  15. 在终端上制作 cd,然后是我们 server.js
  16. 所在文件夹的路径
  17. 运行节点server.js
  18. 打开浏览器并输入'localhost:3000/videos/{name_of_your_vid_File.extension}

我可以流式传输 mp4 文件和 ogg,但不能流式传输 avi 文件。 所以问题是我怎样才能解决这个问题以便流式传输 avi 文件

首先要知道,浏览器不是视频播放器,不能指望浏览器可以播放任何格式的视频!

此外,由于多种原因,并非所有视频格式都适合网络,所以当您想要流式传输视频时,请始终考虑这一点,并考虑如何使您的视频适合网络,而不是如何使网络适合您的视频(如您的问题;))。

最近的浏览器可以原生支持一些视频格式,如 MP4, WEBM and OGG which will be played using the HTML5 <video> element, in the case where a video format is not natively supported, the browser will try to play it with a plugin like VLC Web Plugin, QuickTime, Osmozilla - GPAC Plugin,...否则(没有合适的插件),浏览器将简单地下载文件(或在询问用户后使用关联的应用程序打开它).

所以 "resolve your problem",我认为你有 2 个选择:

  • 将您的视频转换为本地支持的格式。
  • 强制用户为您的视频获取合适的插件,这在技术上是不可能的。

有关这一切的更多信息,您可以查看这些链接:

当然,在这里我只是想给你一个简短的 "answer" 来回答你关于直接在浏览器中播放视频的问题(没有 HTML ),我想在此之后,你一定会想要在 HTML 页中播放您的视频,您还可以在上面的链接中找到答案。

希望能帮到你。