基于vue项目 vue-video-player实现rtmp hls视频流播放

2023-10-26

视频直播 在线监控——基于vue项目 vue-video-player实现rtmp hls视频流播放

问题背景

现在很多后台管理系统都会在项目中添加实时监控/实时直播的功能,最近刚好遇到项目需求,于是就分享一下经验以及在配置过程中出现的一些问题的 解决方案

引入

这里省去vue项目环境的搭建:

  1. 安装vue-vide-player 和 videojs-flash 两个包
npm install vue-video-player videojs-flash --save
  1. 安装完成后能在package.json里查看到版本号
    版本号以实际安装为准
  2. 接下来就在需要的页面里去引入这两个包

注意 vue-video-player 必须在 videojs-flash 之前引入 ,否则在解析的时候会出现不可预知的错误,另外最好引入默认样式

import "video.js/dist/video-js.css";
import { videoPlayer } from "vue-video-player";
import "videojs-flash";

搭建页面

  1. 页面写点基础样式,楼主采用的是 d2 admin这套框架样式,所以在外层嵌套的标签是 ,大家在写的时候,最外层就用template标签嵌套就行了;

**核心标签就是 videoPlayer,其他样式仅供参考 vjs-custom-skin videoPlayer这两个class是默认的样式 记得写上 。:options=“数据源” **

<template>
  <d2-container>
    <div class="video-container">
      <videoPlayer class="vjs-custom-skin videoPlayer" :options="playerOptions" width="70%"></videoPlayer>
    </div>
    <div class="video-detail">
      <el-card>
        <div class="title">xx大厦后侧消防通道</div>
        <div class="title">设备型号:某康SXC-3</div>
        <div class="title">人群密度:低</div>
        <div class="title">清晰度:高</div>
        <div class="title">设备状态:开启</div>
        <el-switch
          class="title"
          style="display: block"
          v-model="value2"
          active-color="#13ce66"
          inactive-color="#00adb5"
          active-text="信号源2"
          inactive-text="信号源1"
        ></el-switch>
      </el-card>
    </div>
  </d2-container>
</template>

配置视频流地址

  1. 接下来在deta里面配置 视频流地址
  2. 注意! 配置地址前可以先去下载一个vlc播放器(根据你的操作系统选择对应版本),放地址之前先在vlc播放器上测试一下视频是否有问题。避免不必要的麻烦
  3. 安装完成后如下图所示
    安装完成示意图
  4. 接下来测试rtmp/rtsp/hls等视频流是否可用打开网络串流
    选择打开网络串流
  5. 在地址中输入后台提供给你的视频流地址
    后台测试地址
    这里提供两个地址:
    韩国GOOD TV:rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp
    香港电视台:rtmp://live.hkstv.hk.lxdns.com/live/hks

在这里插入图片描述
7. 如果地址不通,去找后端,如果地址通了,那就可以在data里面配置数据了;
8. data配置如下:

     playerOptions: {
        height: "600",//播放器高度
        sources: [
          {
            type: "rtmp/mp4",//视频流协议,如果是hls,需要后端开启跨域
            // 内测地址
            src: "rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp"
          }
        ],
        techOrder: ["flash"],
        autoplay: true,//自动播放
        controls: true//编辑器控件
        //更多参数建议查看vue-video-player官网,这里只提供参考
      }

10.接下来导出该页面,并配置路由或者在其他页面以子组件方式引入(这里不多做说明)

export default {
  name: "Video",
  components: {
    videoPlayer
  },
  data(){
  //上一步的playerOptions数据写在这里
  }
  }
  1. 最后一步npm run dev 就可以看到效果了!。
  2. 成功

注意事项

1、后端提供的地址如果在vlc中测试没有问题,但在项目中引入后报错

request connection failed

如rtmp://192.168.142.70:1935/Vehicle
在项目中需要写成rtmp://192.168.142.70:1935/Vehicle/

2、如果本地局域网能实现,到真实项目上线时,需要在nginx上做nginx反向代理TCP,取RTMP流
否则也会出现request connection failed的错误

3、项目需要在服务器环境运行,本地直接访问浏览器是无效的!!!(重要的事情打三个感叹号)

