This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1、获取代码
请不要使用github 下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作:
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
2、强烈推荐
如果你是位新手,强烈建议使用ubuntu16或更新版本编译ZLMediaKit,macOS是次选推荐平台,最不推荐的是centos6.*或windows平台。
zlmediakit已上架vcpkg,便捷安装请参考vcpkg安装zlmediakit
3、编译器
3.1、编译器版本要求
ZLMediaKit采用了C++11的语法和库,要求编译器支持完整的C++11标准,亦即:
- linux上要求gcc 版本 >= 4.8(4.7应该也能支持)
- macOS上clang >= ???(我也不知道,估计大部分不会遇到这个问题)
- windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕麻烦建议直接vs2017)
3.2、安装编译器
-
如果你是debian系操作系统(包括ubuntu系用户),一般自带的gcc版本够新,你可以这样安装gcc编译器:
sudo apt-get install build-essential -
如果你是centos7或以上用户,你可以这样安装gcc编译器:
sudo yum -y install gcc sudo yum -y install gcc-c++ -
如果你是centos6.*用户,你可以这样安装gcc编译器:
sudo yum install centos-release-scl -y sudo yum install devtoolset-4-toolchain -y #切换到高版本gcc scl enable devtoolset-4 bash -
如果你是macOS用户,你直接安装xcode即可。
-
如果你是windows用户,推荐安装vs2017或以上。
4、cmake
ZLMediaKit采用cmake来构建项目,通过cmake才能生成Makefile(或Xcode/VS工程),所以必须先安装cmake才能完成后续步骤。
-
如果你是debian系操作系统(包括ubuntu系用户),一般自带的cmake版本够新,你可以这样安装cmake
sudo apt-get install cmake -
如果你是centos7或以上用户,你也许可以这样安装cmake:
sudo yum -y install cmake -
如果你是centos6.*用户,那么你需要下载新版本的cmake源码然后编译安装cmake
wget https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3.tar.gz tar -xvf cmake-3.17.0-rc3.tar.gz cd cmake-3.17.0-rc3 ./configure make -j4 sudo make install -
如果你是macOS用户,你可以这样安装cmake:
brew install cmake -
如果你是windows用户,并且vs版本为2017及以上,你不用单独安装cmake,否则你需要安装cmake-gui:
#安装win64版本cmake https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3-win64-x64.zip #安装win32版本cmake https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3-win32-x86.zip
5、依赖库
5.1、依赖库列表
ZLMediaKit可选依赖一些第三方库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查找系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启用相关特性:
-
openssl
-
flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.
-
同时ZLMediaKit的https/rtsps/webrtc相关功能需要使用openssl才能开启。
-
-
ffmpeg
zlmediakit可以通过fork ffmpeg进程的方式实现多种协议的拉流,编译时不需要安装FFmpeg。
-
sdl、avcodec、avutil
这3个库供ZLMediaKit的test_player测试程序使用,你通常不需要安装这3个库。
5.2、安装依赖库
-
Debian系(包括ubuntu)系统下安装依赖的方法:
#除了openssl,其他其实都可以不安装 sudo apt-get install libssl-dev sudo apt-get install libsdl-dev sudo apt-get install libavcodec-dev sudo apt-get install libavutil-dev sudo apt-get install ffmpeg -
centos6.*的用户可以参考该文章
-
macOS/centos下安装依赖库:
基本安装方式跟Debian系安装差不多,安装命令分别改成brew / yum即可。但是有些库名字与Debian系不太一样,请自行查找相关资料。
-
windows下安装依赖库
-
安装openssl
请从网站中下载。
-
6、构建和编译项目
由于开启webrtc相关功能比较复杂,默认是不开启编译的,如果你对zlmediakit的webrtc功能比较感兴趣,可以参考这里
-
在linux或macOS系统下,你应该这样操作:
cd ZLMediaKit mkdir build cd build #macOS下可能需要这样指定openss路径:cmake .. -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2j/ cmake .. make -j4 -
在windows系统下
-
如果你是vs2017或以上,可以在vs菜单栏中直接打开项目文件夹:
[文件] -> [打开] -> [文件夹] -> [选择ZLMediaKit代码根目录并打开]
-
如果你是vs2017以下版本,你需要使用cmake-gui生成vs工程然后编译:
1 进入ZLMediaKit目录执行 git submodule update --init 以下载ZLToolKit的代码 2 使用cmake-gui打开工程并生成vs工程文件. 3 找到工程文件(ZLMediaKit.sln),双击用vs2017打开. 4 选择编译Release 版本. 5 找到目标文件并运行测试用例. -
同时,Windows编译也可以参考这里
-
-
如果你要编译Android版本,你可以自己在Android Studio中打开Android目录。
-
如果你要编译ios版本,可以生成xcode工程然后编译c api的静态库;另外,你可以参考此文档
cd ZLMediaKit mkdir -p build cd build # 生成Xcode工程,工程文件在build目录下 cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64COMBINED
7、运行
ZLMediaKit工程主要生成3种二进制目标文件,他们的生成的路径在release目录下,这些目标文件主要分为:
-
MediaServer进程
这是ZLMediaKit作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用,如果你需要更复杂的业务逻辑,可以通过Web HOOK和RESTful API实现,同时你可以通过配置文件控制其参数。
-
在linux下启动:
cd ZLMediaKit/release/linux/Debug #通过-h可以了解启动参数 ./MediaServer -h #以守护进程模式启动 ./MediaServer -d & -
在macos下启动:
目标文件目录在ZLMediaKit/mac/Debug,其他操作完全一致。
-
在window下启动:
1 进入ZLMediaKit/release/windows/Debug目录 2 双击MediaServer启动 3 你也可以在cmd或powershell中启动,通过MediaServer -h了解启动参数
-
-
c api 的SDK
ZLMediaKit也提供c的api二次开发sdk库,头文件在
ZLMediaKit/api/include,库文件为:-
linux下:
ZLMediaKit/release/linux/Debug/libmk_api.so -
macOS下:
ZLMediaKit/release/linux/mac/libmk_api.dylib -
windows下:
ZLMediaKit/release/windows/Debug/mk_api.dll ZLMediaKit/release/windows/Debug/mk_api.libSDK头文件有详细的注释,一般足够二次开发使用。
-
-
以
test_开头的测试程序相关代码在
ZLMediaKit/tests目录下,你可以对照代码启动测试进程。
8、测试
请参考此文章完成推流播放测试
测试文档
使用教程
- 代码依赖与版权声明
- 快速开始
- vcpkg安装zlmediakit
- 服务器的启动与关闭
- GB28181教程
- 推流播放测试
- RESTful 接口
- RESTful 接口 postman自动生成
- Web Hook 接口
- 配置文件详解
- 播放URL规则
- 按需拉流
- 按需推流
- 播放鉴权
- 推流鉴权
- 怎样创建直播流
- webrtc编译与使用
- webrtc信令交互格式
- webrtc重磅更新
- 怎么开启https相关功能
相关文档和资源
- zlmediakit独家特性
- zlmediakit的hls高性能之旅
- 高并发实现原理
- RTSP推流流程
- 流媒体相关技术介绍
- 直播延时的本质
- rtmp对H265/opus的支持
- ssl自签名证书测试
- 视频会议相关资源
