安装配置 ZLMediaKit

1、安装依赖

1.1 openssl
yum remove -y openssl openssl-devel
查看还有没openssl相关文件,如果有清除掉
whereis openssl
安装
yum install -y openssl openssl-devel
验证
openssl version

 

如果需要安装libsrtp需要使用openssl使用1.1.1版本
下载源代码
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
解压源代码包
tar -zxvf openssl-1.1.1t.tar.gz
进入解压后的目录
cd openssl-1.1.1t
编译
./config
如果存在旧版本openssl,需要执行;/usr/local/ssl为新版本的openssl安装目录,避免与旧版冲突
./config --prefix=/usr/local/ssl
make
安装
sudo make install
如果系统没有正确识别新安装的openssl,可添加环境变量
sudo vim /etc/profile
在文件末尾添加
export PATH=/usr/local/ssl/bin:$PATH
更新系统的动态链接库缓存
sudo ldconfig
使环境变量生效
source /etc/profile
验证
openssl version

1.2
yum -y install gcc
yum -y install gcc-c++

1.3 安装cmake
mkdir /opt/cmake
cd /opt/cmake/
wget https://cmake.org/files/v3.14/cmake-3.14.5.tar.gz
tar zxvf cmake-3.14.5.tar.gz
cd cmake-3.14.5
./configure --prefix=/usr/local/cmake
安装
make && make install
创建软连接
ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
验证
cmake -version

 

1.4安装ffmpeg 
下载安装包
tar xvf ffmpeg-git-amd64-static.tar.xz
cd ffmpeg-git-20230313-amd64-static
配置全局命令
cp ff* /usr/bin/
ffmpeg –version

 

1.5 安装libsrtp2.4.2(可选)
下载
https://github.com/cisco/libsrtp
tar解压命令tar -xzf xxxx
cd libsrtp
./configure --enable-openssl
make
make runtest
sudo make install
# 首先,进入 libsrtp 的测试文件目录
cd test
# 然后,执行测试命令如下
./rtpw_test.sh

libsrtp编译错误:
In file included from crypto/math/datatypes.c:57:0:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/tmmintrin.h:31:3: error: #error "SSSE3 instruction set not enabled"
 # error "SSSE3 instruction set not enabled"
   ^
crypto/math/datatypes.c: In function ‘srtp_octet_string_is_eq’:
crypto/math/datatypes.c:413:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
     for (int i = 0, n = len >> 5; i < n; ++i, a += 32, b += 32) {
     ^
crypto/math/datatypes.c:413:5: note: use option -std=c99 or -std=gnu99 to compile your code
make: *** [crypto/math/datatypes.o] Error 1
make: *** Waiting for unfinished jobs....

解决方案
/libsrtp/Makefile
CFLAGS 后面添加 -std=c99 -mssse3

执行./rtpw_test.sh错误 无法找到libcrypto.so.1.1共享库
./rtpw_test.sh : starting rtpw receiver process... 
./rtpw_test.sh : receiver PID = 115741
./rtpw: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
1
./rtpw_test.sh : error

解决方案
执行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:libcrypto.so.1.1文件的路径
如果需要永久添加到环境变量可以执行
vim ~/.bashrc
文件末尾添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:libcrypto.so.1.1文件的路径
执行source ~/.bashrc使更改立即生效
如果无作用添加软连接
sudo ln -s libcrypto.so.1.1文件的路径/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
执行sudo ldconfig更新共享库缓存


2、安装ZLMediaKit
#国内用户推荐从同步镜像网站 gitee 下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
#千万不要忘记执行这句命令:第三方库
git submodule update --init

编译构建
cd ZLMediaKit(此处为相对路径,换成自己的路径)
mkdir build
cd build
cmake ..
make -j4

修改配置文件
cd /ZLMediaKit/release/linux/Debug(此处为相对路径,换成自己的路径)
vi config.ini

启动
cd /ZLMediaKit/release/linux/Debug(此处为相对路径,换成自己的路径)
#以守护进程模式启动
./MediaServer -d &(提示程序启动失败,请修改配置文件中端口号后重试!,查看导航栏4配置说明)
普通启动

./MediaServer &

ffmpeg -re -i "/opt/video/demo.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test
出现下面信息表示推流成功

ZLMediaKit编译错误

/root/ZLMediaKit/webrtc/DtlsTransport.cpp: In constructor ‘RTC::DtlsTransport::DtlsTransport(toolkit::EventPoller::Ptr, RTC::DtlsTransport::Listener*)’:
/root/ZLMediaKit/webrtc/DtlsTransport.cpp:601:52: error: ‘DTLS_set_timer_cb’ was not declared in this scope
         DTLS_set_timer_cb(this->ssl, onSslDtlsTimer);
                                                    ^
make[2]: *** [webrtc/CMakeFiles/webrtc.dir/DtlsTransport.cpp.o] Error 1
make[2]: Leaving directory `/root/ZLMediaKit'
make[1]: *** [webrtc/CMakeFiles/webrtc.dir/all] Error 2
make[1]: Leaving directory `/root/ZLMediaKit'
make: *** [all] Error 2

解决方案
此错误为没有找到DTLS_set_timer_cb函数,此函数为openssl 1.1.0及更高版本中提供的
如果安装的版本正确,可以在camake ..时手动指定openssl路径  /path/to/openssl为openssl安装路径
cmake -DOPENSSL_INCLUDE_DIR=/path/to/openssl/include -DOPENSSL_SSL_LIBRARY=/path/to/openssl/lib/libssl.so -DOPENSSL_CRYPTO_LIBRARY=/path/to/openssl/lib/libcrypto.so ..
可使用make clean清除之前的构建

如遇找不到文件的错误,可使用软链接解决
ln -s 当前文件所在路径/libssl.so.1.1 编译查找路径/libssl.so.10


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值