4、其他问题可以在留言区讨论

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于vue项目 vue-video-player实现rtmp hls视频流播放 的相关文章

  • 如果没有“new”,则无法调用类构造函数

    感谢这个问题已经被问过几次了 但是我遇到的几乎所有情况都是有人试图扩展非本地类的情况 我的情况有所不同 我有一个非常简单的基类 名为CObject如下 export class CObject extends BaseObject cons
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • 水平滚动的表格上的“粘性”标题......完全不可能?

    经过过去几个小时的研究后 我开始认为这是不可能的 即使在最新的浏览器上也是如此 HTML table具有水平滚动的元素 带有 粘性 thead在顶部 作为垂直滚动的周围网页的一部分 这是我的尝试 a height 100px backgro
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • 如何立即启动setInterval循环? [复制]

    这个问题在这里已经有答案了 在一个简单的setInterval setInterval function Do something every 9 seconds 9000 第一个动作将在 9 秒后发生 t 9s 如何强制循环立即执行第一个
  • 设置双指缩放时精确的滚动位置

    我正在创建一个地图应用程序 它将标记图像放置在画布上并滚动到它 我正在使用浏览器的捏缩放和滚动来放大 缩小地图 然而 我注意到有一些奇怪的行为 我想知道如何解决它 这有点难以解释 但我们开始吧 假设您处于网页的标准缩放级别 无法进一步缩小
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • 全局传递 xhr onload 函数的值

    在我正在创建的应用程序中 我有以下 XMLHttpRequest 并且我正在尝试传递结果data在 的里面xhr onload 到在同一父函数中创建的数组中 var url http api soundcloud com resolve j
  • 如何在 Web 服务器上设置 gzip 压缩?

    我有一个嵌入式网络服务器 总共有 2 兆空间 通常 您使用 gzip 文件对客户端有利 但这会节省我们在服务器上的空间 我读到你可以只 gzip js 文件并将其保存在服务器上 我在 IIS 上测试过 但没有任何运气 为了使这项工作成功 我
  • 使用 JQuery 禁用和启用所有超链接

    我有以下禁用所有超链接的内容 但在事件发生后我想再次启用它们 我该如何执行此操作 a click function return false 我认为这不仅仅是将其设置为 true 那么简单 谢谢大家 不要以这种方式绑定 点击 处理程序 而是
  • 如果一个对象结构与另一个对象结构不匹配/不匹配,如何引发异常

    我将读取格式正确的用户输入对象 也就是说 输入对象现在可以具有接口中未定义的任何键或子结构 如果用户提供了无效的对象 我如何抛出异常 预定义接口 export interface InputStructureInterface tableN
  • 当我多次调用 requestAnimationFrame 时会发生什么

    我的意思是一次调用多个具有相同功能的 requestAnimationFrame function Draw DoSomething function AFunc prepare something requestAnimationFram
  • 如何使用新的analytics.js跟踪多个帐户?

    我需要使用 Google 的新的analytics js 跟踪一个页面上两个帐户的综合浏览量 有大量教程和示例如何使用较旧的 ga js 进行操作 但我发现的只是这个分析文档页面 https developers google com an
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • 如何在 webpack 中渲染嵌套的 SASS?

    采取以下CSS MyComponent color blue Button color red 以及以下 React 组件 import React from react import classes from MyComponent sc
  • Javascript 浮点乘以 100 仍然有错误

    我有一个货币字段的文本输入 我在字段中输入 33 91 并在尝试使用 乘以 100 技术时得到以下结果 var curWth parseInt trans withdraw index val 100 3390 var curWth par
  • 摩纳哥:如何添加内联自动完成/代码建议?

    我找不到任何有关如何添加内联自动完成功能的示例 如下图所示 有人可以指导我如何在摩纳哥做到这一点吗 这可以在 v1 66 中启用 现在在 Insiders 中 The editor quickSuggestions设置现在接受内联为 配置值
  • 使用 ref 触发反应 dropzone 不起作用

    我正在实现这个库 https github com felixrieseberg React Dropzone Component https github com felixrieseberg React Dropzone Compone
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 如何在 Jquery/Javascript 中绑定模糊和更改,但只触发一次函数?

    我试图在选择元素更改时触发函数 由于 Ipad 在 on change 方面遇到问题 我还想绑定到 blur 这在 Ipad 上工作得很好 但是我不希望两个事件都触发该函数两次 所以我需要某种挂钩来确保两个事件是否都触发change and

