NodeJS / ExpressJS:代理HTTPvideostream(来自VLC)

使用VLC 2.2.1,我创build了一台由名为server的计算机托pipe的摄像头的HTTPstream。

在另一台电脑上, 客户端 ,如果我打开vlc,并打开networkingstreamhttp://server:8080我可以很好地看到networking摄像头的video。

HTTPstream的wireshark捕获如下所示:

 GET / HTTP/1.1 Host: server:8080 User-Agent: VLC/2.2.0-rc2 LibVLC/2.2.0-rc2 Range: bytes=0- Connection: close Icy-MetaData: 1 HTTP/1.0 200 OK Content-type: application/octet-stream Cache-Control: no-cache FLV....................... onMetaData.......duration...........width.@.........height.@~....... videodatarate.@.@.......videocodecid.@.........encoder.. Lavf56.1.0..filesize.... etc... 

客户端计算机上,我有一个在NodeJS v5&Express v3下运行的API,我想要有一个url: http:// client / video作为http:// server:8080的代理,这样用户只能看到一个端点。

我看到几个npm模块声称是“代理”,但由于内容的特殊性(实时videostream),我不确定我应该做什么。

 var express = require('express') var fetch = require('node-fetch') var app = express() app.get('/video', (req, res) => { fetch('http://server:8080') .then(r => r.body) .then(s => { s.pipe(res) }) .catch(e => { res.status(500).send('Error.') }) }) app.listen(80) 

打开80端口,你需要成为根,所以用sudo运行