ZLMediaKit 是一个流媒体服务器。以前在 Windows 下玩过,Linux 下还没搞过。

编译安装

git clone https://gitee.com/xia-chu/ZLMediaKit.git
cd ZLMediaKit
git submodule update --init
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

不能直接 make -j,可能会搞死机。。

编译好后,生成的可执行文件存放在 ZLMediaKit/release/linux 中

安装

sudo make install

安装在 /usr/local 目录下

测试运行

MediaServer

没有 root 权限有些端口打不开。

sudo MediaServer

加 sudo 是可以了,不过配置文件什么的都会在 /usr/local/bin 中,有点不太好。可以手工指定

sudo MediaServer -s /home/ljd/.zlmediakit/default.pem -c /home/ljd/.zlmediakit/config.ini

貌似日志改不了位置。。算了

测试推流

ffmpeg -re -i /home/ljd/Videos/aaa.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

拉流播放

ffplay rtsp://127.0.0.1/live/test
ffplay rtmp://127.0.0.1/live/test
ffplay https://127.0.0.1/live/test.live.ts

几个输出都没什么问题。

编译安装 libsrtp2

上面编译 zlmediakit 的时候可能会出错:

未找到srtp, webrtc相关功能打开失败。

apt 安装此开发包

sudo apt install libsrtp2-dev

然后又报错:

undefined reference to `srtp_crypto_policy_set_aes_gcm_128_16_auth'

似乎 apt 安装的 libsrtp2 没有开启 openssl。需要自己编译。这里直接下载 apt 源中的代码编译,好兼容。

/etc/apt/sources.list 中添加

deb-src https://home-packages.chinauos.com/home plum main contrib non-free

更新

sudo apt update

下载源代码

apt source libsrtp2-dev

编译

cd libsrtp*
./configure --enable-openssl
make -j4

似乎没什么问题。

用 make install 默认安装到 /usr/local 中了,这里按源码中配置来,顺便打个包

在 debian/rules 中 DEB_CONFIGURE_EXTRA_FLAGS = 后面加 --enable-openssl

sudo apt install cdbs dh-buildinfo pkg-kde-tools miscfiles d-shlibs doxygen
fakeroot dpkg-buildpackage -b

安装

sudo apt install libsrtp2-dev_2.2.0-1_amd64.deb libsrtp2-1_2.2.0-1_amd64.deb

然后重新编译 zlmediakit