-
Notifications
You must be signed in to change notification settings - Fork 3.4k
快速开始
请不要使用github 下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作:
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
如果你是位新手,强烈建议使用ubuntu16或更新版本编译ZLMediaKit,macOS是次选推荐平台,最不推荐的是centos6.*或windows平台。
zlmediakit已上架vcpkg,便捷安装请参考vcpkg安装zlmediakit
ZLMediaKit采用了C++11的语法和库,要求编译器支持完整的C++11标准,亦即:
- linux上要求gcc 版本 >= 4.8(4.7应该也能支持)
- macOS上clang >= ???(我也不知道,估计大部分不会遇到这个问题)
- windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕麻烦建议直接vs2017)
-
如果你是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或以上。
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
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个库。
-
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
请从网站中下载。
-
由于开启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
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.lib
SDK头文件有详细的注释,一般足够二次开发使用。
-
-
以
test_
开头的测试程序相关代码在
ZLMediaKit/tests
目录下,你可以对照代码启动测试进程。
请参考此文章完成推流播放测试