整合vxgPlayer使chrome支持vxg_media_player播放rtsp视频,目前全网唯一chrome支持rtsp,rtmp流的播放器

2023-11-05

目前有一个关于接入海康监控进行视频融合的项目需求,按理说在前端技术发展如此迅速的今天,使用web播放一个视频应该是不算什么难事,只是万事都有意外,因很多视频厂家的监控数据都不是普通的mp4啥的,所以使用普通的object 或者video 是播放不了的,必须需要一些额外的插件进行支持,今天我们就来加载一个rtsp格式的视频

一、安装合适的浏览器

首选安装一个合适的浏览器,我选择的是72.0.3626.119版本的(因插件不支持高版本chrome)
浏览器版本
也可以安装60.0.3080版本的(只是我试过后来的cesium不支持过低版本浏览器)所以最后决定使用了72.0.3626.119版本的

72.0.3626.119版本浏览器资源云盘下载提取码: 8bha

60.0.3080版本浏览器资源云盘下载提取码: oy20

这里安装低版本浏览器需要注意的是要设置一下不允许自动更新,否则安装成功后浏览器自动会更新为最新版本
设置禁止更新

二、安装VXG Media Player

下载VXG Media Player 云盘下载 提取码:dc4h

然后将其解压至任意目录
在这里插入图片描述
选择右上角按钮> 扩展程序
在这里插入图片描述
点击加载已解压的扩展程序(就是一步解压的文件目录)
加载已解压的扩展程序

三、下载vxgPlayer插件

