美文网首页
webrtc-streamer视屏流服务器搭建

webrtc-streamer视屏流服务器搭建

作者: 柠檬小猪 | 来源:发表于2023-08-14 16:01 被阅读0次

之前通过SRS和ffmpeg拉流转码来播放海康的监控摄像头,实现起来代码上比较复杂,而且cpu占用高;

后来发现用webrtc-steamer可以直接在前端播放rtsp流;代码量大幅减少,不需要转码,效率也提高了;cpu占用率也降低了,一个服务器可以支撑的视频也多了。

第一步:安装docker版的webrtc-steamer

(直接安装linux版本的缺少很多依赖,弄起来太麻烦了)

docker pull mpromonet/webrtc-streamer

启动

docker run -itd -p 8000:8000 --name webrtc-streamer mpromonet/webrtc-streamer

看下效果

本地和局域网的可以看到。

上云后就看不了。(网上很多攻略到这就没了,完全不能投入使用)

第二步:公网穿透(具体什么原理以后再研究)

Linux下WebRTC搭建私有turn/stun服务,目前coturn只支持linux

1. 安装gcc

yum install gcc-c++

2. 安装openssl-devel

yum -y install openssl-devel

3. 安装libevent

在http://libevent.org/ 下载libevent-2.1.8-stable.tar.gz

tar -zxvf libevent-2.1.8-stable.tar.gz

cd libevent-2.1.8-stable

./configure --prefix=/usr --libdir=/usr/lib64 (如果报错试试这个方式:./configure --prefix=/usr/local/coturn)

make

make install

成功没有出现报错信息

4. 安装conturn-4.5.1.1

wget https://github.com/coturn/coturn/archive/4.5.1.1.tar.gz

tar -zxvf 4.5.1.1.tar.gz

cd coturn-4.5.1.1

./configure

make

make install

可以通过which turnserver验证。如果出现路径即为成功

5. 配置文件和签名,然后进入文件夹:

cd /usr/local/etc/ 会看到一个叫做 turnserver.conf.default的配置文件。将它备份:

cp turnserver.conf.default turnserver.conf

6. 在当前文件夹生成签名(自行输入):

openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/turn_server_pkey.pem -out /usr/local/etc/turn_server_cert.pem -days 99999 -nodes

后面会弹出地区输入,自己输,没什么影响

7. 修改配置文件

Vim turnserver.conf  参考如下

relay-device=eth0

listening-ip=#内网IP

listening-port=3478

tls-listening-port=5349

relay-ip=#内网IP

external-ip=#公网IP

relay-threads=50

lt-cred-mech

min-port=49152

max-port=65535

cert=/usr/local/etc/turn_server_cert.pem

pkey=/usr/local/etc/turn_server_pkey.pem

pidfile=”/var/run/turnserver.pid”

user=admin:123456

cli-password=123456

将配置文件更新如上。

请一定要设置cli-password这一项,不设置会报错。

注意检查cert和pkey的路径和名称。检查内网ip和公网ip是否填写准确。

注意文本格式准确。

8. 启动turnserver

turnserver -o -a -f -user=admin:123456 -c /usr/local/etc/turnserver.conf -r NanChang

-o 是让程序在后台启动

-r 后面填个地区就行。

-user 一定要和配置文件中一样。

ps -ef|grep turnserver 指令查看是否启动服务,如果有

9.验证

Trickle ICE:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

1、stun:+公网IP+端口,测试出现公网IP则代表部署成功

2、turn:+公网IP+端口,测试出现公网IP则代表部署成功

然后再次docker启动webrtc-streamer

docker run -itd -p 8000:8000 --name webrtc-streamer1 mpromonet/webrtc-streamer -H0.0.0.0:8000 -Tadmin:123456@139.199.172.92:3478-s139.199.172.92:3478-C config.json

139.199.172.92是我公网的ip

我用腾讯云到这里都很顺利,没有报错。

参考:史上最详细的webrtc-streamer访问摄像机视频流教程_吭哧瘪肚的万能工的博客-CSDN博客

第三步:vue项目调用

引用js,js文件要放在public里,这样不会被编译换路径。(js可以在windows版本的webrtc-streamer找到)

调用加载js方法

初始化webrtcstreamer

页面,video就是初始化webrtcstreamer里的video

看效果

Webrtcstreamer是搭建在腾讯云上,不是局域网。

Webrtcstreamer下载地址

https://github.com/mpromonet/webrtc-streamer/releases

相关文章

网友评论

      本文标题:webrtc-streamer视屏流服务器搭建

      本文链接:https://www.haomeiwen.com/subject/cqrcmdtx.html