前端VUE播放RTSP、RTMP、HLS、FLV视频流的解决方案

这篇具有很好参考价值的文章主要介绍了前端VUE播放RTSP、RTMP、HLS、FLV视频流的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近有个需求是前端在浏览器显示摄像头传回的RTSP视频流,我和后端都没做过视频流的项目,所以一步步摸索过来,方法和经验供大家参考。前端采用的技术有VUE+video.js+flv.js

前端播放rtmp流,前端,vue.js,javascript,ffmpeg,音视频,网页播放器

二、几种视频流的播放方法

1.RTSP

从上图可以看出,RTSP流不能直接在浏览器播放,所以需要转码:

2.RTSP转RTMP

RTMP的流需要在浏览器中用flash播放器,但是谷歌已经在2020年底带头不支持flash插件了

3.RTSP转HLS
后端将视频转成HLS流,以m3u8后缀结尾。通过浏览器用video.js可以正常播放,但是发现和原视频存在5秒左右的延迟,不符合项目的实时性需求,所以有实时视频的需求不建议用HLS流播放。下面提供几个HLS的测试地址:
http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8(CCTV-1到CCTV-14,改为相应cctv1hd就可以)
http://ivi.bupt.edu.cn/hls/hunanhd.m3u8(湖南卫视高清)
http://ivi.bupt.edu.cn/hls/btv1hd.m3u8(北京卫视高清)

4.RTSP转FLV
经过和后端不断讨论,最后决定用RTSP转flv格式的方案来播放视频。flv.js是一个较成熟的前端处理flv格式的插件库,是B站视频的开源插件。以下就是我前端播放视频的代码:

首先自行安装video.js和flv.js的依赖
 

// 容器
 <div class="myVideo-video">
      <video
        id="myFlvVideo"
        muted
        autoplay
        width="500px"
        height="250px"
      />
    </div>
// 创建和销毁video
   createVideo() {
      if (flvjs.isSupported()) {
        var videoElement = document.getElementById('myFlvVideo')
        this.flvPlayer = flvjs.createPlayer(
          {
            type: 'flv',
            isLive: true,
            hasAudio: false,
            url:
              'http://123.456.7.890:80/live?port=1935&app=myapp&stream=mystream'
          },
          {
            cors: true, // 是否跨域
            enableWorker: true, // 是否多线程工作
            enableStashBuffer: false, // 是否启用缓存
            stashInitialSize: 128, // 缓存大小(kb)  默认384kb
            autoCleanupSourceBuffer: true // 是否自动清理缓存
          }
        )
        this.flvPlayer.attachMediaElement(videoElement)
        this.flvPlayer.load()
        this.flvPlayer.play()
        // 报错重连
        this.flvPlayer.on(flvjs.Events.ERROR, (errType, errDetail) => {
          console.log('errorType:', errType)
          console.log('errorDetail:', errDetail)
          if (this.flvPlayer) {
            this.destoryVideo()
            this.createVideo()
          }
        })
      }
    },
    destoryVideo() {
      this.flvPlayer.pause()
      this.flvPlayer.unload()
      this.flvPlayer.detachMediaElement()
      this.flvPlayer.destroy()
      this.flvPlayer = null
    }
  }
// 调用和销毁
  mounted() {
    this.$nextTick(() => {
      this.createVideo()
    })
  },
  beforeDestroy() {
    this.destoryVideo()
  },

总结

根据视频流的质量,可能会出现各种报错情况,所以视频做了报错重连。但是重连后可能会出现时间延迟的现象。解决方法,1、后端或者视频源头提高视频流的质量。2、前端做延迟自动追踪功能文章来源地址https://www.toymoban.com/news/detail-737497.html

