node-rtsp-stream +jsmpeg 低延迟视频推流显示方案

这篇具有很好参考价值的文章主要介绍了node-rtsp-stream +jsmpeg 低延迟视频推流显示方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

node-rtsp-stream +jsmpeg 低延迟视频推流显示方案

需要ffmpeg,node环境
需要node启动websocket ,前台使用jsmpeg直接接收显示
服务端代码如下,可在electron中写 一体化

const Stream = require('node-rtsp-stream');
import express from 'express';
const app = express();
// let router = express.Router();
// 设置rtsp视频流
// const rtsp_url = 'rtsp://192.168.1.10:554/stream1'
const rtsp_url = 'rtsp://admin:hiwei713@192.168.1.65:554/h264/ch33/main/av_stream'
var streams = {}

app.all('*', function (req, res, next) {
  res.header("Access-Control-Allow-Origin", req.headers.origin);
  // res.header("Access-Control-Allow-Origin", '*');
  res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  res.header("Access-Control-Allow-Credentials", "true");
  res.header("X-Powered-By", ' 3.2.1')
  if (req.method === "OPTIONS") res.send(200);/*让options请求快速返回*/
  else next();
});
//开启一路新视频
function setNew(id, rtsp) {
  var size= '1920*1080'
  return streams[id] = new Stream({
    name: 'sockets',
    // streamUrl: 'rtsp://admin:hiwei713@192.168.1.65:554/h264/ch33/main/av_stream',
    streamUrl: rtsp ? rtsp : rtsp_url,
    wsPort: `998${id}`,
    ffmpegOptions: { // 选项ffmpeg标志
      '-stats': '', // 没有必要值的选项使用空字符串
      '-r': 30, // 具有必需值的选项指定键后面的值<br>    
      '-s': size,
      '-b:v': '4000k'
    }
  })
}
// 关闭一路
function closeS(id) {
  if (streams[id]) {
    streams[id].wsServer.close()
    streams[id].mpeg1Muxer.stream.kill()
    streams[id] = null
  }
}
app.get('/open', (req, res) => {
  if (!streams[req.query.id]) {
    streams[req.query.id] =
      setNew(req.query.id, req.query.rtsp ? req.query.rtsp : 'rtsp://admin:hiwei713@192.168.1.65:554/h264/ch33/main/av_stream')
  }
  res.send("123");
});

app.get('/close', (req, res) => {
  //关闭已经开启的websocket

  if (req.query.id == 'all') {
    // streams
    for (let i = 1; i < 8; i++) {
      console.log(streams[i])
      if (streams[i]) {
        closeS(i)
      }
    }
  } else {
    closeS(req.query.id)
  }
  console.log('关闭')
  res.send("关闭成功");
});



app.listen(1111, function () {
  console.log('启动')

})

可实时开启关闭websocket
前台使用JSMpeg 加载websocket链接就好,延迟可做到500ms,也是我试验了rtsp转flv,rtmp 延迟最低的方式文章来源地址https://www.toymoban.com/news/detail-659120.html

到了这里,关于node-rtsp-stream +jsmpeg 低延迟视频推流显示方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows环境下实现ffmpeg本地视频进行rtsp推流

    摘要:有时候服务端(如linux)或者边缘端(jetson盒子)需要接受摄像头的视频流输入,而摄像头的输入视频流一般为rtsp,测试时需要搭建摄像头环境,很不方便,因此需要对本地视频进行rtsp推流,模拟摄像头的rtsp输入。 本地使用windows10, 64位 rtsp下载地址:https://github.com

    2024年04月13日
    浏览(34)
  • 视频推流测试——使用ffmpeg进行推流生成rtsp视频流

    在我们完成开发工作之后,需要通过推流的形式来验证能否正确接收视频流,并送入视频检测程序。笔者在这里使用的是业内最为常用的ffmpeg。具体方法如下。 访问ffmpeg的官网,地址为https://ffmpeg.org/download.html,按照如下途中来选择下载。 下载完成后,会得到一个zip格式的压

    2024年02月09日
    浏览(50)
  • web端实现rtsp实时推流视频播放可行性方案分析

    1.1 什么是WebRTC 百度概念 :WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装

    2024年02月16日
    浏览(37)
  • web播放rtsp流视频,使用webrtc毫秒级延迟

    目录 一、zlmediakit环境搭建和编译 1)、下载zlmediakit 2)、安装依赖 3)、编译webrtc 4)、启动zlmediakit 二、播放webrtc视频 1)、动态添加拉流代理 2)、播放视频  三、嵌入到自己的vue项目中。 1)、拷贝demo到自己的vue项目中 2)、mkcert生成证书 背景:需要在web应用中播放摄像头的rtsp流视

    2024年02月04日
    浏览(46)
  • 将mp4视频推流rtsp,并转为http直播流,在前端显示

    最近有个需求,在vue页面的video组件播放直播流,本来想用flv.js,但是必须要flv格式才行,所以还是用原生video播放http直播流。 1. 将本地mp4推流rtsp 下载并解压EasyDarwin,双击EasyDarwin.exe运行,在控制台可以看到开启了两个服务,一个是rtsp服务端,一个是http服务。访问http://l

    2024年02月12日
    浏览(47)
  • ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)

    FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率

    2024年02月09日
    浏览(66)
  • Android 内置RTSP/RTMP服务器,实现局域网内视频推流与播放

    工作中有一个需求,在同一个局域网内, 需要将Android平板端(车机)上的摄像头上的画面,实时传输到手机上进行播放。 对于这个需求,我们想到了用 RTSP/RTMP 进行推流,然后在手机端拉流进行播放。 这个技术方案的主要技术点有 平板端内置 RTSP/RTMP 服务器 平板端获取摄像头

    2023年04月27日
    浏览(89)
  • 基于开源的Micro-RTSP,使用VLC和ffmpeg拉流播放RTSP视频流,本例使用安信可ESP32 CAM进行推流。

    基于开源的Micro-RTSP,使用VLC和ffmpeg拉流播放RTSP视频流,本例使用安信可ESP32 CAM进行推流。 vlc播放命令为:rtsp://192.168.43.128:8554/mjpeg/1。 ffmpeg播放命令为:ffplay rtsp://192.168.43.128:8554/mjpeg/1。 使用ESP-IDF5.0编译成功。esp-idf-v4.4.2编译不成功,有成功的小伙伴可以分享一下。 git cl

    2024年02月01日
    浏览(43)
  • 多源视频融合平台VMS/smarteye,免费的GB28181 server, 免费的RTMP推流server,RTSP server

    第三方国标摄像头走GB28181接入视频融合平台VMS/smarteye, 平台已为设备预分配了SIP帐号,这样免去了找平台人员索要接入SIP帐号的麻烦, 可实现设备的快速接入。 SIP服务器ID:34020000002000000001 SIP 服务器域:3402000000 SIP 用户名:34020000001320000600 SIP 用户名认证ID:34020000001320000600 SIP 用

    2024年03月11日
    浏览(56)
  • ESP32-CAM网络摄像头系列-01-基于RTSP协议的局域网视频推流/拉流的简单实现

            由于项目需要,最近开始开坑关于ESP32-CAM系列的RTSP网络摄像头系列,该文章为该系列的第一篇文章。用于记录项目开发过程。         使用ESP32-CAM获取图像数据,并通过RTSP协议将获取到的视频流传输到上位机进行显示。         使用ESP32-CAM进行视频推流,

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包