ZLMediaKit rust api
-
rust-bindgen
需要安装Clang环境。
参考:bindgen requirements -
ZLMediaKit
参考:快速开始rszlm-sys在构建时按以下优先级获取 ZLMediaKit:- 若设置了
ZLM_DIR,直接使用该目录下已编译好的库(该路径需包含include、lib、bin文件夹,并将bin加入PATH)。优先级最高,跳过下载与源码编译。 - 否则,动态库(默认) 会自动从 ZLMediaKit-Build releases 下载与目标平台对应的预编译产物,无需在本地安装 ZLMediaKit 或其编译工具链。下载地址由环境变量
ZLM_RELEASE_URL控制。 - 静态库(
staticfeature),或显式设置ZLM_BUILD_FROM_SOURCE=1时,会拉取 ZLMediaKit 源码在本地编译(预编译包的 C API 仅以动态库libmk_api.so提供,无法用于静态链接)。
- 若设置了
| 环境变量 | 说明 | 默认值 |
|---|---|---|
ZLM_DIR |
指向已编译安装好的 ZLMediaKit 目录(含 include/lib/bin)。设置后优先级最高,跳过下载与源码编译。支持 ${VAR} 形式的变量展开。 |
未设置 |
ZLM_RELEASE_URL |
预编译 release 的下载地址。可为基础 URL(自动追加对应平台的资源文件名),也可为以 .tar.gz/.zip 结尾的完整压缩包 URL。 |
https://github.com/BenLocal/ZLMediaKit-Build/releases/latest/download |
ZLM_BRANCH |
选择 release 中对应分支的产物(资源名形如 zlmediakit_<branch>_<os>_<arch>_latest)。 |
master |
ZLM_BUILD_FROM_SOURCE |
设为 1/true/ON 时,即使是动态库也强制从源码编译,而不下载预编译包。 |
未设置 |
ZLM_GIT |
源码编译时使用的 ZLMediaKit 仓库地址。 | ZLMediaKit GitHub 官方仓库 |
ZLM_GIT_ZONE |
设为 gitee 时,源码编译改从 Gitee 镜像拉取(ZLMediaKit 与 libsrtp)。 |
未设置 |
预编译产物的资源命名规则为
zlmediakit_{branch}_{os}_{arch}_latest.{tar.gz|zip},其中os ∈ {linux, macos, windows}、arch ∈ {amd64, arm64}(Windows 为.zip,其余为.tar.gz)。默认地址使用 GitHub 的releases/latest/download重定向,始终指向最新 release。
./build_zlm.sh
cargo build-
dynamic和static编译-
dynamic(默认):rszlm = { version = "*" }
-
static:rszlm = { version = "*", features = ["static"] }
-
-
webrtcrszlm = { version = "*", features = ["webrtc"] }
参考