如何使用 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。
- 要安装,只需在您的电脑上创建一个文件夹
- 打开终端并执行 CD 到文件夹
- 执行 npm 初始化
- 给应用起一个像 'MyVidStreamer'
这样的名字
- 将创建一个package.json
- npm 安装 express
- 在 package.json
的同一文件夹中创建一个 server.js
写下并保存
var app = require("express");
var app = app();
var vidStreamer = require("vid-streamer");
app.get("/videos/:type", vidStreamer); //{folder}/{videoName.extension}
app.listen(3000);
更新 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
}
- 在我们 server.js
的同一级别创建一个名为 videos 的文件夹
- 在里面添加一个avi文件
- 在终端上制作 cd,然后是我们 server.js
所在文件夹的路径
- 运行节点server.js
- 打开浏览器并输入'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 个选择:
- 将您的视频转换为本地支持的格式。
- 强制用户为您的视频获取合适的插件,这在技术上是不可能的。
有关这一切的更多信息,您可以查看这些链接:
- Mozilla Developer Network : Media formats supported by the HTML audio and video elements.
- The Chromium Projects : Everything you need to know about audio/video inside Chromium.
- Wikipedia : HTML5 video.
- caniuse.com : MPEG-4/H.264 video format(另请参阅底部的“资源”选项卡)。
- caniuse.com : WebM video format(另请参阅底部的“资源”选项卡)。
- caniuse.com : Ogg/Theora video format(另请参阅底部的“资源”选项卡)。
- Microsoft Developer Network : How to use HTML5 to play video files on your webpage.
- Dev.Opera : Introduction to HTML5 Video.
当然,在这里我只是想给你一个简短的 "answer" 来回答你关于直接在浏览器中播放视频的问题(没有 HTML ),我想在此之后,你一定会想要在 HTML 页中播放您的视频,您还可以在上面的链接中找到答案。
希望能帮到你。
我正在使用 vid-streamer https://github.com/meloncholy/vid-streamer。
- 要安装,只需在您的电脑上创建一个文件夹
- 打开终端并执行 CD 到文件夹
- 执行 npm 初始化
- 给应用起一个像 'MyVidStreamer' 这样的名字
- 将创建一个package.json
- npm 安装 express
- 在 package.json 的同一文件夹中创建一个 server.js
写下并保存
var app = require("express"); var app = app(); var vidStreamer = require("vid-streamer"); app.get("/videos/:type", vidStreamer); //{folder}/{videoName.extension} app.listen(3000);
更新 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 }
- 在我们 server.js 的同一级别创建一个名为 videos 的文件夹
- 在里面添加一个avi文件
- 在终端上制作 cd,然后是我们 server.js 所在文件夹的路径
- 运行节点server.js
- 打开浏览器并输入'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 个选择:
- 将您的视频转换为本地支持的格式。
- 强制用户为您的视频获取合适的插件,这在技术上是不可能的。
有关这一切的更多信息,您可以查看这些链接:
- Mozilla Developer Network : Media formats supported by the HTML audio and video elements.
- The Chromium Projects : Everything you need to know about audio/video inside Chromium.
- Wikipedia : HTML5 video.
- caniuse.com : MPEG-4/H.264 video format(另请参阅底部的“资源”选项卡)。
- caniuse.com : WebM video format(另请参阅底部的“资源”选项卡)。
- caniuse.com : Ogg/Theora video format(另请参阅底部的“资源”选项卡)。
- Microsoft Developer Network : How to use HTML5 to play video files on your webpage.
- Dev.Opera : Introduction to HTML5 Video.
当然,在这里我只是想给你一个简短的 "answer" 来回答你关于直接在浏览器中播放视频的问题(没有 HTML ),我想在此之后,你一定会想要在 HTML 页中播放您的视频,您还可以在上面的链接中找到答案。
希望能帮到你。