快速开始
夏楚 edited this page 2023-08-24 16:21:21 +08:00
This file contains ambiguous Unicode characters

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或更新版本编译ZLMediaKitmacOS是次选推荐平台最不推荐的是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、测试

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