到了这里,关于前端VUE播放RTSP、RTMP、HLS、FLV视频流的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用 阿里云 播放器播放 .flv 和 hls(.m3u8) 格式的视频流

    官方教程:https://help.aliyun.com/document_detail/125570.htm?spm=a2c4g.11186623.0.0.4a3b125de04RLI#task-1997027 在 vue 项目中的 index.html 文件中,引入视频资源 封装组件 base_video_Flv : 组件调用: web前端HTML播放HLS在线视频流(m3u8): https://blog.csdn.net/Evil_0_0_0/article/details/105768336

    2024年02月06日
    浏览(50)
  • 使用nginx和ffmpeg搭建HTTP FLV流媒体服务器(摄像头RTSP视频流->RTMP->http-flv)

    名词解释   RTSP (Real-Time Streaming Protocol) 是一种网络协议,用于控制实时流媒体的传输。它是一种应用层协议,通常用于在客户端和流媒体服务器之间建立和控制媒体流的传输。RTSP允许客户端向服务器发送请求,如播放、暂停、停止、前进、后退等,以控制媒体流的播放和

    2024年02月16日
    浏览(57)
  • Vue实现摄像头视频分屏, 使用flv.js接收rtmp/flv视频流

    1. 现有的平台系统播放实时视频。 因为用户电脑都是Linux系统,无法直接使用海康前端SDK,讨论决定由后台推视频流,简单调研后发现最流行的是flv,而且有B站开源的flv.js适配。前期后台推给我RTMP前缀的视频流,我尝试使用video.js,西瓜视频等都失败了,后来后端改为http前

    2024年02月03日
    浏览(56)
  • 【vue Dplayer】播放hls视频流

    安装Dplayer和hls.js 准备测试流 hls测试地址:(截止2023.08.08有效) http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8

    2024年02月13日
    浏览(38)
  • Qt推流程序(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)可在网页和播放器远程观看

    推流直播就是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号从手机端,电脑端,摄影机端打包传到服务器的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验比较糟糕。主流

    2024年02月04日
    浏览(73)
  • Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

    Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流: Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_win nginx-rtmp最新版_霸道流氓气质的博客-CSDN博客 Vue中使用vue-video-player和videojs-flash插件实现播放rtmp视频文件流: Vue中使用vue-video-player和videojs-flash插件实现播放

    2024年02月03日
    浏览(48)
  • electron+vue网页直接播放RTSP视频流?

    目前大部分摄像头都支持RTSP协议,但是在浏览器限制,最新版的浏览器都不能直接播放RTSP协议,Electron 桌面应用是基于 Chromium 内核的,所以也不能直接播放RTSP,但是我们又有这个需求怎么办呢? 市场上的方案很多,有很多免费开源的,同时也有比较成熟的商业软件,丰俭

    2024年02月02日
    浏览(57)
  • 关于vue播放flv,m3u8视频流(监控)的方法

    前文: 随着前端大屏页面的逐渐壮大,客户的需求也越来越多,大屏上面展示的事物也越来越丰     富。其中实时播放监控的需求逐步增加,视频流格式也是有很多种,用到最多的.flv、.m3u8。 一、 JessibucaPlayer插件用来播放flv流 1.首先是先把文件放在vue项目的public下面 2.在

    2023年04月15日
    浏览(89)
  • 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放

    目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等。 1、SRS GitHub - ossrs/srs: SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and GB28181. 2、EasyDarwin https://github.com/EasyDarwin/EasyDarwin 3、Monibuca Monibuca ·

    2023年04月16日
    浏览(60)
  • vue中web端播放rtsp视频流(摄像头监控视频)(海康威视录像机)

    ffmpeg下载 https://ffmpeg.org/download.html 找ffmpeg-release-essentials.zip点击下载,下载完解压 ffmpeg.exe 程序运行 添加成功后验证是否生效任意地方打开cmd窗口输入 ffmpeg 打印如下表示成功 新建一个app.js文件,同级目录下npm安装 node-rtsp-stream 我是直接写在项目里了,你们可以单独写在外

    2024年04月25日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包