在vue中使用webrtcstreamer解析播放rtsp流

1、在git上下载webrtcstreamer(下载链接

下载完成解压后,在文件夹这个位置输入cmd,

打开命令窗口,输入启动命令        

webrtc-streamer -H 127.0.0.1:8080(ip和端口自己定义===端口不要重复) 
webrtc-streamer -a -u "mystream:rtsp://用户名:密码@RTSP源IP:端口/流路径"(这个命令不确定,可能输入这个可以有声音)

启动完成后可以在浏览器中输入设置的ip和端口打开,看看是否启动成功     

                        测试输入流是否可以播放(这里可以播放,但有些原因嵌入到页面里也无法播放)

2、在vue下public文件夹添加webrtcstreamer.js与adapter.min.js文件并引入到html文件当中

webrtcstreamer.js文件位置:webrtc-streamer-v0.8.6-dirty-Windows-AMD64-Debug\html中

adapter.min.js文件位置:webrtc-streamer-v0.8.6-dirty-Windows-AMD64-Debug\html\libs中

3.在vue页面的html部分创建dom

在js部分写


//改变量要在data中声明,方便后续使用完进行销毁(声明为null就可以)
//window.SYS_Config.VUE_APP_API_BASE_CAMERAURL:webrtc-streamer启动自己定义的地址
this.webRtcServer = 
new WebRtcStreamer(
            'videoLs',
            location.protocol + '//' + window.SYS_Config.VUE_APP_API_BASE_CAMERAURL
          )


          //this.prevVideoUrl:需要查看的rtsp地址,根据自己的摄像头传入对应的rtsp地址即可。注意:视频编码格式必须是H264的,否则无法正常显示,编码格式可在摄像头的后台更改
          this.webRtcServer.connect(this.prevVideoUrl,null,"rtptransport=tcp",null)

在beforeDestroy声明周期写

beforeDestroy() { this.webRtcServer.disconnect(); this.webRtcServer = null; }

遇到的坑

使用这个的时候可以使用vlc下载个小帽子,去看rtsp流是否可以正常播放

(点击媒体,打开网络串流,输入rtsp地址)

播放成功了,右键,打开编码器信息,查看是否是h264编码

这种可以播放

这种无法播放,然后我反正没找到海康哪设置这个流位置的

(他不是从流0开始,编码器格式对了也没法播放)

根据提供的引用内容,我们可以得知webrtc.js是一个实现webrtc多对多交互的库,同时还需要使用nodejs+socket.io信令服务源码和开启内网https环境,支持手机调试。而Vue.js是一个渐进式JavaScript框架,用于构建用户界面。Vue.js可以与webrtc.js一起使用,以实现webrtc多对多交互的功能。 在Vue.js使用webrtc.js,可以通过以下步骤实现: 1.安装webrtc.js库 ```shell npm install webrtc --save ``` 2.Vue.js组件中引入webrtc.js库 ```javascript import WebRTC from 'webrtc';``` 3.Vue.js组件中使用webrtc.js库 ```javascript export default { data() { return { webRTC: null, localStream: null, remoteStream: null } }, mounted() { this.webRTC = new WebRTC({ signalingUrl: 'https://your-signaling-server.com', localVideoEl: this.$refs.localVideo, remoteVideoEl: this.$refs.remoteVideo }); this.webRTC.startLocalStream().then(stream => { this.localStream = stream; this.webRTC.publish(stream); }); this.webRTC.on('stream-added', event => { this.remoteStream = event.stream; }); }, beforeDestroy() { this.webRTC.stopLocalStream(); this.webRTC.unpublish(this.localStream); this.webRTC.close(); } } ``` 在上述代码中,我们首先在Vue.js组件中引入webrtc.js库,然后在mounted钩子函数中初始化webrtc.js库,并启动本地视频。当远程视频被添加时,我们将其赋值给remoteStream变量。最后,在beforeDestroy钩子函数中停止本地视频并关闭webrtc.js库。
评论 26
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值