【问题标题】:How to stream RTSP with a nodejs server?如何使用 nodejs 服务器流式传输 RTSP?
【发布时间】:2019-08-25 18:11:57
【问题描述】:

您好,我正在开发一个新项目,我想通过节点 Web 服务器流式传输来自我的网络摄像机的 RTSP 流。我不想使用 ONFIV 协议进行蒸汽,而是直接使用 rtsp 流。到目前为止,我已经测试了 github 上展示的大部分项目,但没有成功。 现在有没有人提供文档或项目来解释(服务器和 html 端)如何使用节点 javascript 服务器将 RTSP 流流式传输到 HTML 页面?

【问题讨论】:

    标签: javascript node.js video-streaming rtsp


    【解决方案1】:

    我使用 node-rtsp-stream NPM 将 RTSP 流式传输到使用 Web 套接字的 HTML 网站。下面的代码通过在端口 9999 中运行的 WebSocket 将实时帧流式传输到 HTML。

    这是运行正常的简单 NodeJS 服务器代码。 注意:

    1. 如果您有 IP 摄像机的用户名和密码,请不要忘记在 URL 中添加用户名和密码。 EX:rtsp://username:password@ipaddress:port/h264_ulaw.sdp'
    2. 在你的机器上安装FFmpeg,并将FFmepg的bin路径设置为系统环境。

    Server.js:

      var stream = require('node-rtsp-stream')
      const express = require('express')
      const app = express()
    
      stream = new stream({
        name: 'name',
        streamUrl: 'your RTSP URL',
        wsPort: 9999
    })  
    

    对于客户端你不需要太多,确保你有jsmpeg.min.js,在浏览器中运行下面的代码。在节点中运行 server.js 后,您将获得 HTML 页面中的实时流。

    此 HTML 代码使用 JSMpeg Player 从 WebSocket 显示 HTML 中的二进制图像

    注意:https://raw.githubusercontent.com/phoboslab/jsmpeg/master/jsmpeg.min.js client.html: 我从这个链接复制了原始的 jsmpeg.min.js 并将其粘贴。

      <html>
      <body>enter code here
        <div style="height: 30rem; width:30rem ;">
            <canvas id="canvas" onclick="stop()"></canvas>
        </div>
    
      </body>
    
      <script type="text/javascript" src="jsmpeg.min.js"></script>
      <script type="text/javascript">
        player = new JSMpeg.Player('ws://localhost:9999', {
          canvas: document.getElementById('canvas') // Canvas should be a canvas DOM 
     element
        })  
        function stop(){
            player.stop()
        }
     </script>
      </html>
    

    【讨论】:

    • 没有任何解释的代码很少有帮助。 Stack Overflow 是关于学习的,而不是提供 sn-ps 来盲目复制和粘贴。请编辑您的问题并解释它如何回答所提出的具体问题。见How to Answer
    • 抱歉这样回答。我将编辑答案。谢谢你指导像我这样的菜鸟@sfili
    【解决方案2】:

    使用 node-rtsp-stream 节点模块,安装 ffmpeg,设置 ffmpeg PATH OSwide。在浏览器级别使用节点模块 jsmpeg 并在画布元素中显示流。

    【讨论】:

      猜你喜欢
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      相关资源
      最近更新 更多