在Windows上编译和运行ZLMediaKit

摘要

本文描述了如何在Windows上编译和运行ZLMediaKIt

实验环境

操作系统:Windows 10 (22H2 19045.2251)
开发工具:Visual Studio 2022

背景知识

在Windows上编译ZLMediaKit的难度略大于在Ubuntu上编译ZLMediaKit

想体验ZLMediaKit最低延迟的WebRTC功能,你需要预先编译好如下开源库:

FFmpeg: 用于拉流、转码、编码、推流。
OpenSSL: 加密库、TLS库。
libsrtp:SRTP(安全实时传输协议),用于WebRTC音视频数据的安全传输。
usrsctp: 一个采用C语言开发的SCTP协议栈,用于WebRTC数据通道的安全传输。

FFmpeg编译

方式一:直接在FFmpeg官网下载预编译好的开发包。

方式二:参考《在Windows上编译FFmpeg》

OpenSSL编译

建议采用vcpkg安装OpenSSL  3.1.1开发包,命令如下:

vcpkg install openssl --triplet x64-windows

将环境变量CMAKE_TOOLCHAIN_FILE设置为vcpkg.cmake文件路径,示例如下:

rem 请将环境变量值替换成你的vcpkg的实际安装路径。
环境变量名:CMAKE_TOOLCHAIN_FILE
环境变量值:G:\vcpkg\scripts\buildsystems\vcpkg.cmake

libsrtp编译

运行cmd.exe,在其命令行界面下,进行如下操作:

#获取源码
git clone https://github.com/cisco/libsrtp.git

#进入libsrtp的源码仓库目录,用git命令查看标签,创建分支:
cd libsrtp
git tag
git checkout v2.5.0

#创建构建目录,用cmake构建。
mkdir build_x64
cd build_x64
cmake -S .. -B . -A x64 -DBUILD_SHARED_LIBS=on -DENABLE_OPENSSL=on
rem 如下命令会构建所有项目(project),包括测试项目。
cmake --build . --config Debug --target ALL_BUILD
rem 如果你只想构建srtp2项目,可以将上一行命令替换为如下命令:
cmake --build . --config Debug --target srtp2

#安装编译结果
#注意:将YOU_SRTP_INTALL_DIR替换为实际的安装目录。
cmake --install . --config Debug --prefix YOU_SRTP_INTALL_DIR

#修改PATH环境变量
#为了让cmake的find_package命令能找到已安装的librtcp开发包,
#请将libsrtp开发包的实际安装目录添加到PATH环境变量中。

usrsctp编译

找一个源码仓库存放文件夹,运行cmd.exe,进行如下操作:

git clone https://github.com/sctplab/usrsctp.git
cd usrsctp
git tag
git checkout 0.9.5.0
mkdir build_x64
cd build_x64
rem 注意:用你本地工作路径替换“--install-prefix=”参数的值。
cmake -S .. -B . -A x64 --install-prefix=%YOUR_WORK_DIR%\usrsctp\output -Dsctp_werror=off
rem 用VS 2022打开生成的解决方案,修改usrsctp项目的Debug配置的运行库选项,
rem 改为与ZLMediaKit的MediaServer项目的配置一致,比如:/MTd。
rem 编译usrsctp项目和INSTALL项目。
rem 将output目录的全路径添加到PATH环境变量中,
rem 或者将安装包内容复制到任何cmake能查找到的目录。

获取ZLMediaKit源码

ZLMediaKit官方建议使用git克隆ZLMediaKit的代码,示例如下:

#国内用户推荐从同步镜像网站gitee下载 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init

配置和生成Visual Studio解决方案

运行cmake-gui程序,选择ZLMediaKit源码目录和输出目录,先点击Configure按钮,再点Generate按钮,示例如下:

编译和运行ZLMediaKit

打开ZLMediaKit\release\windows\Debug\Debug目录下的config.ini,修改secret密钥。
打开上一节的生成目录(例如:build_x64),双击打开ZLMediaKit.sln解决方案。
将MediaServer设为启动项目,按F5自动编译和运行。

总结

在Windows上,编译ZLMediaKit的依赖库相对麻烦,而且编译方式有很多种,需要多动手实践,遇到问题解决问题。一旦你准备好了ZLMediaKit的依赖库,再用Visual Studio 2022这类强大的IDE来编译和调试ZLMediaKit源码时会有“柳暗花明又一村”的轻松感觉。

猜你喜欢

转载自blog.csdn.net/bigwave2000/article/details/132295190