基于WebRtc的rtsp流播放

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 <

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++开发,所有需要使用的小伙伴需要自己再进一步的开发才行。

你可能感兴趣的:(基于WebRtc的rtsp流播放)