写点什么

Ubuntu18.04 编译 ZLMediakit 支持 webrtc

作者:alps2006
  • 2023-02-18
    上海
  • 本文字数:1042 字

    阅读完需:约 3 分钟

Ubuntu18.04编译ZLMediakit支持webrtc

背景

最近在做流媒体相关的一些东西, 比较了一些开源的流媒体服务, 目前 srsZlmediaKit 项目是评价比较高的, 今天主要在 Ubuntu18.04 上编译 ZlmediaKit, 并支持 webrtc 协议.

准备

源码准备

下载 zlmediakit 源码及其依赖组件源码.



git clone --depth 1 https://github.com/ZLMediaKit/ZLMediaKit.git
# 下载依赖组件源码git submodule update --init
复制代码

安装或编译依赖

查询是否已经安装 openssl 1.1.1 及以上版本, 一般 ubuntu18.04 应该已经有了.


# 查看 openssl 的版本openssl version -a
复制代码


下载 libsrtp 源码, 用于编译 webrtc 时所依赖.


wget 'https://codeload.github.com/cisco/libsrtp/tar.gz/refs/tags/v2.3.0'tar -xvzf libsrtp-2.3.0.tar.gzcd libsrtp-2.3.0./configure --enable-opensslmake -j8sudo make install
复制代码


使用 apt-get 安装其它相关依赖.


sudo apt-get install libssl-devsudo apt-get install libsdl-devsudo apt-get install libavcodec-devsudo apt-get install libavutil-devsudo apt-get install ffmpeg
复制代码

编译


cd ./ZLMediaKitmkdir buildcd buildcmake .. -DENABLE_WEBRTC=truecmake --build . --target MediaServer
复制代码


编译路径在项目 release 目录.


[master][~/Downloads/zlmediakit-checkout/ZLMediaKit/release/linux/Debug]$ pwd
# output/Users/guoxiangxun/Downloads/zlmediakit-checkout/ZLMediaKit/release/linux/Debug
复制代码

运行

进入到编译结果目录, 直接使用 sh./ 运行. 如果需要后台运行, 可以加上 -d 参数.


./MediaServer -d &
复制代码


但按以上命令执行, 还会时不时在终端上打印日志, 我最终优化了下, 写了两个脚本用于启动和停止.


启动脚本 start_mediakit.sh



#!/usr/bin/env bash
# 把输出丢弃./MediaServer -d > /dev/null 2>&1 &
复制代码


停止脚本 kill_mediakit.sh



#!/usr/bin/env bash
# kill 掉所有进程 (可能有 fork 进程)ps -eaf | grep MediaServer | tr -s " " | cut -d " " -f2 | xargs kill
复制代码


运行成功后, 使用 chrome 浏览器访问: http://192.168.1.113:8080/webrtc/ 进行测试.

FAQ

  • 启动 MediaServer 时提示端口创建失败, 没有权限.

  • 需要使用 root 用户或者 sudo 运行.<br><br>

  • 如果通过 nginx 反向代理访问 mediakit, 开启 hook 无效.

  • 有可能需要在 config.ini 配置forwarded_ip_header 参数为服务器 ip.


  #可以把http代理前真实客户端ip放在http头中:https://github.com/ZLMediaKit/ZLMediaKit/issues/1388  #切勿暴露此key,否则可能导致伪造客户端ip  forwarded_ip_header=xxx.xxx.xxx.xxx
复制代码


用户头像

alps2006

关注

从事音视频即时通信领域开发, 喜欢瞎折腾. 2018-09-18 加入

从事音视频即时通信领域开发, 喜欢瞎折腾.

评论

发布
暂无评论
Ubuntu18.04编译ZLMediakit支持webrtc_WebRTC_alps2006_InfoQ写作社区