ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【使用webrtc-streamer分析rtsp视频流】 [打印本页]

作者: 天津储鑫盛钢材现货供应商    时间: 2024-9-1 01:02
标题: 【使用webrtc-streamer分析rtsp视频流】
webrtc-streamer


使用方法

1、下载webrtc-streamer

  1. https://github.com/mpromonet/webrtc-streamer/releases
复制代码
2、运行

  1. 双击解压后的.exe文件运行,默认抛出本机8000端口(172.0.0.1:8000)
复制代码

3、引用开发包


4、页面中使用

  1. <template>
  2.   <div class="ev-player">
  3.     <CommonDragWindow v-model="innerShow" :width="600" :height="400" :resize="true" :position="position">
  4.       <template v-slot:title>{{ title }}</template>
  5.       <template #default>
  6.         <video :id="`video-${equipId}`" autoplay width="100%" height="98%"></video>
  7.       </template>
  8.     </CommonDragWindow>
  9.   </div>
  10. </template>
  11. <script setup>
  12.   import CommonDragWindow from './CommonDragWindow.vue'
  13.   import { getConfigList } from '@/api/common.js'
  14.   import { ref, onMounted, watchEffect, watch, nextTick } from 'vue'
  15.   const show = defineModel({ type: Boolean, default: false })
  16.   const props = defineProps({
  17.     title: {
  18.       type: String,
  19.       default: '监控视频'
  20.     },
  21.     equipId: {
  22.       type: [Number, String]
  23.     }
  24.   })
  25.   const innerShow = ref(false)
  26.   const position = ref({
  27.     top: 500,
  28.     left: 20
  29.   })
  30.   let webRtcServer = null
  31.   watchEffect(() => {
  32.     innerShow.value = show.value
  33.   })
  34.   watch(
  35.     () => innerShow.value,
  36.     async (val) => {
  37.       if (val) {
  38.         const rtspStr = 'rtsp://132.239.12.145:554/axis-media/media.amp'
  39.         if (rtspStr) {
  40.           await nextTick() // 待dom加载完毕
  41.           let videoDocument = document.getElementById('video')
  42.           webRtcServer = new WebRtcStreamer(videoDocument, `http://${window.appConfig.localhost}:8000`)
  43.           webRtcServer.connect(rtspStr, null, `rtptransport=tcp&timeout=60`)
  44.         }
  45.       } else {
  46.         webRtcServer?.disconnect()
  47.         webRtcServer = null
  48.       }
  49.       show.value = val
  50.     }
  51.   )
  52.   onMounted(() => {})
  53. </script>
  54. <style scoped lang="scss">
  55.   .ev-player {
  56.     :deep(video) {
  57.       width: 100%;
  58.       height: calc(100% - 5px);
  59.     }
  60.   }
  61. </style>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4