工作有要播放视频监控的需求,最近就自己先了解了一下网页播放rtsp视频流的方法,以下是我的个人经验。
最终选择了vue+webrtc-streamer实现在网页播放rtsp流这种方法进行测试。
个人经验
第一次尝试了vue-video-player+videojs的方法,发现只适用于支持flash的浏览器,但目前所有浏览器的最新版都已不支持flash插件,于是放弃。
注意vue-video-player有个坑,在引入css文件的时候一直报错,原因是直接npm install vue-video-player出了问题。
经过各种百度半天,发现我使用的是vue2,不知道为什么没人说,vue2版本如果想要使用vue-video-player的话必须下载4.x版本。vue3的下载已经更改了插件名,是@videojs-player/vue。
下载4.0.1版本发现css文件可以正常引入,但是浏览器不支持flash所以没有播放成功。
第二次尝试ffmpeg,发现太复杂了,琢磨了半天无果。
第三次尝试webrtc-streamer,终于成功,并且相对于前两种方法都更简单!
vue+webrtc-streamer实现在网页播放rtsp视频流
- 首先下载webtrc-streamer的压缩包,在github上有https://github.com/mpromonet/webrtc-streamer/releases下载windows版本
- 双击webrtc-streamer.exe启动服务
- 将下载包html文件夹下webrtcstreamer.js文件和html/libs文件夹下adapter.min.js文件复制到VUE项目public/stactic目录下,在index.html文件里引入这两个js文件。
- 写测试代码
<template><div class="home"><video id="video" autoplay width="600" height="400"></video><video id="video1" autoplay width="600" height="400"></video></div></template>//不放心我又引入了一遍<script type="text/javascript" src="../../public/stactic/webrtcstreamer.js"></script><script type="text/javascript" src="../../public/stactic/adapter.min.js"></script><script>exportdefault{name:"HomeView",data(){return{webRtcServer:null,webRtcServer1:null};},mounted(){//192.168.1.100是启动webrtc-streamer的服务器IP,8000是webrtc-streamer的默认端口号,可以在服务端启动的时候更改的this.webRtcServer =newWebRtcStreamer("video", location.protocol +"//127.0.0.1:8000");//需要看的rtsp视频地址,可以在网上找在线的rtsp视频地址来进行demo实验,在vlc中能播放就能用// this.webRtcServer.connect(// "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4"// );this.webRtcServer.connect("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4");//第二个视频//根据不同的video标签来控制this.webRtcServer1 =newWebRtcStreamer("video1", location.protocol +"//127.0.0.1:8000");this.webRtcServer1.connect("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4");},methods:{},beforeDestroy(){this.webRtcServer.disconnect();this.webRtcServer =null;}};</script>
此时运行网页已经可以看到视频了。
但是有缺点(还未解决):
- 播放的视频没有声音
- 控制台报错但不影响正常播放
如果有大佬知道如何解决,欢迎留言!
以上内容参考http://t.csdn.cn/gj93S
版权归原作者 黄桃罐头和你 所有, 如有侵权,请联系我们删除。