Giter Site home page Giter Site logo

rtsp2web's Introduction

rtsp2web

rtsp2web 是一个提供在 web 页面中直接播放 rtsp 视频流解决方案的工具。

【前言】 refer 是一个小的独立的 demo 程序,学习它对你有很大的帮助(都有注释的)。

How to use(如何在你的项目中使用这个工具)

1、 安装依赖

npm i rtsp2web

2、 创建一个新建 js 文件(例如:main.js

// main.js
const RTSP2web = require('rtsp2web')

// 服务端长连接占据的端口号;端口号可以自定义
const port = 9999
// 分辨率
const videoSize = '1920x1080'

new RTSP2web({
  port,
  videoSize
})

2.1、参数说明

参数 解释说明
port 转码服务占用的端口号;(type:Number)
默认值:9999
videoSize 摄像头分辨率;(type:String)
默认值:'1920x1080'
如果播放出来的视频花屏,马赛克,比例不对等等问题,可以调整这个参数

3、 运行 node main.js,启动视频流转码服务

4、 在页面中播放视频

// index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no,viewport-fit=cover"
    />
    <script src="https://jsmpeg.com/jsmpeg.min.js" charset="utf-8"></script>
    <title>播放rtsp</title>
  </head>
  <body>
    <canvas id="canvas_1" style="width: 600px; height: 600px;"></canvas>
    <canvas id="canvas_2" style="width: 600px; height: 600px;"></canvas>
  </body>
  <script>
    var rtsp1 =
      'rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4'
    var rtsp2 =
      'rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4'
    window.onload = () => {
      // 将rtsp视频流地址进行btoa处理一下
      new JSMpeg.Player('ws://localhost:9999/rtsp?url=' + btoa(rtsp1), {
        canvas: document.getElementById('canvas_1')
      })
      new JSMpeg.Player('ws://localhost:9999/rtsp?url=' + btoa(rtsp2), {
        canvas: document.getElementById('canvas_2')
      })
    }
  </script>
</html>

PS: 在页面中播放视频,需要依赖 jsmpeg.js 工具包,请记得引入 jsmpeg.js

详细参考例子:https://github.com/Neveryu/rtsp2web/tree/master/example

5、关于 package script 中脚本命令的说明:

todo

补充知识点

关于在代码编辑器中(以 VSCode 为例)使用 prettier

prettier 配置项/规则:

https://prettier.io/docs/en/options.html

https://prettier.io/docs/en/configuration.html

change log [更新日志]

[2023-01-12]优化了rtsp2web的启动,只需传入端口号即可;将更多的ffmpeg配置参数放到创建视频播放实例时传入,增强了视频播放的可配置性,每一个不同的rtsp视频源都可以单独配置。相较于之前全局rtsp2web只有一种配置,现在配置粒度更小,可行性更强。

开发人员须知

开发时,在 resource.js 上进行源码开发和本地测试;本地测试使用 test 目录,启动 test 目录中的 index.js,然后,打开 test 目录中的 index.html 页面即可。

donate

If you think rtsp2web help you. maybe you can donate a litter. 🍻🍻

donate link

rtsp2web's People

Contributors

neveryu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.