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