首页IT科技vue-video-player 全屏按钮点击无反应(vue中播放rtsp流)

vue-video-player 全屏按钮点击无反应(vue中播放rtsp流)

时间2025-05-03 18:07:29分类IT科技浏览5649
导读:实现vue中播放rtsp视频流的问题...

实现vue中播放rtsp视频流的问题

背景:项目中通过摄像机提供的rtsp流来显示画面              ,但是在编写项目中                    ,需要将rtsp实时流画面传输到web前端页面中             。于是找了很多方法       ,都是后台转码转成rtmp来播放       ,现在大部分插件和浏览器都是支持使用rtmp播放视频流                     。而rtsp随着flash的退出而被复杂化了       。网上都是1             、通过ffmpeg转码后输出                    ,2                     、通过摄像机指定的web插件转码辅助播放             ,如海康       ,大华摄像机;3       、还有个猿大师播放器基于猿大师中间件提供的内嵌网页播放(没用过                     ,不知道行不行             ,原本想用现在这个方法行不行的,若不行就用这个猿大师了的)

开始

: node.js工具 jsmpeg.js文件 npm install rtsp2web

科普了解一下

rtsp2web 是一个依赖 ffmpeg                     ,能实时将传入的 rtsp 视频流转码成图像数据并通过 ws 推送到前端的智能工具             。 前端页面借助 jsmpeg.js 就可以很轻松的实现播放 同时rtsp2web的特点还有:1             、并发                    ,支持同时播放多路视频2                    、合并同源,同时播放多个同一个rtsp视频源时              ,只会创建一个转码推流进程                    ,不会创建多个                    。3       、智能释放资源       ,智能检测当前没有使用的转码推流进程              ,将其关闭                    ,并释放电脑资源       。

使用

下载ffmpeg(链接: https://www.ffmpeg.org/download.html#build-windows)

安装成功以后       ,你重新打开一个命令行终端       ,输入:ffmpeg -h                    ,如果能输出 ffmpeg 的相关信息出来             ,则证明你的电脑安装 ffmpeg 成功       。

使用rtsp2web

创建了一个vuecli(vue2)项目       ,名称不要起rtsp2web                     ,与src文件夹同级

下创建一个serve文件夹 -|public |-favicon.ico |-index.html -|src -|serve -|.gittignore -.....

在serve下初始化和下载

npm init --yes npm install rtsp2web

在serve下创建index.js

//index.js const RTSP2web = require(rtsp2web) //服务端的端口号             ,端口号可以自定义 const port = 8033 new RTSP2web({ port )}

运行命令:node index.js

前端代码

在public的index.html中

其中jsmpeg.min.js通过src引入,可以用jsmpeg.js或者jsmpeg.min.js都行 <!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <!--v jsmpeg.min.js文件用在这 v--> <script src="https://jsmpeg.com/jsmpeg.min.js" charset="utf-8"></script> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <noscript> <strong>Were sorry but <%= htmlWebpackPlugin.options.title %> doesnt work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> </body> <script> var rtsp = rtsp://username:password@ip:port/live window.onload = () => { //这里的port要与index.js的port保持一致 new JSMpeg.Player("ws://localhost:8033/rtsp?url="+btoa(rtsp), { canvas: document.getElementById("canvas") }) } </script> </html>

#####在vue页面中用canvas中播放视频

如 在App.vue中这样用: <template> <div id="app"> <!-- <img alt="Vue logo" src="./assets/logo.png"> <HelloWorld msg="Welcome to Your Vue.js App"/> --> <canvas id="canvas" style="width: 600px; height: 600px;"></canvas> </div> </template>

问题

为什么node index.js之后没反应?

—检查端口号是否填写对应                     ,index.js中的端口要与script里的端口保持一致

|

为什么长时间未显示图像?

—需要等待大概1-2分钟                    ,就会显示画面                    。至于这么长时间未显示,小弟也不知道啊              。       。希望大佬指点                    。              。

最后

完事了就              ,这是我历经千辛万苦找到的方法                    ,弄这个vue中播放rtsp搞了好久       ,技术太拉了我              ,只能用这些小玩意来搞。原本打算用java或者python通过拉rtsp流解析成rtmp的                    ,奈何能力不足       ,也懒得思考懒得搞懒得弄       ,所以摆烂了QAQ

若哪里有讲的不妥和使用不当的地方还请您告知一下                    ,万分感谢大佬指点             ,小弟深表感谢<抱拳>

-----------------------------------------------------------------------------------------------------------

参考                    。1

https://zhuanlan.zhihu.com/p/531899593 ↩︎

声明:本站所有文章       ,如无特殊说明或标注                     ,均为本站原创发布                     。任何个人或组织             ,在未征得本站同意时,禁止复制       、盗用                    、采集              、发布本站内容到任何网站       、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益                     ,可联系我们进行处理             。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
string不明确vs(JAVA – – – String, StringBuffer,StringBuilder的区别) SEO编辑和普通网络媒体编辑的区别——SEO优化的重要性