使用VLC 2.2.1,我创建了一个由名为 server 的计算机托管的网络摄像头的HTTP流。
在另一台计算机上,客户端,如果我打开vlc,并打开网络流http://server:8080
我可以完美地看到网络摄像头视频。
HTTP流的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,我希望有一个像http://client/video这样的网址作为http://server:8080的代理,这样用户只能看到一个端点。
我看到很少有npm模块声称自己是“代理”,但由于内容的特殊性(直播视频流),我不确定应该做什么。
答案 0 :(得分:0)
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,您需要是root用户,因此请使用sudo