前言
web 端播放rtsp 流,一般都是采用vlc插件,默认是用 UDP 协议播放,这就会存在丢包的可能性,导致界面会变花,要想不花,需要使用更可靠的TCP协议。关于这两种协议的区别,大家可以自行查资料。
Web VLC 文档设置
官方文档上面告诉我们设置的方式 ,大家可以查看文档 ,代码如下:
var options = new Array(":aspect-ratio=4:3", "--rtsp-tcp");
var id = vlc.playlist.add("rtsp://servername/item/to/play", "fancy name", options);
vlc.playlist.playItem(id);
但是我按文档的方式设置了,通过抓包的方式查看还是 UPD 协议,这是就有点崩溃了,一顿通过 Google 找解决方法,可是都没有用。
探索结果
找方案,试了半天,快要放弃的时候, 改了一下参数,没想到成功了。最终的解决方法其实很简单 ,把参数 --rtsp-tcp
设置成 rtsp-tcp
,鸡冻人心的时候到了,成功了。这应该是文档上的一个错误,或者是 VLC 的一个bug, 完整代码:
var options = new Array("rtsp-tcp")
var id = vlc.playlist.add("rtsp://servername/item/to/play", "fancy name", options);
vlc.playlist.playItem(id);
结束语
这个问题希望能帮助到也在用VLC插件的其它小伙伴,大家如果有关于VLC 方面的内容,可以一起交流。