rocky9.5使用vcpkg安装zlmediakit

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
posted @ 2025-04-10 17:41  哈喽哈喽111111  阅读(149)  评论(0)    收藏  举报