• 编译zlmediakit记录


    最后更新于2022年8月10日 13:40:41

    ZLMediaKit/ZLMediaKit

    其实程序本身编译很简单的,难在下载下来跟自己的环境适配的过程,需要用到WebRTC拉流,编译过程记录如下:

    编译环境:

    原生的Ubuntu20.04-2:ubuntu 5.15.0-43-generic + gcc 9.4.0(其实5.4.0就够用了)

    首先安装openssl:

    这里就算有openssl也推荐手动搞一下,不行就新旧版本并存嘛,因为openssl-libsrtp2-zlmediakit这一套有联动的,我怕路径不对,受影响,就从头搞一下。

    # 从github wiki上面抄来的
    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 # 这一步我就不执行了,之前电脑上装的有,而且我是ubuntu。
    ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl
    make && make install
    echo "/usr/local/lib64/" >> /etc/ld.so.conf
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf # 我这里是写了个openssl.conf文件放在/etc/ld.so.conf.d文件夹下面了,一个道理。
    ldconfig
    ln -s /usr/local/openssl/bin/openssl  /usr/local/bin/openssl # 这步我不做了,不想替换旧版本。
    openssl version -a
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    安装libsrtp

    这个一般人都没装,注意不要偷懒去apt安装libsrtp,否则会报错:srtp_create() failed: unspecified failure (srtp_err_status_fail);

    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
    
    • 1
    • 2
    • 3
    • 4

    这样编译完是没有动态库的,手动添加:

    make shared_library
    cp libsrtp2.so libsrtp2.so.1 /usr/lib/x86_64-linux-gnu
    
    • 1
    • 2

    编译zlmediakit

    这一步有点小问题,我的编译环境是ubuntu20,但是我的部署环境是16,部署环境里面/usr/lib/x86_64-linux-gnu/libstdc++.so.6的版本太低,所以这步我要多加一步静态编译libstdc++库,在zlmediakit根目录的CMakeList文件中添加静态编译如下:

    # 解决version `GLIBCXX_3.4.26' not found问题
    set(CMAKE_EXE_LINKER_FLAGS " -static-libstdc++")
    
    • 1
    • 2

    然后正常编译即可:

    mkdir build
    cd build
    cmake .. -DENABLE_WEBRTC=true  -DOPENSSL_ROOT_DIR=/usr/local/openssl  -DOPENSSL_LIBRARIES=/usr/local/openssl/lib
    cmake --build . --target MediaServer
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    Linux zip命令:压缩文件或目录
    ElasticSearch7.3学习(二十)----采用restful风格查询详解
    蓝桥杯:后缀表达式
    Excel VBA高级编程-微信群发(支持发送文件)
    Spring面试百题集
    烽火服务器下修改远程管理IP的步骤(完整版)
    前端高频vue面试题合集
    Small Tools(5) 前端项目搭建:Vue3+Vite2+TypeScript+Vue Router+Element Plus+Pinia
    java家乡旅游文化推广网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    HCIA学习笔记(6)-ACL+NAT
  • 原文地址:https://blog.csdn.net/weixin_44445507/article/details/126264864