IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 《ZLMediaKit源码学习笔记》(1)windows下VS2022源码编译 -> 正文阅读

[开发工具]《ZLMediaKit源码学习笔记》(1)windows下VS2022源码编译

系列文章目录

《ZLMediaKit源码学习笔记》(1)windows下VS2022源码编译(本文)


前言

学习源码前,需要先让程序跑起来,本节我们学习下在windows下如何使用Visual Studio 2022来编译ZLMediaKit。

它的依赖库ZLToolKit源码学习参见《ZLToolKit源码学习笔记》


目录

系列文章目录

前言

一、源码下载

二、依赖库下载

2.1、openssl

2.2、ffmpeg

2.3、sdl2

2.4、srtp

三、VS2022编译

3.1、通过cmake直接打开

3.2、通过sln解决方案打开


一、源码下载

github可能访问不了或者下载速度太慢,这里本人使用码云下载,地址:https://gitee.com/xia-chu/ZLMediaKit.git

windows git客户端在这里下载,https://github.com/git-for-windows/git/releases/download/v2.35.1.windows.2/Git-2.35.1.2-64-bit.exe,在git-bash中执行以下命令:

# git clone https://gitee.com/xia-chu/ZLMediaKit.git
# cd ZLMediaKit
# git submodule update --init

二、依赖库下载

本人测试使用的是64位程序,所以这里所有用到的依赖库均为64位版本。

2.1、openssl

下载地址:http://slproweb.com/download/Win64OpenSSL-3_0_1.exe

下载完成后傻瓜式安装即可。ZLMediaKit中无需配置,Cmake会自己找到我们安装的路径。(通过默认的FindOpenSSL.cmake)

2.2、ffmpeg

下载地址:https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-5.0-full_build-shared.7z

使用ffmpeg5.0,下载后的库放到3rdpart目录下:

修改ZLMediaKit/cmake/FindAVCODEC.cmake文件中find_path和find_library的路径:

find_path(AVCODEC_INCLUDE_DIR
  NAMES libavcodec/avcodec.h
  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/ffmpeg/include)

find_library(AVCODEC_LIBRARY
  NAMES avcodec
  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/ffmpeg/lib)

?

?修改ZLMediaKit/cmake/FindAVUTIL.cmake文件中find_path和find_library的路径:

find_path(AVUTIL_INCLUDE_DIR
  NAMES libavutil/avutil.h
  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/ffmpeg/include)

find_library(AVUTIL_LIBRARY
  NAMES avutil
  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/ffmpeg/lib)

?

?修改ZLMediaKit/cmake/FindSWRESAMPLE.cmake文件中find_path和find_library的路径:

find_path(SWRESAMPLE_INCLUDE_DIR
  NAMES libswresample/swresample.h
  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/ffmpeg/include)

find_library(SWRESAMPLE_LIBRARY
  NAMES swresample
  PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/ffmpeg/lib)

??

由于本人使用的是ffmpeg5.0版本,作者使用的应该是3.x的版本,这里需要修改下新版本的编译错误,比较暴力,直接注释掉废弃的接口。

修改ZLMediaKit/player/FFMpegDecoder.cpp文件:

2.3、sdl2

下载地址:http://www.libsdl.org/release/SDL2-devel-2.0.20-VC.zip

下载后的库放到3rdpart目录下:

修改ZLMediaKit/cmake/FindSDL2.cmake文件中find_path和find_library的路径:?

find_path(SDL2_INCLUDE_DIR
	NAMES SDL2/SDL.h
	HINTS SDL2
	PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/sdl2/include)

find_library(SDL2_LIBRARY
	NAMES SDL2
	PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../3rdpart/sdl2/lib/x64)

??

2.4、srtp

srtp需要自行编译,可以在github下载,本人使用的是2.4.2版本,地址:https://codeload.github.com/cisco/libsrtp/zip/refs/tags/v2.4.2

VS2022,选择打开cmake项目,选中CMakeLists.txt文件后打开。默认是debug版本的,增加一个release版本的配置。

m???

切换到release编译,勾选编译动态库和支持openssl,保存,重新生成项目,安装libsrtp:

最后把libsrtp-2.4.2/out/install/x64-Release目录下生成的文件拷贝到ZLMediaKit的3rdpart目录下:

修改ZLMediaKit/cmake/FindSRTP.cmake文件中的路径:

set(_SRTP_ROOT_PATHS
         ${CMAKE_CURRENT_SOURCE_DIR}/3rdpart/srtp2
        )       
find_path(SRTP_INCLUDE_DIRS
        NAMES srtp2/srtp.h
        HINTS ${_SRTP_ROOT_PATHS} ${SRTP_PREFIX}
        PATH_SUFFIXES include
        )

?

至此,依赖库配置完成,最终所有涉及修改或新增的文件如下:

?以上配置已经全部上库到https://gitee.com/qinshixiao/ZLMediaKit,可以直接下载使用。


三、VS2022编译

3.1、通过cmake直接打开

打开本地文件夹,选定ZLMediaKit后打开,VS会自动识别出cmake项目。

??

也可以手动选择打开cmake项目,选中CMakeLists.txt文件后打开。

???

???

?项目装载完成后,即可直接编译运行,比如测试test_player.exe程序,配置默认启动参数,测试rtsp拉流。在launch.vs.json文件中设置程序启动时的参数。

??

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "test_player.exe (E:\\work\\openSource\\ZLMediaKit\\release\\windows64\\Debug\\test_player.exe)",
      "name": "test_player.exe (E:\\work\\openSource\\ZLMediaKit\\release\\windows64\\Debug\\test_player.exe)",
      "args": [
        "rtsp://admin:123456@192.168.31.66/media/video2",
        "0"
      ]
    },
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "MediaServer.exe (E:\\work\\openSource\\ZLMediaKit\\release\\windows64\\Debug\\MediaServer.exe)",
      "name": "MediaServer.exe (E:\\work\\openSource\\ZLMediaKit\\release\\windows64\\Debug\\MediaServer.exe)"
    }
  ]
}

注意上边的args参数,本人测试的是宇视IPC的rtsp拉流地址:?rtsp://admin:123456@192.168.31.66/media/video2。

?如果程序无法运行,可能是库文件和exe程序不在同一个目录下,将我们添加的所有依赖库的dll文件拷贝一份到exe程序同级目录下即可。

3.2、通过sln解决方案打开

如果因为环境配置问题,1方式无法使用,也可以通过sln来打开项目。该方式需要首先使用cmake工具生成sln文件。可以参见《ZLToolKit源码学习笔记》(1)VS2019源码编译

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:14:24  更:2022-02-04 11:15:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:22:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码