vcpkg是一个跨平台的sdk包管理工具,类似于linux下的yum/apt,macOS下的homebrew;
它同时支持linux/macOS/windows等多个平台,是c/c++开发者解决依赖的利器。
目前zlmediakit已经于2023-08-08完成vcpkg平台的上线,
用户可以通过vcpkg便捷安装zlmediakit c sdk以及MediaServer可执行程序,
解决各种编译依赖相关的苦恼。
git clone https://mirrors.chenby.cn/https://github.com/microsoft/vcpkg
1、安装vcpkg
以linux平台为例:
# 下载vcpkg工具
git clone https://mirrors.chenby.cn/https://github.com/microsoft/vcpkg
# 开始安装;如果提示安装失败,请先安装依赖
./vcpkg/bootstrap-vcpkg.sh
# 安装成功后的结果显示
# ./vcpkg/bootstrap-vcpkg.sh
Downloading vcpkg-glibc...
vcpkg package management program version 2025-04-07-b8b513ba8778c918cff49c3e837aae5999d5d2aa
See LICENSE.txt for license information.
Telemetry
---------
vcpkg collects usage data in order to help us improve your experience.
The data collected by Microsoft is anonymous.
You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics,
passing --disable-metrics to vcpkg on the command line,
or by setting the VCPKG_DISABLE_METRICS environment variable.
Read more about vcpkg telemetry at docs/about/privacy.md
2、安装zlmediakit
先安装依赖
# 如下这个在rocky9.5主机上不执行
sudo apt-get install pkg-config
# macos下如果vcpkg安装的openssl与homebrew安装的openssl冲突时,可以通过
# mv /opt/homebrew/include/openssl/ /opt/homebrew/include/openssl_back/ 解决
# 安装完zlmediakit可以 mv /opt/homebrew/include/openssl_back/ /opt/homebrew/include/openssl/ 再恢复
rocky9.5需要安装的依赖:dnf install -y perl
默认方式安装zlmediakit
# 默认开启特性: [core,mp4,openssl,webrtc,sctp]
./vcpkg/vcpkg install zlmediakit
安装全部特性zlmediakit(包括webrtc datachannel)
./vcpkg/vcpkg install zlmediakit\[core,mp4,openssl,webrtc,sctp\]
最小安装zlmediakit
./vcpkg/vcpkg install zlmediakit\[core\]
卸载zlmediakit
./vcpkg/vcpkg remove zlmediakit
安装后的路径
[root@localhost data]# ll vcpkg/installed/x64-linux/
total 4
drwxr-xr-x 3 root root 17 2025-04-10_08:40:46 debug
drwxr-xr-x 3 root root 17 2025-04-10_08:47:12 etc
drwxr-xr-x 5 root root 4096 2025-04-10_08:50:35 include
drwxr-xr-x 3 root root 135 2025-04-10_08:50:35 lib
drwxr-xr-x 11 root root 183 2025-04-10_08:50:35 share
drwxr-xr-x 3 root root 24 2025-04-10_08:50:35 tools
[root@localhost data]# ll vcpkg/installed/x64-linux/include/
total 264
drwxr-xr-x 2 root root 180 2025-04-10_08:40:46 json
-rw-r--r-- 2 root root 11553 2024-09-29_11:55:58 mk_common.h
-rw-r--r-- 2 root root 15760 2024-09-29_11:55:58 mk_events.h
-rw-r--r-- 2 root root 30604 2024-09-29_11:55:58 mk_events_objects.h
-rw-r--r-- 2 root root 938 2025-04-10_08:47:39 mk_export.h
-rw-r--r-- 2 root root 11671 2024-09-29_11:55:58 mk_frame.h
-rw-r--r-- 2 root root 2479 2024-09-29_11:55:58 mk_h264_splitter.h
-rw-r--r-- 2 root root 8730 2024-09-29_11:55:58 mk_httpclient.h
-rw-r--r-- 2 root root 19688 2024-09-29_11:55:58 mk_media.h
-rw-r--r-- 2 root root 857 2024-09-29_11:55:58 mk_mediakit.h
-rw-r--r-- 2 root root 7004 2024-09-29_11:55:58 mk_player.h
-rw-r--r-- 2 root root 8196 2024-09-29_11:55:58 mk_proxyplayer.h
-rw-r--r-- 2 root root 5412 2024-09-29_11:55:58 mk_pusher.h
-rw-r--r-- 2 root root 4432 2024-09-29_11:55:58 mk_recorder.h
-rw-r--r-- 2 root root 3975 2024-09-29_11:55:58 mk_rtp_server.h
-rw-r--r-- 2 root root 15564 2024-09-29_11:55:58 mk_tcp.h
-rw-r--r-- 2 root root 8438 2024-09-29_11:55:58 mk_thread.h
-rw-r--r-- 2 root root 6115 2024-09-29_11:55:58 mk_track.h
-rw-r--r-- 2 root root 10412 2024-09-29_11:55:58 mk_transcode.h
-rw-r--r-- 2 root root 8036 2024-09-29_11:55:58 mk_util.h
drwxr-xr-x 2 root root 4096 2025-04-10_08:47:12 openssl
drwxr-xr-x 2 root root 72 2025-04-10_08:47:18 srtp2
-rw-r--r-- 2 root root 43045 2025-04-10_08:47:21 usrsctp.h
[root@localhost data]# ll vcpkg/installed/x64-linux/lib/
total 18056
-rw-r--r-- 2 root root 12413092 2025-04-10_08:47:08 libcrypto.a
-rw-r--r-- 2 root root 430550 2025-04-10_08:40:45 libjsoncpp.a
-rw-r--r-- 2 root root 2532766 2025-04-10_08:50:18 libmk_api.a
-rw-r--r-- 2 root root 136612 2025-04-10_08:47:18 libsrtp2.a
-rw-r--r-- 2 root root 2081488 2025-04-10_08:47:08 libssl.a
-rw-r--r-- 2 root root 877844 2025-04-10_08:47:27 libusrsctp.a
drwxr-xr-x 2 root root 97 2025-04-10_08:47:27 pkgconfig
[root@localhost data]# ll vcpkg/installed/x64-linux/tools/zlmediakit/
total 18328
-rwxr-xr-x 2 root root 18767416 2025-04-10_08:50:35 MediaServer
安装目录:
vcpkg/installed/x64-linux/tools/zlmediakit/
MediaServer进程依赖的config.ini, default.pem, www等相关文件可以从源码拷贝过来
把ffmpeg添加到环境变量里
vim /etc/profile.d/ffmpeg.sh
#!/bin/bash
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=${FFMPEG_HOME}/:$PATH
source /etc/profile.d/ffmpeg.sh
执行下面命令,启动MediaServer服务。
./MediaServer -d &
若想启用安全协议SSL,则执行下面命令,启动带默认https证书的MediaServer服务。
./MediaServer -d -s ./default.pem &
./MediaServer -s ./default.pem -c ../conf/config.ini
注:默认读取当前目录下的配置文件,没有则会创建一个新的
MediaServer命令帮助参数
-h --help 无参 默认:null 选填 打印此信息
-d --daemon 无参 默认:null 选填 是否以Daemon方式启动
-l --level 有参 默认:1 选填 日志等级,LTrace~LError(0~4)
-m --max_day 有参 默认:7 选填 日志最多保存天数
-c --config 有参 默认:/data/vcpkg/installed/x64-linux/tools/zlmediakit/bin/config.ini 选填 配置文件路径
-s --ssl 有参 默认:/data/vcpkg/installed/x64-linux/tools/zlmediakit/bin/default.pem 选填 ssl证书文件或文件夹,支持p12/pem类型
-t --threads 有参 默认:8 选填 启动事件触发线程数
--affinity 有参 默认:1 选填 是否启动cpu亲和性设置
-v --version 无参 默认:null 选填 显示版本号
--log-slice 有参 默认:100 选填 最大保存日志切片个数
--log-size 有参 默认:256 选填 单个日志切片最大容量,单位MB
--log-dir 有参 默认:/data/vcpkg/installed/x64-linux/tools/zlmediakit/bin/log/ 选填 日志保存文件夹路径
secre参数从配置文件中获取
访问
http://192.168.2.202:8080/webassist/?secret=Uzjepg727JcfzKJfKEhWGIcKnNLacwNJ
https://IP/webassist/?secret=Uzjepg727JcfzKJfKEhWGIcKnNLacwNJ
最新的zlmediakit源码自带有效的ssl证书default.pem,对应的域名是default.zlmediakit.com,该域名解析到的ip为127.0.0.1,
用户在浏览器中打开 https://default.zlmediakit.com/webrtc/即可开始测试。请先推流后,再测试播放。
检查服务器是否开启了下列端口:
554端口,用于rtsp协议,访问“rtsp://”开头的直播地址需要。
1935端口,用于rtmp协议,访问“rtmp://”开头的直播地址需要。
8080端口,用于http协议,访问“http://”开头的直播地址需要。
8443端口,用于https协议,访问“https://”开头的直播地址需要。
打开VLC播放器,依次选择菜单“媒体”→“打开网络串流”,在网络URL框中输入下列任一地址,观看能否正常播放视频画面。
rtsp://IP/live/test
rtmp://IP/live/test
http://IP/live/test/hls.m3u8
http://IP/live/test.live.ts
http://IP/live/test.live.mp4
http://IP/live/test.live.flv
摄像机视频流地址:rtsp://xxx:xxx@ip/LiveMedia/ch1/Media1/trackID=1
http://192.168.2.202:8080/index/api/addStreamProxy?secret=Uzjepg727JcfzKJfKEhWGIcKnNLacwNJ&vhost=__defaultVhost__&app=live&stream=bbb&url=rtsp://xxx:xxx@ip/LiveMedia/ch1/Media1/trackID=1
http://192.168.2.202:8080/live/bbb/hls.m3u8