Skip to content

快速开始

夏楚 edited this page Aug 24, 2023 · 23 revisions

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代码根目录并打开]

    image

    • 如果你是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 HOOKRESTful 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目录下,你可以对照代码启动测试进程。

8、测试

请参考此文章完成推流播放测试

Clone this wiki locally