史上最详细的webrtc-streamer搭建windows版coturn教程

吭哧瘪肚的万能工 2024-09-30 13:03:04 阅读 87

webrtc-streamer流媒体使用公网访问时,一定会用到coturn服务,之前我写的教程无法在window下搭建coturn服务器,都是Linux下搭建的,但是对于很多人来说,Linux并不是首选,因此我今天也研究了一下如何纯windows搭建并配合webrtc-streamer流媒体进行互联网视频播放。

目录

下载Cygwin

安装openssl

安装libevent

安装gcc

安装make

下载Coturn

编译Coturn

进入coturn目录

执行./configure

执行make

执行make install

配置turnserver.conf

开始运行

补充:脱离Cygwin 启动



下载Cygwin

这个玩意百度有很多介绍,我就不copy了,大概就是让Linux程序跑在windows下

官网地址:Cygwin

下载文件:setup-x86_64.exe

双击安装

下一步

默认下一步

选择安装的目录 下一步

选择下载的目录 下一步

根据你联网的情况选择,下一步

选择阿里云镜像站点,下一步

重点来了,需要安装的依赖软件就在这里安装,视图:完整

安装openssl

搜索:openssl 我这是已经安装过了,没有安装的时候,双击对应行的操作列,也就是跳过,会自动加载版本就可以安装其他的了,只要版本出来就是准备安装了。

安装libevent

安装gcc

安装make

然后下一步

我这里已经安装过了,这里不显示软件,初次安装,这里会显示你刚才选中的准备安装的软件

下一步

快捷方式都勾上 完成即可。至此,Cygwin安装完毕。

下载Coturn

GitHub地址:coturn/coturn: coturn TURN server project (github.com)

下载完解压后拷贝到D:\ENV\Cygwin\bin

编译Coturn

打开Cygwin的安装目录,有一个Cygwin.bat批处理,双击打开

打开后如下,这个默认目录就是当前Cygwin的目录,所有后面的相对路径都是基于这个目录

进入coturn目录

执行cd /bin/coturn

执行./configure

结尾出现success 说明到这一步没问题,继续

执行make

执行make install

至此,coturn就编译完成了,目录下会出现一个bin文件夹,进入后会看到turnserver.exe

别急,你会发现你比我少几个文件,一个是turnserver.conf 还有2个pem文件,从usr/local/etc目录将turnserver.conf.default文件拷贝过来,并修改文件名去掉default

配置turnserver.conf

我建议直接清空,复制如下内容:

<code>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=/bin/coturn/bin/turn_server_cert.pem

pkey=/bin/coturn/bin/turn_server_pkey.pem

pidfile=/var/run/turnserver.pid

user=admin:123456

cli-password=123456

注意:不要无脑copy,配置你自己的内网ip和公网ip

生成签名pem文件

openssl req -x509 -newkey rsa:2048 -keyout /bin/coturn/bin/turn_server_pkey.pem -out /bin/coturn/bin/turn_server_cert.pem -days 99999 -nodes

此时在coturn的bin目录下就会生成turn_server_cert.pem和turn_server_pkey.pem文件

开始运行

<code>turnserver -o -a -f -c /usr/bin/coturn/bin/turnserver.conf -r sdo.com

运行后没有ERROR即可,然后查看本机的3478端口是否被监听

此时我们就可以将webrtc-streamer配置turn服务启动了。

务必:对webrtc-streamer的tcp8000端口,3478的tcp和udp端口映射出去。

webrtc-streamer启动命令:

<code>webrtc-streamer.exe -o -H 内网ip:8000 -S公网ip:公网端口 -Tadmin:123456@公网ip:公网端口

例如:

webrtc-streamer.exe -o -H 192.168.1.27:8000 -S112.97.116.2:3478 -Tadmin:123456@112.97.116.2:3478

如何仅仅是测试,可以在启动命令后直接跟rtsp地址,注意加空格。

至此公网就可以通过coturn进行转发webrtc的视频了。

补充:脱离Cygwin 启动

如果每次都要使用Cygwin启动也就太依赖了,能不能做成批处理直接拷贝到其他服务器启动呢?

能!

将Cygwin的bin目录下的dll文件全部拷贝到Coturn目录下,然后修改turnserver.conf中的签名文件的路径

<code>cert=turn_server_cert.pem

pkey=turn_server_pkey.pem

创建2个批处理

一个启动 start.bat

@echo off

rem 检查是否有 turnserver.exe 进程运行

tasklist /FI "IMAGENAME eq turnserver.exe" | findstr /I "turnserver.exe"

if %ERRORLEVEL% == 0 (

echo 正在停止 turnserver.exe 进程...

taskkill /F /IM turnserver.exe

echo 进程已停止。

) else (

echo 没有找到 turnserver.exe 进程。

)

rem 启动 turnserver 服务并显示启动信息

echo 正在启动 turnserver 服务...

turnserver -o -a -f -c turnserver.conf -r sdo.com

echo turnserver start successfull

rem 暂停以查看启动信息

pause

一个停止stop.bat

@echo off

rem 查找并停止 turnserver.exe 进程

tasklist /FI "IMAGENAME eq turnserver.exe" | findstr /I "turnserver.exe"

if %ERRORLEVEL% == 0 (

echo 正在停止 turnserver.exe 进程...

taskkill /F /IM turnserver.exe

echo 进程已停止。

) else (

echo 未找到 turnserver.exe 进程运行。

)

rem 等待一会儿以确保进程已完全停止

timeout /t 5 /nobreak >nul

echo turnserver 服务已停止。

然后就可以通过批处理启动和停止啦,是不是很容易!

启动

停止



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。