windows编译ZLMediaKit流媒体服务webrtc完整版

环境说明

ZLMediaKit编译需要的软件

visual studio 2022
cmake 3.29.0-rc2
OpenSSL 1.1.1w(不想踩坑的话安装这个版本)
libsrtp 2.6.0

ZLMediaKit编译后运行需要

libsrtp 编译后且配置环境变量
ZLMediaKit 编译后文件

visual studio

Snipaste_2024-02-28_17-33-25
Snipaste_2024-02-28_17-34-19
Snipaste_2024-02-28_17-35-53

cmake

visual stuido 20222,自带cmake

cmake可以到这两个地方下载:下载1下载2

Snipaste_2024-02-28_09-48-44
Snipaste_2024-02-27_13-02-04
Snipaste_2024-02-28_09-49-07
Snipaste_2024-02-28_09-49-24
Snipaste_2024-02-29_15-12-23
Snipaste_2024-02-29_15-12-30

测试是否成功

C:\Users\XXX>cmake
Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>

Specify a source directory to (re-)generate a build system for it in the
current working directory.  Specify an existing build directory to
re-generate its build system.

Run 'cmake --help' for more information.

OpenSSL

可以到OpenSSL安装window编译版本, 记得要下载是exe或msi文件,不要light的文件!!!!!

Snipaste_2024-02-27_13-02-04

按步骤安装,安装地址为:C:\Program Files\OpenSSL-Win64

Snipaste_2024-02-27_15-49-25

配置环境变量一定要配置正确!!!

Snipaste_2024-02-27_09-46-14

测试

C:\Users\XXX>openssl -v
OpenSSL 3.2.1 30 Jan 2024 (Library: OpenSSL 3.2.1 30 Jan 2024)

可以不重启电脑,但必须关闭已经打开cmd窗口,否则会显示'openssl' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

libsrtp

libsrtp下载后解压,解压路径地址为: D:\XXX\soft\libsrtp-2.6.0

有两种编译方式:

第一种: visual stuidocmake结合使用

  1. 首先在D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0新建build和install两个文件夹

  2. 打开cmake软件

    Snipaste_2024-02-29_14-26-41

  3. 完成后出现红色配置,勾选上BUILD_SHARED_LIBS、ENABLE_OPENSSL、以及CMAKE_INSTALL_PREFIX的路径,然后点生成。注意这里有个问题Could NOT find OpenSSL

    Snipaste_2024-02-29_14-29-54
  4. 如果3顺利的话,完成后的结果(换回1.1.1的测试结果),然后点open project

    Snipaste_2024-02-29_16-54-09
  5. 会打开vs

    Snipaste_2024-02-29_17-13-25
  6. 生成后会出现一些错误(但无影响)

    Snipaste_2024-02-29_17-14-51
  7. install文件夹生成的目录

    install目录│文件列表:
     ├ include
     │  └ srtp2
     │     │ auth.h
     │     │ cipher.h
     │     │ crypto_types.h
     │     └ srtp.h
     └ lib
        │ srtp2.dll
        │ srtp2.lib
        └ cmake
           └ libSRTP
              │ libSRTPConfig.cmake
              │ libSRTPConfigVersion.cmake
              │ libSRTPTargets-debug.cmake
              └ libSRTPTargets.cmake
    
  8. 配置环境变量到path

    D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0\install
    D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0\install\lib
    

编译ZLMediaKit

在使用VS打开ZLMediaKit项目时,如果未开启webrtc, 会出现

[CMake] -- set_file_group D:/XXX/project/ZLMediaKit/src 205
1> [CMake] -- srt 功能已开启
1> [CMake] CMake Warning at webrtc/CMakeLists.txt:28 (message):
1> [CMake]   srtp 未找到, WebRTC 相关功能打开失败

要开启webrtc,需要保证以下正确

  • 开启了webrtc

    Snipaste_2024-02-29_17-51-14
  • libsrtp编译正确且配置环境变量

开启成功的话, 会出现下面,然后安装ZLMediaKit

> [CMake] -- Enable wepoll
1> [CMake] -- set_file_group D:/XXX/project/ZLMediaKit/3rdpart/ZLToolKit/src 80
1> [CMake] -- set_file_group D:/XXX/project/ZLMediaKit/src 205
1> [CMake] -- srt 功能已开启
1> [CMake] -- found library: D:/XXX/soft/libsrtp-2.6.0/libsrtp-2.6.0/install/lib/srtp2.lib
1> [CMake] -- SCTP LIBRARIES: SCTP_LIBRARIES-NOTFOUND
1> [CMake] -- SCTP INCLUDE DIRS: SCTP_INCLUDE_DIRS-NOTFOUND
1> [CMake] -- WebRTC 功能已开启
image-20240229175901339

如果不行先把out和release文件夹删除,再重新打开vs,然后安装ZLMediaKit

Snipaste_2024-02-22_16-33-28

测试webrtc

打开编译目录,双击MediaServer.exe

image-20240301114721947

先推流,用obs推流

Snipaste_2024-03-01_18-08-44

chrome浏览器打开

Snipaste_2024-03-01_18-05-58

点确定

Snipaste_2024-03-01_18-06-14

点开始

Snipaste_2024-03-01_18-09-45

问题

  • MediaServer.exe打开后,由于找不到 srtp2.dll,无法继续执行代码。重新安装程序可能会解决此问题

    检查srtp2.dll的环境变量是否正确,如:D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0\install\lib

    image-20240301112912727
  • Could NOT find OpenSSL

CMake Error at C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
  OPENSSL_INCLUDE_DIR) (Required is at least version "1.1.0")       C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake 230     

开始以为是安装openssl步骤有问题,改为第一个选项,结果还是这样的接口

Snipaste_2024-02-28_10-13-28

然后看了报错

try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR

添加了环境变量

```
OPENSSL_ROOT_DIR    C:\Program Files\OpenSSL-Win64
OPENSSL_CRYPTO_LIBRARY  C:\Program Files\OpenSSL-Win64\lib
OPENSSL_INCLUDE_DIR C:\Program Files\OpenSSL-Win64\include
```
Snipaste_2024-02-27_13-07-31

完成后重启,清除缓存生成依然没有效果

image-20240229160034606

解决方式

  • 换版本OpenSSL: Win64OpenSSL-1_1_1w.msi, 省很多事

    C:\Users\XXX>openssl version
    OpenSSL 1.1.1w  11 Sep 2023
    

    安装完成它的lib目录结构为:

    lib目录│文件列表:
     │ capi.lib
     │ dasync.lib
     │ ec_internal_test.lib
     │ libapps.lib
     │ libcrypto.def
     │ libcrypto.lib
     │ libcrypto_static.lib
     │ libssl.def
     │ libssl.lib
     │ libssl_static.lib
     │ libtestutil.lib
     │ openssl.lib
     │ ossltest.lib
     │ padlock.lib
     │ uitest.lib
     └ VC
        │ libcrypto64MD.lib
        │ libcrypto64MDd.lib
        │ libcrypto64MT.lib
        │ libcrypto64MTd.lib
        │ libssl64MD.lib
        │ libssl64MDd.lib
        │ libssl64MT.lib
        │ libssl64MTd.lib
        └ static
           │ libcrypto64MD.lib
           │ libcrypto64MDd.lib
           │ libcrypto64MT.lib
           │ libcrypto64MTd.lib
           │ libssl64MD.lib
           │ libssl64MDd.lib
           │ libssl64MT.lib
           └ libssl64MTd.lib
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容