Streamedian官网:https://streamedian.com/

我们下载 HTML5 RTSP streaming video player over WebSocket

相关配置可以参考官网说明:https://github.com/Streamedian/html5_rtsp_player
CentOS7
官方文档参考:https://streamedian.com/docs/#rpminstall

我是运行在CentOS7下的。下载的1.8.4

拷贝至虚拟机,解压 unzip 文件名.zip

安装那2个RPM文件(不过我的websock安装报错了,可能是错在这里)
sudo rpm -ivf websock_rtsp_proxy-1-8-4.el7.centos.x86_64.rpmsudo rpm -ivf rtsp_ws_tunnel_client-1-8-4.el7.centos.x86_64.rpm
/etc/ 下的ws_rtsp.ini文件


根据官网文档说明,我安装过apache,那我试试看着2个命令

恩,不知道说啥

直接运行 index.html 可以看到

但是 没有 license key,只能识别localhost/127.0.0.1。
我们需要注册账号,登录后,可以看到官方提供了 在线激活和离线激活

根据index.html 下面的说明,我们访问/usr/bin/wsp下的activation_app。

sudo ./activation_app运行程序,1,在线激活。需要登录刚刚注册的账号。

2,输入激活密钥

恩,我失败了。。。
我们换4,激活试试。需要选择一下,然后输入IP,成功激活。

运行websock_rtsp_proxy
在/usr/bin下 sudo ./websock_rtsp_proxy

如果报错,端口被占用

修改配置文件,在 /etc目录下的 ws_rtsp.ini
sudo vi ws_rtsp.ini修改端口,我改成8088

再次运行 sudo ./websock_rtsp_proxy

输入rtsp地址,set报错 4000,无效域(Windows的VLC是可以获取到视频的,并且Windows可以成功set,请往下看)

4000 这个错误在Windows下出现是因为 没有在server下运行页面,而是直接打开压缩包下的index.html
正确应该访问 http://localhost:8088/

我们需要启动 service ws_rtsp start
然而虚拟机访问8088端口却是白屏(不知道错哪了,所以觉得换Windows)

VLC是可以获取到的

streamedian.min.js 下的源码中找到了这个错误


补充:
我们重启websock_rtsp_proxy sudo ./websock_rtsp_proxy 端口被占

ps -aux找到websock的程序

kill掉它 sudo kill -9 31619 或使用命令 sudo lsof -i:8088
针对端口号查找。
实在不行只能重启了(再次kill成功杀死)。
重新运行 sudo ./websock_rtsp_proxy

当运行 service ws_rtsp start 还可能报错 1006 不明原因(真是头疼)

根据官网说明,这个许可证文件从哪来,我就很懵逼

Windows
官方文档参考:https://streamedian.com/docs/#wininstall

下面去Windows下测测看


都给他装上
C:\Users\Public\Documents\Streamedian装完后桌面会多一个程序 Streamedian Player URL

双击 直接跳转到 http://127.0.0.1:8088/
还有开始界面的一个程序 server

我们运行 ,就是之前看到的激活程序(C:\Program Files\Streamedian\WS RTSP Proxy Server\activation_app)

同理,在Windows我们再次激活看看
先配置为 rtsp的ip看看

然后我们刷新下 http://127.0.0.1:8088/
set我们设备的rtsp地址,Windows居然成功了(不过没法播放视频)

点击播放,报错 方法在此状态下无效

很奇怪的是Windows我并没有修改配置文件
但Windows下却和虚拟机同步了(虚拟机已经关闭)
端口也是8088,而打开Windows 下C:\Users\Public\Documents\Streamedian\WS RTSP Proxy Server
中的ws_rtsp.ini,仍然是8080

而且对html文件进行修改,访问后还是没有修改的页面
因此我决定对虚拟机进行修改
然后并没有什么用
直接打开bat文件看看

迷~
奇迹出现
2019/12/09 下午,在出错455后,我发了这篇博客
神奇的事情发生了,我点击455的弹窗确认后
奇迹般的获取到了视频?!大概等了5/6分钟的样子

我看了下源码,发现之前的改动生效了(延迟?),在index.html下,我加入了一个js文件

<script src="my.js"></script>js文件的内容来自官方GitHub提供的代码

下面我贴出js中的代码
my.js
import * as streamedian from 'streamedian/player.js';
// import WebsocketTransport from 'wsp/transport/websocket';
// import RTSPClient from 'wsp/client/rtsp/client';
let mediaElement = rtsp.attach(document.getElementById('test_video'));
let player = new streamedian.WSPlayer(mediaElement, {
// url: `${STREAM_URL}`, // overrides mediaElement's sources
modules: [
{
// client module constructor. Should be subclass or BaseClient. RTSPClient by default
// client: RTSPClient,
transport: {
// client module constructor. Should be subclass or BaseTransport. WebsocketTransport by default
// constructor: WebsocketTransport,
options: {
// address of websocket proxy described below. ws${location.protocol=='https:'?'s':''}://${location.host}/ws/ by default
socket: "ws://websocket_proxy_address/ws",
// function called player exceptions
errorHandler (e) {
alert(`Failed to start player: ${e.message}`);
},
// function to get credentials for protected streams
queryCredentials() {
return new Promise((resolve, reject)=>{
let c = prompt('input credentials in format user:password');
if (c) {
this.setCredentials.apply(this, c.split(':'));
resolve();
} else {
reject();
}
});
}
}
}
},
]
});
恩。当我刷新页面再来一次时,又是455
然后是无尽的转圈圈

RTSP参考:rtsp详解一
出错求教
4000

1006 不明原因
rtsp 455











