当前位置:   article > 正文

vue中web端播放rtsp视频流(摄像头监控视频)(海康威视录像机)_vue rtsp

vue rtsp

一、ffmpeg安装​​​​​​  

ffmpeg下载 https://ffmpeg.org/download.html找ffmpeg-release-essentials.zip点击下载,下载完解压ffmpeg.exe 程序运行

二、配置ffmpeg环境变量

添加成功后验证是否生效任意地方打开cmd窗口输入 ffmpeg 打印如下表示成功

 

三、node搭建websocket服务

新建一个app.js文件,同级目录下npm安装 node-rtsp-stream

我是直接写在项目里了,你们可以单独写在外面

npm install node-rtsp-stream -S

app.js内容

  1. const stream = require('node-rtsp-stream')
  2. const urls = [
  3. 'rtsp://admin:123456@192.168.2.100:554/Streaming/Channels/101',
  4. 'rtsp://admin:123456@192.168.2.100:554/Streaming/Channels/201',
  5. 'rtsp://admin:123456@192.168.2.100:554/Streaming/Channels/301'
  6. ]; // 将此处替换为实际的RTSP流地址
  7. let wsPort = 9999; // 初始端口号
  8. urls.forEach((url) => {
  9. new stream({
  10. name: `video-stream-${urls.indexOf(url) + 1}`,
  11. streamUrl: url,
  12. wsPort: wsPort,
  13. ffmpegOptions: {
  14. '-stats': '',
  15. '-r': 30,
  16. '-s': '1920*1080'
  17. }
  18. });
  19. wsPort++; // 每次递增端口号
  20. });

运行

node app.js

这样就是成功了

四、vue播放视频

vue组件

jsmpeg.min.js下载地址

链接:https://pan.baidu.com/s/1_KgKM-sOzfrAVs_8LgCG1w?pwd=z7z5 
提取码:z7z5

  1. <template>
  2. <div class="view">
  3. <p>录像画面</p>
  4. <div id="video-container">
  5. </div>
  6. </div>
  7. </template>
  8. <script>
  9. import '../../public/jsmpeg.min.js'
  10. export default {
  11. data() {
  12. return {
  13. players: []
  14. };
  15. },
  16. methods: {
  17. },
  18. mounted() {
  19. //开始播放
  20. const container = document.getElementById('video-container');
  21. for (let i = 0; i < 3; i++) {
  22. const canvas = document.createElement('canvas');
  23. canvas.id = `video-${i + 1}`;
  24. canvas.style.width = '210px'; // 设置宽度为200px
  25. canvas.style.height = '210px'; // 设置高度为200px
  26. canvas.style.margin = '3px'; // 设置高度为200px
  27. container.appendChild(canvas);
  28. const url = `ws://127.0.0.1:${9999 + i}/video-stream-${i + 1}`;
  29. // const url = `ws://127.0.0.1:9999/video-stream-${i + 1}`;
  30. this.players.push(new JSMpeg.Player(url, { canvas }));
  31. this.players[i].play();
  32. }
  33. },
  34. watch: {},
  35. filters: {},
  36. beforeDestroy() {
  37. this.players.forEach(player => player.stop());
  38. }
  39. }
  40. </script>
  41. <style scoped>
  42. .view {
  43. background-color: rgb(43, 168, 188);
  44. box-sizing: border-box;
  45. }
  46. #video-container{
  47. height: 450px;
  48. }
  49. </style>

jsmpeg.min.js建议在index.html引入,我只是不放心又引入了一遍,正常在index.html也要引入

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/866745
推荐阅读
相关标签
  

闽ICP备14008679号