跳至主要內容

快速开始

ZLMediaKit大约 4 分钟

本教程将指导您完成编译和运行 ZLMediaKit。

构建环境

新手提示

如果你是位新手,强烈建议使用 Ubuntu16 以上版本编译 ZLMediaKit,macOS 是次选推荐平台。不推荐使用 CentOS6.x 或 windows 构建与使用。

vcpkg

ZLMediaKit 已上架 vcpkg,便捷安装请参考 vcpkg 安装 ZLMediaKit

支持 C++11 的编译器

ZLMediaKit 采用了 C++11 的语法和库,要求编译器支持完整的 C++11 标准:

  • Linux: gcc >= 4.8 (4.7 应该也能支持)
  • macOS: Clang >= ??? (我也不知道,估计大部分不会遇到这个问题)
  • Windows: Visual Studio >= 2015 (vs2013 某些版本也能编译通过,如果怕麻烦建议直接 vs2017)
Debian 系 (包括 Ubuntu)
sudo apt install build-essential

CMake

ZLMediaKit 采用 CMake 来构建项目,所以编译需要 CMake。

Debian 系 (包括 Ubuntu)
sudo apt install cmake

获取代码

使用 Git 克隆 ZLMediaKit 的代码并初始化子模块:

# 国内用户推荐从 Gitee 下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 初始化子模块 (必须执行)
git submodule update --init

注意

不能通过下载 zip 包的方式下载源码。因为 ZLMediaKit 依赖于第三方代码并通过 Git 子模块的方式管理。

安装依赖库

ZLMediaKit 依赖一些可选的第三方库。构建时,CMake 将在 path 中查找这些库,并根据检测情况决定是否开启相关特性。

  • openssl

    你需要在编译前安装 openssl 库以使用相关功能。

    • flash player 播放 rtmp
    • https/rtsps/webrtc 相关功能。
  • ffmpeg

    ZLMediaKit 可以通过 fork ffmpeg 进程的方式实现多种协议的拉流,编译时不需要安装 FFmpeg。

  • sdl、avcodec、avutil

    这 3 个库供 ZLMediaKit 的 test_player 测试程序使用,你通常不需要安装这 3 个库。

Debian 系 (包括 Ubuntu)

除了 openssl,其他都是可选的:

sudo apt install libssl-dev
sudo apt install libsdl-dev
sudo apt install libavcodec-dev
sudo apt install libavutil-dev
sudo apt install ffmpeg

构建与编译 ZLMediaKit

webrtc

由于功能复杂,默认情况下不开启编译 webrtc,可参考 编译与使用 webrtc

Linux
cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4

运行 ZLMediaKit

ZLMediaKit 工程主要生成 3 种二进制目标文件,他们的生成的路径在 release 目录下。

MediaServer 进程

这是 ZLMediaKit 作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用。

如果你需要更复杂的业务逻辑,可以通过 Web HOOKRESTful API实现。你可以通过 配置文件 控制其参数。

Linux
cd ZLMediaKit/release/linux/Debug
# 通过 -h 可以了解启动参数
./MediaServer -h
# 以守护进程模式启动
./MediaServer -d &

C 接口的 SDK

ZLMediaKit 同时提供 C 接口的 SDK 库。

头文件位于 ZLMediaKit/api/include,有详细的注释,一般足够二次开发使用。

库文件为:

Linux
ZLMediaKit/release/linux/Debug/libmk_api.so

test_ 开头的测试程序

相关代码在 ZLMediaKit/tests 目录下,你可以对照代码启动测试进程。

推流测试

请参考 推流播放测试