现在我们需要下载一个vxgPlayer.js插件,直接去大佬的github https://github.com/VideoExpertsGroup/VXG.Chrome-RTSP-Player下载后根据其readme执行一下打包操作即可生成一个dist目录
在这里插入图片描述
其中vxgplayer-1.8.2.min.js 和``vxgplayer-1.8.2.min.css`就是我们所需的插件

如果怕麻烦可以直接云盘下载 提取码:uiga

四、创建项目测试

创建一个测试项目,引入上面获取的js与css


    <script type="text/javascript" src="../video_play_plugins/vxgplayer-1.8.40.min.js"></script> 
    <link rel="stylesheet" href="../video_play_plugins/vxgplayer-1.8.40.min.css">
  • 1
  • 2
  • 3
  • 4

同时将pnacl目录拷入在这里插入图片描述
pnacl云盘下载 提取码:hvk6

在页面中增加


          <div class="vxgplayer" id="vxg_media_player1"
                 url="rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" autostart controls
                 avsync nmf-src="/video_play_plugins/pnacl/Release/media_player.nmf" nmf-path="media_player.nmf"
                 width="300" height="300">
            </div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【注意】其中nmf-src就是pnacl下的文件,这个一定要对,不如会有如下错误
在这里插入图片描述

最后methods中增加


          window.vxgplayer('vxg_media_player1').stop();
                window.vxgplayer('vxg_media_player1').src("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov");
                window.vxgplayer('vxg_media_player1').play();
  • 1
  • 2
  • 3
  • 4
  • 5

最后效果在这里插入图片描述
好啦完整代码是这样子的

<template>
    <div class="test-page">
       <span> 测试video 视频资源获取与播放</span>
        <div @click="playVideo" class="btn-vis">点击播放视频</div>
        <div class="video-warp" v-show="videoWarpShow">
            <div @click="closeV" class="close">x</div>
            <div class="vxgplayer" id="vxg_media_player1"
                 url="rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" autostart controls
                 avsync nmf-src="video_play_plugins/pnacl/Release/media_player.nmf" nmf-path="media_player.nmf"
                 width="300" height="300">
            </div>
    <span class="token operator">&lt;</span><span class="token operator">/</span>div<span class="token operator">&gt;</span>

<span class="token operator">&lt;</span><span class="token operator">/</span>div<span class="token operator">&gt;</span>

</template>

<script>
export default {
name: “testVlcPlay”,
data(){
return{
videoWarpShow:false
}
},
methods:{
playVideo(){
this.videoWarpShow = true;
// 设置url 播放 —添加到事件队列在下一个tick执行,避免 TypeError: t.module.postMessage is not a function
this.$nextTick(() => {
window.vxgplayer(‘vxg_media_player1’).stop();
window.vxgplayer(‘vxg_media_player1’).src(“rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov”);
window.vxgplayer(‘vxg_media_player1’).play();
})
},
},
destroy(){
window.vxgplayer(‘vxg_media_player1’).dispose();
}
}
</script>

ok 到这里问题算是解决了,当初也是用过什么Streamedianhtml5_rtsp_player这个测试当时需要安装https://streamedian.com/最后没有成功

也花费了大量时间去寻求其他解决方案,都没有找到好的方法,所以在此记录希望为有同样需求的小伙伴提供一点思路,如大家有更好解决方案请分享谢谢。

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

整合vxgPlayer使chrome支持vxg_media_player播放rtsp视频,目前全网唯一chrome支持rtsp,rtmp流的播放器 的相关文章

  • 如何给 unplugin-vue-components/vite 写一个简单的 resolver

    大部分工作 unplugin vue components 都已经处理好了 我们只需要接收组件名来判断是否是自己的组件 然后处理对应的导入逻辑 一共 3 个字段 as 重命名类似 import componentNameReName fro
  • ❤ Vue3 使用

    Vue3 使用 Vue3之toRefs的使用 作用 toRefs 可以将一个响应式的对象 转换成普通对象 但是转换后的普通对象的每一个属性值都是响应式的 这样我们可以使用es6的对象解构或者三点运算符等操作 代码
  • 每天10个前端小知识 <Day 1>

    前端面试基础知识题 1 将数组的length设置为0 取第一个元素会返回什么 设置 length 0 会清空数组 所以会返回 undefined 2 e target 和 e currentTarget 有什么区别 e target 触发事
  • 【连续和自适应资源需求估计】通过不断应用在线优化、选择和估计,SARDE能够有效地适应在线跟踪,并使用得到的集成技术减少模型误差(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据 文章
  • Waves14 Complete Mac/win功能强大、效果出色的专业级插件集合

    在现代音频制作中 音频效果器扮演着至关重要的角色 它们能够为音频注入独特的魅力和个性 让作品更加出彩 而在众多音频效果器中 Waves14 Complete音频效果器套件无疑是一个不可或缺的利器 Waves14 Complete音频效果器套
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • HTML概述、基本语法(表格整理、标签、基本结构)

    一 HTML概述 HTML指的是超文本标记语言 超文本 是指页面内可以包含图片 链接 声音 视频等内容 标记 标签 通过标记符号来告诉浏览器页面该如何显示 我们可以打开浏览器 右击页面 点击 查看网页源代码 来方便了解HTML标签通过浏览器
  • 低代码-添加按钮组件设计

    效果图 可拆分为以下细节 按钮列表 删除 两个操作需同步删除 点击外侧删除 点击复选框删除 添加 点击复选框添加 示例代码 技术栈 vue3 arco design ts less tailwindcss
  • 课设:NFA确定化和最小化程序的设计与实现(html+css+js实现)

    文章目录 问题描述 待解决问题 1 如何存储NFA或者是DFA 2 NFA多初态问题 3 子集化过程思路 4 分割法过程思路 使用方法 下载链接 问题描述
  • C++ 视频流检测 FPS

    我尝试从轴或 eneo 相机获取视频流的正确 fps rtsp 192 168 0 1 554 axis media media amp I use cv VideoCapture get CV CAP PROP FPS https doc
  • MobileVLCKit 编译时失败

    我正在尝试在我的应用程序中使用适用于 iOS 的 MobileVLCKit 我按照 给出的步骤进行操作构建 iOS 框架 https wiki videolan org VLCKit 我已在 Xcode 5 中将部署目标设置为 iOS 7
  • VLC录制rtsp流

    我在使用 VLC 播放器录制 rtsp 流时遇到问题 实际上我的方法在 MacOS X 中有效 但在 Windows 中无效 命令行 vlc vvv rtsp admin email protected cdn cgi l email pr
  • GStreamer 推出用于 ReStreaming IP 摄像机 H264 的 RTSP 服务器

    我将在不同计算机上使用多个客户端 以便能够查看 IP 摄像机流 URL 的视频 由于网络摄像机对连接的客户端数量有限制 因此我想为此目的设置一个流媒体 我用谷歌搜索并尝试使用不同的命令行选项 GStreamer 但尚未成功 这是一个测试命令
  • 在 Windows 上以 QML 播放 RTSP 视频

    我正在尝试将 QML 中的 RTSP 流播放到视频标签中 如下所示 Repeater model 8 Video Layout fillWidth true Layout fillHeight true fillMode VideoOutp
  • 带身份验证的 MediaPlayer RTSP 视频流

    我能够在未经授权的情况下从网络摄像机流式传输视频 但现在我需要在授权的情况下执行此操作 我发现很少有信息表明 Android 不支持 RTSP 身份验证 但我发现另一条信息表明 通过使用该方法添加标头 可以在 API 级别 14 中实现身份
  • 使用 OpenCV VideoWriter 将 RTSP 流存储为视频文件

    我正在使用 OpenCV 开发一个 Python 模块 该模块连接到 RTSP 流以对视频执行一些预处理 主要是降低 fps 和分辨率 然后将其存储在文件系统中 但是 即使在尝试了几种编解码器 寻找类似的开发之后 我总是得到一个空的视频 我

随机推荐

  • C#中Dictionary的用法总结

    可以实现通过键值查找 插入 删除一个键 值对的操作 这些如果用数组实现都非常麻烦 Key就是键 value就是值 我们在很多地方都会用到字典 他的特点就是查找很快 当然比List快 字典必须包含名空间System Collection Ge
  • pandas写入excel指定行_使用pandas操作excel

    pandas操作excel 最近由于要处理一些excel表格 发现pandas可以免去很多的繁琐的人工劳动 在这里记录一下我所用到的知识 导入文档 将excel中的工作表导入 filename xls data pd read excel
  • python中random.random()用法

    Python中的random模块用于生成随机数 下面介绍一下random模块中最常用的几个函数 random random random random 用于生成一个0到1的随机符点数 0 lt n lt 1 0 参考链接 https www
  • 拓扑布局和建立小型网络

    练习 2 6 1 拓扑布局和建立小型网络 地址表 本实验不包括地址表 拓扑图 学习目标 正确识别网络中使用的电缆 物理连接点对点交换网络 验证每个网络的基本连通性 简介 许多网络问题都可以在网络的物理层解决 因此 必须清楚了解网络连接使用哪
  • Android ffmpeg4.1 arm64位库裁剪

    ffmpeg4 1 Android arm64位库裁剪移植 目录 ffmpeg4 1 Android arm64位库裁剪移植 1 绪言 2 编译环境 3 源代码下载 4 编写编译脚本 4 1 编译脚本 4 2 常见问题 5 库裁剪 5 1
  • 使用vscode把代码或文件夹上传进gitee库里

    1 首先读者自行下载 git 2 在gitee中新建一个仓库 3 建完仓库后会出现以下界面 4 复制图中1 选择你个你想要的文件夹 右键选择 5 之后会跳出来一个小框框 把图中2和3分别复制进小框框里 ctrl v没用 右键选择Paste
  • CObject/CCmdTarget/CCmdTarget三个类的能力

    三个类的能力分别为 CObject 运行时类型识别 RTTI 动态创建 Dynamic Creation 文件读写 Serialization CCmdTarget 消息机制 拥有DECLARE MESSAGE MAP宏 从而可以接收WM
  • 二十二、SQL 数据分析实战(案例1~案例10)

    文章目录 案例1 用户信息表 stu table 案例2 员工绩效表 score table 案例3 销售冠军信息表 month table 案例4 月销售额记录表 sale table 案例5 每季度员工绩效得分表 score info
  • Kubernetes 入门 篇 Master 节点的安装与部署

    在安装K8s 的时候 遇到了很多问题 花了几天的时间排错 记录一下环境搭建的完整过程 希望对入门K8s 的朋友有所帮助 操作系统版本 CentOS Linux 8 Docker 版本 Docker version 23 0 1 运行 Kub
  • 迷茫

    读了两年的软件工程 迷茫始终伴随着自己的前行道路 我想吃计算机这碗饭 我又不想吃太久 这个问题我都感觉很吃屎 大一刚开始 学的是C语音 老师就是按着书本的知识给你讲 数据类型 函数 控制语句 数组 指针 文件 讲完之后 这些东西还是这些东西
  • 常见排序算法(下)

    目录 1 交换排序 1 1交换排序的基本思想 1 2冒泡排序 1 3快速排序 1 3 1Hoare 1 3 2挖坑法 1 3 3 针对性的优化 1 3 4前后指针法 1 3 5非递归实现快速排序 2 归并排序 2 1递归实现归并排序 2 2
  • 4.POD 的基本用法

    文章目录 POD 的基本用法 1 POD运行说明 2 POD封装容器的用法 3 POD 共享的处理 4 POD 配置 4 1 ConfigMap POD 的基本用法 1 POD运行说明 K8S 对容器运行的要求是主程序一直要在前台执行 如果
  • Qt基本数据类型

    有符号8比特数据 16位数据类型 32位有符号数据类型 64位有符号数据类型 Windows中定义为 int64 Windows中定义为 int64 除非配置了 qreal float选项 否则默认为double 无符号8比特数据类型 无符
  • Jenkins Pipeline 项目持续集成交互实践路径

    Jenkins Pipleline插件介绍 Jenkins 2 x的精髓是Pipeline as Code 是帮助Jenkins实现CI到CD转变的重要角色 什么是Pipeline 简单来说 就是一套运行于Jenkins上的工作流框架 将原
  • keil5 不进入中断_C51编程20中断篇(串行通讯3)

    MCS 51单片机提供了4种串口的方式 但是我们只有方式1最常用 可变的10位串行通讯方式 下面就方式1的使用进行讲解 在开始之前先明确一个概念 中断会产生中断标志位 而CPU检测到中断标志位后 如果没有其他更高的中断在执行 CPU会响应该
  • redis的缓存穿透 缓存并发 缓存失效

    学习网址 https www cnblogs com shuchen007 p 9656232 html 截选一个集体缓存失效解决办法 引起这个问题的主要原因还是高并发的时候 平时我们设定一个缓存的过期时间时 可能有一些会设置1分钟啊 5分
  • Java课题笔记~ JSP内置对象

    1 九个内置对象 jsp的内置对象 JSP内置对象是不需要声明和创建就可以在JSP页面脚本中使用的成员变量 九个内置对象 1 out对象 在JSP页面中 经常需要向客户端发送文本内容 这时 可以使用out对象来实现 out对象是javax
  • 帆软下拉复选框,层级树状选择

    treelayer函数 1 概述 语法 treelayer TreeObject Int Boolean String 定义 返回一个树对象 TreeObject 第 n 层的值 一般为树数据集 或下拉树 视图树等树对象 并且可以设置返回值
  • mysql大表修改字段导致锁表(非阻塞)

    线上数据库难免会有修改表结构的需求 MySQL 在修改表结构时会锁表 这就会影响读写操作 小表还好 一会儿就修改完成了 但大表会比较麻烦 下面看一个解决方案 一 方式一 解决思路 1 新建一个表 结构就是要修改后的结构 2 在旧表上建立触发
  • 整合vxgPlayer使chrome支持vxg_media_player播放rtsp视频,目前全网唯一chrome支持rtsp,rtmp流的播放器

    目前有一个关于接入海康监控进行视频融合的项目需求 按理说在前端技术发展如此迅速的今天 使用web播放一个视频应该是不算什么难事 只是万事都有意外 因很多视频厂家的监控数据都不是普通的mp4啥的 所以使用普通的object 或者video 是