环境:vs2019
依赖: openssl
libsrtp
一、依赖下载
opessl:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
下载完openssl, 配置一下环境遍历,当然也不可以不配置环境遍历,编译的时候指定openssl目录也可以,两种方式分别如下:
方法1、环境变量,根据自己的目录更改,这里是放在D:\work\OpenSSL-Win64
方法2、用cmake-gui,编译之后勾选上一些依赖项即可,同时在依赖项里面要选择openssl的目录,个人感觉不如环境变量方便,后续srtp也要配到环境变量,不如都用环境变量得方式,请看第二点 :libsrtp编译,教你如何添加依赖
libstrp :https://codeload.github.com/cisco/libsrtp/tar.gz/refs/tags/v2.3.0
二、编译strp
方法1:
此方式是openssl已经配置在环境变量中,使用这个方法会更快一点
通过上面链接下载,解压libsrtp,自行解压到一个目录,打开cmd,进入到你解压的ibsrtp目录
cd libsrtp
mkdir build #VS工程文件目录
mkdir install #新建一个文件夹,存放编译生成的strp.dll srtp2.lib
cd build
vcvars64.bat
#这里E:\lsq\github\libsrtp\install就是刚刚mkdir install所创建的目录
cmake -DCMAKE_INSTALL_PREFIX=E:/lsq/github/libsrtp-2.3.0/install -DBUILD_SHARED_LIBS=on ..
如果执行vcvars64.bat失败,请检查VS2019(2017或其他更高版本)是否安装,且VS的目录是否加到环境变量中,如:
方法2 :
cmake-gui的方式编译strp,跟我配置一样即可
然后Configure ,Generate, 会在build生成VS的工程文件
通过上述两种方式编译好srtp之后,进入build目录,打开libsrtp2.sln (工程)文件,右击解决方案中的INSTALL,点击生成即可,之后会在install目录生成strp.dll srtp2.lib
生成完成之后,可以在install目录看到编译zlm所需要的srtp库
注意一下lib目录下是否有dll文件
将install目录配到环境变量里面,这样编译zlm时候就不用在指定目录了,cmake会自己在环境变量中找到lstrp
三、 编译ZLMediakit
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
mkdir build
cd build
# 指定VS的cmake,这样就会生成VS的工程
vcvars64.bat #确保vcvars64.bat所在路径以及配置到环境变量中,如:
#D:\Program Files\MicrosoftVisual Studio\2019\Community\VC\Auxiliary\Build
cmake .. -DENABLE_WEBRTC=on
编译日志:
此时zlm的webrtc部分已经编译完成
在build目录下我们能看到zlm的工程文件,双击打开
打开ZLMediaKit.sln,开始生成,如果生成错误,请检查编译srtp时是否加了openssl,或者openssl和srtp是否加入环境变量,strp是否加入到环境变量,关系着能不能把webrtc功能开启,非常重要
生成ZLMediakit
将MediaServer设置为启动项
开始跑起来
四、成功编译后得注意事项
非常重要,关系着你能不能正常使用webrtc得功能
1、拷贝一下几个dll文件,到MediaServer.exe所在目录,目录在ZLMediaKit\release\windows\Debug\Debug
2、将工程根目录得www目录,也拷贝到MediaServer.exe所在目录,目录在ZLMediaKit\release\windows\Debug\Debug
3、拷贝工程根目录下得default.pem 到MediaServer.exe所在目录,目录在ZLMediaKit\release\windows\Debug\Debug
4、更改下配置文件
打开config,ini, 该文件在ZLMediaKit\release\windows\Debug\Debug目录下,更改以下字段
其他端口被占用得情况,自行更换配置文件中得端口,很多人因为装了VM,导致443端口被占用,可以将配置文件中得443端口换成其他端口
完成以上这些,你就可以开始测试webrtc啦