【问题标题】:Stream a video from another server to the client through my nodejs server通过我的 nodejs 服务器将视频从另一台服务器流式传输到客户端
【发布时间】:2023-03-26 17:36:02
【问题描述】:

我将视频存储在某些客户端无法访问的服务器 (server1) 上,而我有另一台服务器 (server2) 可以访问 server1 并且客户端可以访问。

我希望这些客户能够在他们的浏览器上通过 server2 观看这些视频。

  • 我不能将他们重定向到 server1,因为他们无法访问它。
  • 我无法在 server2 上下载和保存视频,因为我没有那么多空间。
  • 我知道如何使用块将本地视频流式传输到客户端。
  • 我知道如何使用 http 下载和保存视频。

有什么方法可以使用 server2 上的 nodejs 将这些视频从 server1 流式传输到客户端?

【问题讨论】:

    标签: node.js express npm video-streaming nodejs-stream


    【解决方案1】:

    request 模块已弃用,但他们有一个不错的流式传输示例

    const request = require('request');
    
    http.createServer(function (req, resp) {
      if (req.url === '/doodle.png') {
        if (req.method === 'GET') {
          request.get('http://example.com/doodle.png').pipe(resp)
        }
      }
    })
    

    您可以使用 request 模块,它仍然很强大,或者适应任何其他请求替代方案或内置的 http 模块。

    【讨论】:

    • 我为此使用了请求模块,但它对我没有多大帮助,因为每个视频的大小都很大(大约 2 GB),所以请求模块并没有通过管道传输整个视频,它只是就像它的前 10 MB 一样。而且我也无法根据请求分块流式传输视频。
    • 可能不是请求问题,可能是服务器问题或客户端的正确标头。当请求 \nodejs 流时,没有人真正关心大小。
    • 顺便说一句,您必须通过NodeJS服务器专门解决它吗?它可以通过配置良好的代理轻松解决
    • 我使用 request 来传输大约 30 mb 大小的 2 分钟视频,效果很好。但是对于 1GB 大小的 1 小时视频,它只给了我前 3 分钟。我认为问题在于请求可以获取和管道的响应大小。
    • 有没有关于代理的文章或东西可以提供给我?
    猜你喜欢
    • 2012-04-15
    • 2014-01-19
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    相关资源
    最近更新 更多