当前位置:   article > 正文

vue2中使用rtsp展示监控_vue2如何播放u3m8格式,h265编码的监控视频流

vue2如何播放u3m8格式,h265编码的监控视频流

视频地址格式为:rtsp://admin:abc123123@192.168.1.x:554/h264/XXXXXXX

1.视频地址解析

admin:用户名

abc123123:密码

192.168.1.x:摄像头ip地址

2.下载内容

(1)vlc   用来测试rtsp地址是否正确

        下载地址 https://www.videolan.org/vlc/

(2)WebRtcStreamer.js  用来初始化播放器

        下载地址 https://github.com/mpromonet/webrtc-streamer/releases

3.测试rtsp地址

(1)打开vlc,媒体--打开网络串流

 (2)粘贴地址,点击播放

(3)查看视频编码信息(当前方法仅支持H264)

        右键--工具--解编码器信息

(4)如果是H265需要更改 

        修改方法http://t.csdnimg.cn/ASoK6

(5)注意:把rtsp地址复制上去后是不需要任何操作的,等1~2秒之后就会展示监控视频,如果有提示需要输入密码,那么就是rtsp地址中的密码不正确

4.下载webrtc-streamer

(1)解压,打开webrtc-streamer.exe(注意:这个关闭视频不能播放)

(2)测试,浏览器打开127.0.0.1:8080

展示当前桌面说明打开成功

5.vue代码--视频组件

需要在当前文件引入webrtcstreamer.js,把他放到public下static文件下

注意:webrtcstreamer.js文件引入路径

  1. <template>
  2. <div id="videoBody">
  3. <div class="video-contianer" v-for="(item, index) in rtsp" :key="index">
  4. <video
  5. class="video"
  6. :id="'video' + index"
  7. ref="video"
  8. preload="auto"
  9. autoplay="autoplay"
  10. muted
  11. width="100%"
  12. height="100%"
  13. />
  14. <div class="mask" @click="handleClickVideo(index)"></div>
  15. </div>
  16. </div>
  17. </template>
  18. <script>
  19. import WebRtcStreamer from '../../../public/static/videojs/webrtcstreamer';
  20. export default {
  21. name: 'videoCom',
  22. props: {
  23. rtsp: {
  24. type: Array,
  25. required: true
  26. },
  27. },
  28. data() {
  29. return {
  30. webRtcServer: [],
  31. clickCount: 0, // 用来计数点击次数
  32. currentIndex: null //当前视频流的索引
  33. };
  34. },
  35. destroyed() {
  36. this.webRtcServer.forEach((item) => {
  37. item.disconnect();
  38. });
  39. this.webRtcServer = [];
  40. },
  41. mounted() {
  42. this.rtsp.forEach((item, index) => {
  43. this.initVideo(item, index);
  44. });
  45. },
  46. methods: {
  47. initVideo(url, index) {
  48. try {
  49. //连接后端的IP地址和端口
  50. const webRtcServer = new WebRtcStreamer(
  51. 'video' + index,
  52. `http://127.0.0.1:8000`
  53. );
  54. //向后端发送rtsp地址
  55. webRtcServer.connect(url);
  56. this.webRtcServer.push(webRtcServer);
  57. } catch (error) {
  58. console.log(error);
  59. }
  60. },
  61. /* 处理双击 单机 */
  62. dbClick() {
  63. this.clickCount++;
  64. if (this.clickCount === 2) {
  65. this.btnFull(); // 双击全屏
  66. this.clickCount = 0;
  67. }
  68. setTimeout(() => {
  69. if (this.clickCount === 1) {
  70. this.clickCount = 0;
  71. }
  72. }, 250);
  73. },
  74. /* 视频全屏 */
  75. btnFull() {
  76. const elVideo = document.getElementById('video' + this.currentIndex);
  77. if (elVideo.webkitRequestFullScreen) {
  78. elVideo.webkitRequestFullScreen();
  79. } else if (elVideo.mozRequestFullScreen) {
  80. elVideo.mozRequestFullScreen();
  81. } else if (elVideo.requestFullscreen) {
  82. elVideo.requestFullscreen();
  83. }
  84. },
  85. // 点击事件
  86. handleClickVideo(index) {
  87. this.currentIndex = index;
  88. this.dbClick();
  89. }
  90. }
  91. };
  92. </script>
  93. <style scoped lang="scss">
  94. #videoBody {
  95. display: flex;
  96. flex-wrap: wrap;
  97. justify-content: start;
  98. gap: 1%;
  99. .video-contianer {
  100. position: relative;
  101. width: 24%;
  102. .mask {
  103. position: absolute;
  104. top: 0;
  105. left: 0;
  106. width: 100%;
  107. height: 100%;
  108. cursor: pointer;
  109. }
  110. }
  111. }
  112. </style>

6.vue代码--父组件 

这里我只展示了两个视频,可根据需求在data的url中修改

  1. <template>
  2. <div>
  3. <Video :rtsp="url" ref="videoSon"></Video>
  4. </div>
  5. </template>
  6. <script>
  7. import Video from '@/components/video/video.vue';
  8. export default {
  9. components: {
  10. Video
  11. },
  12. data() {
  13. return {
  14. url: [
  15. 'rtsp://admin:bfhd2766@192.168.1.X:554/h264/XXXX',
  16. 'rtsp://admin:bfhd2766@192.168.1.Y:554/h264/XXXX'
  17. ]
  18. };
  19. }
  20. };
  21. </script>
  22. <style>
  23. </style>

7.遇见问题 

视频一直在加载中,不报错也不播放

(1)检查视频编码信息是否是H264

(2)检查rtsp地址是否正确

         开发的时候有在webrtc-streamer.exe中报401错误是因为rtsp中密码有错导致身份验证不通过

8. 缺点

在展示两个监控视频时已经非常卡顿,而且webrtc-streamer.exe需要一直打开,不打开不能看到监控视频

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

闽ICP备14008679号