首页 > 系统相关 >windows编译ZLMediaKit流媒体服务webrtc

windows编译ZLMediaKit流媒体服务webrtc

时间:2024-03-06 09:33:25浏览次数:38  
标签:cmake libsrtp lib windows OpenSSL CMake webrtc ZLMediaKit

环境说明

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
    

标签:cmake,libsrtp,lib,windows,OpenSSL,CMake,webrtc,ZLMediaKit
From: https://www.cnblogs.com/knowlege/p/18055795

相关文章

  • Windows 下 强制修改 MySQL的 root 账号密码
    更新记录点击查看2024年3月6日发布。2024年2月6日初始化。关闭MySQL服务netstopMySQLnetstopMySQL57netstopMySQL80netstop自定义的服务名启动MySQL但不带权限转到mysql/bin目录然后执行mysqld–console–skip-grant-tables–shared-memory如果遇到......
  • nginx在windows下的使用二
    一、反向代理,多台机器1.需求和目的:nginx代理两台服务器,这两台服务器使用tomcat模拟浏览器访问http://localhost:9001/beijing/index.html,通过nginx,跳转到一个tomcat上(端口8080),浏览器上显示beijing浏览器访问http://localhost:9001/shanghai/index.html,通过nginx,跳转到一个tom......
  • centos7 xfreerdp安装及远程执行Windows脚本
    1、yuminstallfreerdp2、centos7需要安装桌面环境,并设置从桌面启动3、xfreerdp使用  xfreerdp/u:Administrator/p:Password123/drive:data,/root/app:cmd.exe/app-cmd:"cmd.exe/knetuseX:\\tsclient\data&X:&mimi.bat"/v:192.168.0.100  /u:账号 ......
  • 如何在MinGW GCC中查询Windows服务的状态?启动、停止 Windows 服务 Demo
    使用MinGWGCC完成查询Windows服务的状态:#include<windows.h>#include<stdio.h>//查询服务状态的函数voidQueryServiceStatus(constchar*serviceName){SC_HANDLEscm,service;SERVICE_STATUSstatus;//打开服务控制管理器scm=OpenSCMana......
  • 在Windows操作系统上进行端口映射通常需要使用网络地址转换(NAT)规则或端口转发来实现。
    端口映射通常与目的网络地址转换(DNAT)概念相关联。在网络中,DNAT是一种技术,用于将传入的数据包的目的IP地址和/或端口号修改为内部网络中另一台计算机的IP地址和端口号。这样可以实现将外部流量导向内部特定计算机或服务的功能。因此,端口映射通常涉及DNAT技术,用于在网络中重......
  • Windows环境下Pytorch项目搭建在Docker中运行
    Windows环境下Pytorch项目搭建在Docker中运行1.安装windows版本的Docker​ 网上已有诸多博客教程,这里就不再赘述。2.搭建本地Pytorch环境​ 搭建本地Pytorch环境的方式我使用了两种方式,推荐使用第一种。​ 第一种:​ (1)在dockerhub中(https://hub.docker.com),找到自己版本......
  • Windows 操作系统中,Internet 协议版本 4 (TCP/IPv4) 的配置信息通常是保存在注册表中
    %SystemRoot%\system32\tcpipcfg.dll%SystemRoot%\system32\drivers\tcpip.sysSystem32\drivers\tcpip.sys%SystemRoot%\System32\wshtcpip.dll%SystemRoot%\System32\mswsock.dll%SystemRoot%\System32\perfnet.dll%SystemRoot%\System32\wsock32.dll......
  • 科幻:Windows内核攻击是指针对Windows操作系统内核的恶意攻击行为
    Windows内核攻击是指针对Windows操作系统内核的恶意攻击行为。Windows内核作为操作系统的核心组件,控制着系统资源的管理、进程调度、设备访问等关键功能,因此成为黑客和恶意分子攻击的一个重要目标。以下是一些常见的Windows内核攻击方式:内核漏洞利用:黑客通过利用Windows内核中......
  • tomcat8.5+ windows中html页面及控制台中文乱码问题解决办法
    tomcat8.5+windows中html页面及控制台中文乱码问题解决办法————————————————版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/onemy/article/details/106215384 https://blog.csdn.......
  • windows11下安装使用python多环境管理工具--poetry
    官网https://python-poetry.org/基础环境系统版本python版本poetry版本win1123H2多版本+3.6.8(默认)+3.8.6+3.10.41.8.2安装https://python-poetry.org/docs/我们选择脚本的方式安装使用powershell安装安装命令(Invoke-WebRequest-Urihttps://ins......