【Vue2 + webrtc-steamer】rtsp流在Web端实时播放

rtsp流-视频播放

  1. 操作系统:Win10
  2. vue版本:vue2

一. 方法

  1. 必须将rtsp通过 播放器插件/服务器/… 转换为 flv/webrtc/…
  2. 最新在线可用rtsp码流地址(可用flv播放器测试):rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4
  3. rtmp地址
    rtmp://ns8.indexforce.com/home/mystream
  4. https地址 :
    MP4: https://baikevideo.cdn.bcebos.com/media/mda-OgKIAVGwqTr85ead/6010f8507988556ac6e536ffb7f74031.mp4
    m3u8:https://1500005692.vod2.myqcloud.com/43843706vodtranscq1500005692/62656d94387702300542496289/v.f100240.m3u8
  5. http地址
    mp4:http://1308239071.vod2.myqcloud.com/19d9adbcvodbj1308239071/d550d3ea243791577158966399/f0.mp4

二. 调研播放器

  1. 腾讯云TCPlayer
    (1)支持:WebRTC、FLV、HLS的直播流地址,以及HLS、FLV、MP4等格式的点播播放地址
    (2)不支持:RTSP、RTMP流地址
    (3)demo:https://tcplayer.vcube.tencent.com/
    (4)步骤:https://cloud.tencent.com/document/product/881/30818,如下通过npm
    安装步骤

  2. flv.js + video.js
    (1)原理:RTSP转FLV
    (2)支持:FLV格式的点播播放地址
    (3)不支持:非FLV格式的地址
    (4)步骤:参考链接,点我跳转

  3. vue-video-player+video.js:只支持flash插件的浏览器

  4. 海康威视:需要申请accessKey、ip、port等,有专门的管理平台(太麻烦,没有研究,简单了解了下)。支持rtsp流。
    (1)下载WEB端视频播放插件:https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=10
    在这里插入图片描述
    (2)可执行文件
    在这里插入图片描述
    (3)使用说明
    在这里插入图片描述

三. 最终确定播放器

  1. webrtc
    (1)原理:利用webbrct将rtsp转为WebRTC流播放
    (2)支持:仅rtsp流地址
    (3)下载链接:https://github.com/mpromonet/webrtc-streamer/releases
    (4)步骤:
    ① 下载:根据所需下载 Linux或Windows 安装包
    下载
    ② 以Windows为例,双击webrtc-streamer.exe
    exe
    ③ 打开窗口
    窗口
    ④ vue中使用
    打开解压的文件夹,找到webrtcsteamer.js。将其复制到vue项目中static下即可(自定义路径)
    web
    新建vue文件,如下代码可直接使用
<template>
  <div class="home">
    <video
      :id="currentPlayer"
      :style="{
        width: canvasWidth + 'px',
        height: canvasHeight + 'px',
        margin: margin
      }"
      autoplay
      controls
    ></video>
  </div>
</template>

<script>
import "../../../../static/js/webrtcstreamer";
export default {
  data() {
    return {
      webRtcServer: null,
      currentPlayer:'video',
      canvasWidth:900,
      canvasHeight:900,
      margin:2% auto
    };
  },
  mounted() {
    // webrtc-streamer:启动的服务器IP,8000是默认端口号,可在服务端启动时更改
    this.webRtcServer = new WebRtcStreamer(
      this.currentPlayer,
      location.protocol + "//127.0.0.1:8000"
    );
    //需要看的rtsp视频地址,可以在网上找在线的rtsp视频地址来进行demo实验,在vlc中能播放就能用
    this.webRtcServer.connect(
      "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4"
    );
  },
  beforeDestroy() {
    this.webRtcServer.disconnect();
    this.webRtcServer = null;
  }
};
</script>

⑤ 播放rtsp流结果如下
在这里插入图片描述

四. 未调研

  1. Nginx+ffmpeg+nginx-http-flv-module
  2. Streamedian
    (1)参考链接:点我跳转

五. 参考链接

  1. node + ffmpeg + websocket + flv.js: https://www.qiyuandi.com/zhanzhang/zonghe/9520.html
  2. 几种视频流播放方法分析:点我跳转
  3. video + webrtc:http://www.kuazhi.com/post/321222.html
### webrtc-streamer 项目文档和示例代码 #### 文档资源 webrtc-streamer 提供了详细的官方文档,涵盖了项目的各个方面,包括但不限于配置选项、功能说明以及常见问题解答。这些文档对于开发者理解和使用该项目至关重要[^4]。 #### 示例代码展示 下面是一些基于 webrtc-streamer 的典型应用场景及其对应的实现方式: ##### 使用 WebRTC 媒体播放器处理 RTSP 视频 为了在 Vue.js 中集成并利用 webrtc-streamer播放来自 IP 摄像头或其他支持 RTSP 协议设备的直播视频,可以参照如下实例: ```javascript // main.js (Vue Entry Point) import Vue from 'vue'; import App from './App.vue'; new Vue({ render: h => h(App), }).$mount('#app'); // components/WebRtcPlayer.vue <template> <div id="player"></div> </template> <script> export default { name: "WebRtcPlayer", mounted() { this.initPlayer(); }, methods: { initPlayer() { const player = new window.WebRTCPeerConnection(null); navigator.mediaDevices.getUserMedia({ video: true }).then((stream) => { let source = document.createElement('source'); source.srcObject = stream; document.getElementById('player').appendChild(source); // Connect to the remote server using WebSocket or other protocols. }); } } }; </script> ``` 此段代码片段展示了如何创建一个简单的 HTML5 `<video>` 元素并通过 JavaScript API 获取本地摄像头权限来初始化 WebRTC 连接过程;然而,在实际应用中通常会涉及到更复杂的信令机制和服务配合工作以完成完整的 P2P 音视频通话或推拉操作[^1]。 另外,如果希望构建更加复杂的应用程序,则可以直接参考 GitHub 上由社区维护者提供的完整源码仓库 `https://gitcode.com/gh_mirrors/we/webrtc-streamer` ,其中包含了更多高级特性和最佳实践案例[^2]。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值