WebRtc一般被用作多人视频,按照这种原理来说播放rtsp流也是可以的,这里推荐一个项目:kurento-media-server,项目介绍我就不多说了,大家可以去他的官网看一下介绍。
先看一下效果:
使用h5的video标签,可正常全屏声音播放等。
下面说一下部署方式,部署方式有两种,第一种源码编译(需要科学上网),第二种docker安装,两种方式我都说一下
因为docker安装比较简单,先说第一种
Dokcer部署
Dokcer安装自行百度,安装好之后执行如下命令:
docker run \
-p 8888:8888/tcp \
-p 5000-5050:5000-5050/udp \
-e KMS_MIN_PORT=5000\
-e KMS_MAX_PORT=5050\
kurento/kurento-media-server:latest
如下图
安装好之后从日志上面可以看到websocket监听在8888端口上,上面的-p 8888:8888说明映射宿主机的8888端口,这样服务端就启动好了。接下来安装客户端,客户端直接安装在宿主机上面,从这个地址下载代码:https://github.com/lulop-k/kurento-rtsp2webrtc。下载之后按照他的说明依次执行,(如果是windwos就是用管理员身份运行cmd,mac或者ubuntu使用sudo)
npm install -g bower
cd kurento-rtsp2webrtc
bower install
npm install -g http-server
http-server
第五条命令执行之后
这个时候访问:http://127.0.0.1:8080就可以看到第一张图的效果了,然后输入rtsp地址,点击start按钮就可以播放了
源码编译
源码编译对环境要求比较苛刻,按照官网的说明只能使用ubuntu16.04或者ubuntu18.04,这里我的环境使用18.04
确认可以科学上网
安装环境编译工具
sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
build-essential \
ca-certificates \
cmake \
git \
gnupg
添加key
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
设置环境变量
export DISTRO="bionic"
sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
deb [arch=amd64] http://ubuntu.openvidu.io/dev $DISTRO kms6
EOF
说明:16.04设置为:DISTRO=“xenial”
更新仓库
sudo apt-get update && sudo apt-get install --no-install-recommends --yes kurento-media-server-dev
下载源码编译
git clone https://github.com/Kurento/kms-omni-build.git
cd kms-omni-build
git submodule update --init --recursive
git submodule update --remote
export MAKEFLAGS="-j$(nproc)"
sudo ./bin/kms-build-run.sh
如下图
可以看到启动之后同样绑定在了8888端口,客户端启动跟上面一致,基本上通过上面的配置可以进行视频播放了,很显然这个是需要自己进行二次开发才能满足现场环境的需求,底层采用c++开发,所有需要使用的小伙伴需要自己再进一步的开发才行。