随机推荐

  • OpenGL的渲染流水线:

    OpenGL的渲染流水线 OpenGL的坐标系 在3D图形学里 OpenGL为右手坐标系 准确来说 OpenGL的世界空间和相机空间是右手坐标系 随便提一下 D3D11为左手坐标系 1 右手坐标系 2 左手坐标系 OpenGL的矩阵和向量结
  • Python数据科学库04(pandas)

    Python数据科学库04 pandas 学习04 numpy能够帮助我们处理数值 但是pandas除了处理数值之外 基于numpy 还能够帮助我们处理其他类型的数据 pandas is an open source BSD license
  • 使用DOTA数据集训练Faster R-CNN模型

    一 所需文件下载链接 二 基础环境配置 三 训练及测试过程 使用Faster R CNN算法在DOTA数据集上实现目标检测 使用Faster R CNN算法在VOC2007数据集上实现目标检测的详细步骤 Windows10 Faster R
  • kotlin实现java的单例模式

    代码 package com flannery interviewdemo singleinstance https blog csdn net Jason Lee155 article details 128796742 Java实现 p
  • before和after伪元素(详解)

    before和after伪元素 详解 之所以被称为伪元素 是因为他们不是真正的页面元素 html没有对应的元素 但是其所有用法和表现行为与真正的页面元素一样 可以对其使用如页面元素一样的CSS样式 表面上看上去貌似是页面的某些元素来展现 实
  • 【数据库】【踩坑记录】SQL匹配条件不起作用怎么回事?----SQL左连接,右连接和内连接的条件放置位置

    实际很多时候写代码写的都是业务代码 业务代码又以SQL最为常见 根据业务我们会设置很多关于连接的地方 左连接 右连接 内连接的使用不当很可能导致SQL达不到预期 可能给人感觉 SQL执行只走了一半 或者 中间有的地方跳过去 条件没有匹配返回
  • JSON.toJSONString中序列化空字符串遇到的坑

    https www cnblogs com wang meng p 33d93b7f748ba3cf5bd06a80f886f238 html
  • linux+Anaconda+conda创建Keras(tensorflow)虚拟环境

    root用户安装 root node1 yum install y lrzsz root node1 yum install y bzip2 以下内容可以普通用户安装 1 Anaconda安装 Anaconda 安装包可以到清华 https
  • 操作系统备考学习 day2 (1.3.2 - 1.6)

    操作系统备考学习 day2 计算机系统概述 操作系统运行环境 中断和异常的概念 系统调用 操作系统体系结构 操作系统引导 虚拟机 计算机系统概述 操作系统运行环境 中断和异常的概念 中断的作用 CPU上会运行两种程序 一种是操作系统内核程序
  • 快速入门PyTorch(3)--训练一个图片分类器和多 GPUs 训练

    2019 第 44 篇 总第 68 篇文章 本文大约14000字 建议收藏阅读 快速入门 PyTorch 教程前两篇文章 快速入门Pytorch 1 安装 张量以及梯度 快速入门PyTorch 2 如何构建一个神经网络 这是快速入门 PyT
  • Win使用VMware安装黑苹果+xcode安装+优化+win键位设置

    前言 有段时间想学ios开发 但是没有苹果电脑 所以琢磨着在win系统里安装CodeBlocks IDE 编译object c 或者在linux里装object c环境 后来整了两天没整好 编译时总是提示编译器错误啥的 想想还是算了用黑苹果
  • 解决eclipse中控制台中e.printStackTrace();的输出异常

    测试异常的代码 import java io File import java io IOException public class F public static void main String args File file new
  • C S S

    目录 1 样式定义方式 1 1行内样式表 1 2内部样式表 1 3外部样式表 2 注解 3 选择器 3 1标签选择器 3 2 id选择器 3 3 类选择器 3 4 派生选择器 3 5 伪类选择器 链接伪类选择器 位置伪类选择器 编辑 目标伪
  • C++数据结构题:DS 顺序表--连续操作

    建立顺序表的类 属性包括 数组 实际长度 最大长度 设定为 1000 该类具有以下成员函数 构造函数 实现顺序表的初始化 插入多个数据的 multiinsert int i int n int item 函数 实现在第 i 个位置 连续插入
  • 华为交换机istack堆叠配置

    拓扑图 操作步骤 提前规划堆叠方案 规划SwitchA的堆叠成员ID为1 SwitchB的成员ID为2 规划SwitchA作为主交换机 其堆叠优先级最高 为150 SwitchB的堆叠优先级为120 规划堆叠域编号 Domain ID 为1
  • 如何在Python中调用C++程序?(文中以Opencv为例,在Python中调用C++的Opencv)

    https www cnblogs com zf blog p 11906786 html 要注意什么 要注意在头文件 h中将需要引用的函数包括在 extern C 中 使用Opencv的时候 需要在CMakeLists txt中写入 ta
  • 笔记整理:西瓜书——第1章:绪论

    不知不觉就研一下啦 想了想 作为一个专硕狗也要开始考虑工作和实习了 不过在这之前打算先花那么一两个月再刷刷书 看书必然要做笔记 但是做笔记最痛苦的经常是 嗯 笔记做了 短时间还记得 过了一段 笔记不见了 东西也基本忘光了 经常发生 想了想
  • 中国AI大模型峰会“封神之作”!开发者不容错过这场夏季盛会

    年度最强大模型顶会来袭 喊话中国数百万AI开发者 速来 WAVE SUMMIT 定档8月16日 或将曝百度飞桨 文心大模型最新进展 2023年全球AI浪潮迭起 大语言模型热度空前 生成式人工智能为千行百业高质量发展带来更多想象空间 作为前沿
  • python递归计算N!的代码

    内容过程中 把写内容过程中常用的内容段备份一下 下面内容是关于python递归计算N 的内容 应该是对各朋友也有用 def factorial n if n 0 return 1 else 转载于 https www cnblogs com
  • 基于vue项目 vue-video-player实现rtmp hls视频流播放

    视频直播 在线监控 基于vue项目 vue video player实现rtmp hls视频流播放 问题背景 现在很多后台管理系统都会在项目中添加实时监控 实时直播的功能 最近刚好遇到项目需求 于是就分享一下经验以及在配置过程中出现的一些问