返回

一文读懂 ZLMediaKit 流媒体服务器 Windows 编译

后端

如何在 Windows 系统中编译和运行 ZLMediaKit

ZLMediaKit 是一款出色的开源流媒体服务器框架,基于 C++11 开发,以高性能和可扩展性著称。它支持广泛的协议和格式,包括 RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、SIP、WebRTC、SRT 等,并提供丰富的 API 接口,方便开发者快速集成和扩展。

在本文中,我们将详细介绍如何在 Windows 系统中编译和运行 ZLMediaKit,让开发者能够轻松地将这个强大的流媒体服务器集成到自己的项目中。

准备工作

在开始编译 ZLMediaKit 之前,需要先确保已安装以下软件:

  • Visual Studio 2019 或更高版本
  • CMake 3.16 或更高版本
  • Git
  • FFmpeg
  • OpenCV
  • Python 3.7 或更高版本

编译步骤

  1. 克隆 ZLMediaKit 源码仓库:
    git clone https://github.com/ZLMediaKit/ZLMediaKit.git
    
  2. 切换到 ZLMediaKit 源码目录:
    cd ZLMediaKit
    
  3. 创建构建目录:
    mkdir build
    
  4. 切换到构建目录:
    cd build
    
  5. 生成 Visual Studio 工程文件:
    cmake .. -G "Visual Studio 16 2019" -A Win32
    
  6. 打开 Visual Studio 工程文件,在菜单栏选择“生成”->“生成解决方案”。
  7. 编译完成后,可在构建目录的 bin 目录下找到 ZLMediaKit 的可执行文件 ZLMediaKit.exe

运行 ZLMediaKit

ZLMediaKit 可以通过命令行或图形界面两种方式运行。

命令行方式

在命令行窗口中,切换到 ZLMediaKit 的安装目录,执行以下命令启动 ZLMediaKit:

ZLMediaKit.exe

ZLMediaKit 将在默认端口 8080 启动。

图形界面方式

双击 ZLMediaKit.exe 文件,ZLMediaKit 将以图形界面方式启动。

代码示例

以下是一个简单的 C++ 代码示例,展示了如何使用 ZLMediaKit 创建一个 RTSP 流媒体服务器:

#include <iostream>
#include <thread>
#include <vector>

#include "ZLMediaKit/Common/config.h"
#include "ZLMediaKit/Common/HttpRequester.h"
#include "ZLMediaKit/Common/Ini.h"
#include "ZLMediaKit/Common/MD5.h"
#include "ZLMediaKit/Common/MediaSource.h"
#include "ZLMediaKit/Common/Rtsp.h"
#include "ZLMediaKit/Server/RTSPServer.h"

using namespace std;
using namespace ZL::MediaKit;

int main() {
    // 创建 RTSP 服务器
    RTSPServer rtspServer;
    rtspServer.setMediaRootPath("./media");  // 设置媒体文件根目录

    // 创建一个 RTSP 流媒体源
    shared_ptr<MediaSource> mediaSource = std::make_shared<MediaSource>();
    mediaSource->addSource("test.mp4");  // 添加媒体文件

    // 添加流媒体源到 RTSP 服务器
    rtspServer.addMediaSource(mediaSource);

    // 启动 RTSP 服务器
    rtspServer.start();

    // 等待服务器运行
    this_thread::sleep_for(chrono::hours(1));

    // 停止 RTSP 服务器
    rtspServer.stop();

    return 0;
}

这个代码示例创建了一个 RTSP 流媒体服务器,并添加了一个媒体文件作为流媒体源。您可以修改 mediaRootPathsource 参数来指定不同的媒体文件。

常见问题解答

  1. 编译错误:找不到 FFmpeg 或 OpenCV
    确保已经正确安装 FFmpeg 和 OpenCV,并且将它们的库文件和头文件路径添加到环境变量中。
  2. 运行错误:找不到配置文件
    ZLMediaKit 的配置文件默认位于 conf 目录下,确保 conf 目录存在且不为空。
  3. 无法访问 ZLMediaKit 的 Web 管理界面
    确保已经正确配置了防火墙,允许对 ZLMediaKit 监听端口(默认 8080)的访问。
  4. 如何修改 ZLMediaKit 的配置?
    您可以修改 conf/server.conf 文件来修改 ZLMediaKit 的配置。
  5. 如何将 ZLMediaKit 集成到我的项目中?
    您可以将 ZLMediaKit 作为库链接到您的项目中,也可以使用 CMake 构建您的项目,并在构建过程中链接 ZLMediaKit。