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

时间:2015-01-15 09:30:54

标签: node.js streaming video-streaming

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

  1. 安装只需在您的电脑上创建一个文件夹
  2. 打开终端并执行CD到文件夹
  3. 执行npm init
  4. 为应用程序命名为“MyVidStreamer”
  5. 将创建package.json
  6. npm install express
  7. 在package.json
  8. 的同一文件夹上创建server.js.
  9. 写下并保存

    var app = require("express");
    var app = app();
    var vidStreamer = require("vid-streamer");
    app.get("/videos/:type", vidStreamer); //{folder}/{videoName.extension}
    app.listen(3000);
    
  10. 更新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
    }
    
  11. 在我们的server.js
  12. 的同一级别创建一个名为videos的文件夹
  13. 在其中添加一个avi文件
  14. 在终端上制作cd后跟路径到我们有server.js
  15. 的文件夹
  16. 运行节点server.js
  17. 打开浏览并输入'localhost:3000 / videos / {name_of_your_vid_File.extension}
  18. 我能够传输mp4文件和ogg,但不能传输avi文件。 所以问题是我如何解决这个问题才能流式传输avi文件

1 个答案:

答案 0 :(得分:1)

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

此外,由于多种原因,并非所有视频格式都适合网络,因此在您想要视频流时,请务必考虑这一点,并考虑如何使您的视频适合网络,而不是如何制作网页适合您的视频(如您的问题;))。

在视频格式的情况下,最近的浏览器可以原生支持某些视频格式,例如MP4WEBMOGG,这些格式将使用HTML5 <video>元素播放本机不支持,浏览器会尝试使用plugin VLC Web PluginQuickTimeOsmozilla - GPAC PluginMozilla Developer Network : Media formats supported by the HTML audio and video elements进行播放,否则(没有合适的插件),浏览器只需下载文件(或在询问用户后用关联的应用程序打开它)。

所以要解决你的问题&#34;,我认为你有两个选择:

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

有关所有这些内容的更多信息,您可以查看以下链接:

当然,我在这里试着给你一个简短的答案&#34;关于直接在浏览器中播放视频的问题(没有HTML),我想在此之后,您肯定会想到在HTML页面中播放视频,您也可以在上面的链接中找到答案。

希望所有这些都有所帮助。