已有网站开发app客户端,wordpress+学校模版,设计网站公司选泽y湖南岚鸿询 问,家用电器行业外贸建站文章目录 一、前言二、编译器1、获取代码2、编译器2.1 编译器版本要求2.2 安装编译器 3、安装cmake4、依赖库4.1 依赖库列表4.2 安装依赖库4.2.1 安装libssl-dev和libsdl-dev4.2.2 安装 ffmpeg-devel依赖和ffmpeg依赖 三、构建和编译项目#xff08;启用WebRTC功能#xff09… 文章目录 一、前言二、编译器1、获取代码2、编译器2.1 编译器版本要求2.2 安装编译器 3、安装cmake4、依赖库4.1 依赖库列表4.2 安装依赖库4.2.1 安装libssl-dev和libsdl-dev4.2.2 安装 ffmpeg-devel依赖和ffmpeg依赖 三、构建和编译项目启用WebRTC功能1、 openssl 安装 (openssl版本要求1.1以上)2、 libsrtp安装3、 编译ZLM 四、运行 一、前言 ZLMediaKit的作者是使用Ubuntu 16开发的但是如果要跑到测试甚至于生产上必须要部署到centos上笔者使用的是centos7.9环境因为有需求就装完给大家分享一下。
二、编译器
1、获取代码
如果没有git需要先安装git有了yum都不是难事。
yum install git验证git安装情况
[rootlocalhost zlm]# git version
git version 1.8.3.1拉取代码
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init2、编译器
2.1 编译器版本要求
ZLMediaKit采用了C11的语法和库要求编译器支持完整的C11标准即
linux上要求gcc 版本 4.8(4.7应该也能支持)
2.2 安装编译器
如果你是centos7或以上用户你可以这样安装gcc编译器
sudo yum -y install gcc
sudo yum -y install gcc-c3、安装cmake
ZLMediaKit采用cmake来构建项目通过cmake才能生成Makefile(或Xcode/VS工程)所以必须先安装cmake才能完成后续步骤。
ZLMediaKit官网的办法安装cmake发现版本还是太低不满足最低的cmake版本要求。
#官方提供的安装办法版本太低
yum -y install cmake作者使用下面的办法进行安装首先下载对应的安装包如果github的资源无法下载可以先去找对应的文件手动拷贝到目标机器上进行后续的操作。
wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#解压
tar -zxvf cmake-3.26.3.tar.gzcd cmake-3.26.3
./bootstrap#这步耗时较长请耐心等待
gmake#进行安装
gmake install#检查版本
cmake --version
出现了错误
[rootlocalhost cmake-3.26.3]# cmake -version
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/local/bin
段错误(吐核)
解决办法
原因cmake 命令本来存在然后进行了安装。 类似于缓存导致失败的一样。
hash -r然后再执行
[rootlocalhost cmake-3.26.3]# cmake --version
cmake version 3.26.3CMake suite maintained and supported by Kitware (kitware.com/cmake).版本已经升级了
4、依赖库
4.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个库。 4.2 安装依赖库
4.2.1 安装libssl-dev和libsdl-dev
#安装libssl-dev
yum install openssl-devel#安装libsdl-dev
yum install SDL-devel
4.2.2 安装 ffmpeg-devel依赖和ffmpeg依赖
直接安装可能会提示 没有可用软件包 的问题
[rootlocalhost ZLMediaKit]# yum install ffmpeg ffmpeg-devel
已加载插件fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirror.lzu.edu.cn* epel: mirrors.tuna.tsinghua.edu.cn* extras: mirror.lzu.edu.cn* updates: mirrors.ustc.edu.cn
没有可用软件包 ffmpeg。
没有可用软件包 ffmpeg-devel。
错误无须任何处理
这里就要更新下yum源按照以下步骤进行操作。
执行下面这条命令
#安装 epel-release
yum install epel-release -y
#通过rpmfusion存储库安装 rpm
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm#清理缓存
yum clean all
#重新生成缓存
yum makecache
#升级yum源
yum uptade#安装依赖 ffmpeg-devel
yum install ffmpeg-devel
#安装依赖ffmpeg
yum install ffmpeg
输出一下内容即表示安装完成执行ffmpeg version命令可以直接打印版本等信息。
三、构建和编译项目启用WebRTC功能
作者编译zlm启用了webrtc功能
编译机器
centos 7.9
gcc version 4.8.5 (GCC)
cmake version 3.26.31、 openssl 安装 (openssl版本要求1.1以上)
新建文件夹openssl
mkdir /openssl
cd /openssl
$ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
$ tar -xvzf openssl-1.1.1k.tar.gz
$ yum install -y zlib zlib-devel perl-CPAN
$ ./config shared --openssldir/openssl/openssl-1.1.1k --prefix/usr/local/openssl
$ make make install
$ echo /usr/local/lib64/ /etc/ld.so.conf
$ echo /usr/local/openssl/lib /etc/ld.so.conf
$ ldconfig
$ ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl # 替换系统openssl非必须
$ openssl version -a2、 libsrtp安装
去 这里 下载。
$ tar -xvzf libsrtp-2.3.0.tar.gz
$ cd libsrtp-2.3.0
$ ./configure --enable-openssl --with-openssl-dir/usr/local/openssl
$ make -j8 make install如果对于一些比较新的编译环境如GCC 10编译 libsrtp-2.3.0 可能会存在问题可以考虑切换到 2.5.0 版本即
$ wget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz
$ tar -xvzf libsrtp-2.5.0.tar.gz
$ cd libsrtp-2.5.03、 编译ZLM
终于到了最振奋人心的时刻了哈哈
$ mkdir build
$ cd build
$ cmake .. -DENABLE_WEBRTCtrue -DOPENSSL_ROOT_DIR/usr/local/openssl -DOPENSSL_LIBRARIES/usr/local/openssl/lib
$ cmake --build . --target MediaServer输出
[ 96%] Built target test_rtcp_fci
[ 96%] Building CXX object tests/CMakeFiles/test_rtp.dir/test_rtp.cpp.o
[ 97%] Linking CXX executable ../../release/linux/Debug/test_rtp
[ 97%] Built target test_rtp
[ 97%] Building CXX object tests/CMakeFiles/test_wsServer.dir/test_wsServer.cpp.o
[ 97%] Linking CXX executable ../../release/linux/Debug/test_wsServer
[ 97%] Built target test_wsServer
[ 97%] Building CXX object tests/CMakeFiles/test_server.dir/test_server.cpp.o
[ 97%] Linking CXX executable ../../release/linux/Debug/test_server
[ 97%] Built target test_server
[ 98%] Built target jsoncpp
[ 98%] Linking CXX executable ../../release/linux/Debug/MediaServer
[100%] Built target MediaServer四、运行
ZLMediaKit工程主要生成的二进制目标文件在release目录下。 这是ZLMediaKit作为服务器的主进程该进程可以在免去开发的情况下直接作为测试流媒体服务器使用如果你需要更复杂的业务逻辑可以通过Web HOOK和RESTful API实现,同时你可以通过 配置文件 控制其参数。
在linux下启动
cd ZLMediaKit/release/linux/Debug
#通过-h可以了解启动参数
./MediaServer -h
#以守护进程模式启动
./MediaServer -d 根据 config.ini 文件中 http 部分的配置启动之后通过浏览器直接访问如果看到如下界面就表示已经启动成功了。
停止或者关闭命令。
killall -2 MediaServer