开源流媒体框架ZLMediaKit C API JAVA实现
162
stars
87
commits
Java
primary language
Jul 24, 2026
updated
📌 zlm4j 📌
飞书文档直达 https://ux5phie02ut.feishu.cn/wiki/NA2ywJRY2ivALSkPfUycZFM4nUB?from=from_copylink
zlm4j开源流媒体服务框架 ZLMediaKit C Api 的 Java 实现
感谢 @夏楚 提供优秀的开源流媒体服务框架 ZLMediaKit
本项目是对 ZLMediaKit 提供的 C Api 的 Java Api 封装(部分封装)。采用 JNA 对 ZLMediaKit C Api 进行解析,并基于原始调用风格进行微调和修改,方便开发者参照 ZLMediaKit 项目文档进行应用程序开发。
使用此项目可实现现有项目快速集成流媒体服务功能,无需部署额外服务器,利用流事件回调便于操作流(推拉流鉴权、按需拉流、自动关流、协议转换、截图、录制、国标GB推流)。
public class Test {
//动态链接库自动加载
public static ZLMApi ZLM_API = Native.load("mk_api", ZLMApi.class);
public static void main(String[] args) throws InterruptedException {
//初始化SDK
ZLM_API.mk_env_init2(1, 1, 1, null, 0, 0, null, 0, null, null);
//配置服务器参数
MK_INI mkIni = ZLM_API.mk_ini_default();
ZLM_API.mk_ini_set_option(mkIni, "general.mediaServerId", "JMediaServer");
//注册全局回调
MK_EVENTS mkEvents = new MK_EVENTS();
mkEvents.on_mk_media_changed = (regist, sender) -> {
System.out.println("流状态变化: " + regist);
};
//启动服务
ZLM_API.mk_events_listen(mkEvents);
short httpPort = ZLM_API.mk_http_server_start((short)7788, 0);
short rtspPort = ZLM_API.mk_rtsp_server_start((short)554, 0);
// ... 启动其他服务
//阻塞并释放资源
Thread.sleep(60000L);
ZLM_API.mk_stop_all_server();
}
}
<dependency>
<groupId>com.aizuda</groupId>
<artifactId>zlm4j</artifactId>
<version>${lasted}</version>
</dependency>
感谢JetBrains对开源项目的支持,项目使用CLion/IDEA进行开发调试
扫码加入交流群获取最新动态:

50 commits
37 commits
Java
100.0%
开源流媒体框架ZLMediaKit C API JAVA实现
162
stars
87
commits
Java
primary language
Jul 24, 2026
updated
📌 zlm4j 📌
飞书文档直达 https://ux5phie02ut.feishu.cn/wiki/NA2ywJRY2ivALSkPfUycZFM4nUB?from=from_copylink
zlm4j开源流媒体服务框架 ZLMediaKit C Api 的 Java 实现
感谢 @夏楚 提供优秀的开源流媒体服务框架 ZLMediaKit
本项目是对 ZLMediaKit 提供的 C Api 的 Java Api 封装(部分封装)。采用 JNA 对 ZLMediaKit C Api 进行解析,并基于原始调用风格进行微调和修改,方便开发者参照 ZLMediaKit 项目文档进行应用程序开发。
使用此项目可实现现有项目快速集成流媒体服务功能,无需部署额外服务器,利用流事件回调便于操作流(推拉流鉴权、按需拉流、自动关流、协议转换、截图、录制、国标GB推流)。
public class Test {
//动态链接库自动加载
public static ZLMApi ZLM_API = Native.load("mk_api", ZLMApi.class);
public static void main(String[] args) throws InterruptedException {
//初始化SDK
ZLM_API.mk_env_init2(1, 1, 1, null, 0, 0, null, 0, null, null);
//配置服务器参数
MK_INI mkIni = ZLM_API.mk_ini_default();
ZLM_API.mk_ini_set_option(mkIni, "general.mediaServerId", "JMediaServer");
//注册全局回调
MK_EVENTS mkEvents = new MK_EVENTS();
mkEvents.on_mk_media_changed = (regist, sender) -> {
System.out.println("流状态变化: " + regist);
};
//启动服务
ZLM_API.mk_events_listen(mkEvents);
short httpPort = ZLM_API.mk_http_server_start((short)7788, 0);
short rtspPort = ZLM_API.mk_rtsp_server_start((short)554, 0);
// ... 启动其他服务
//阻塞并释放资源
Thread.sleep(60000L);
ZLM_API.mk_stop_all_server();
}
}
<dependency>
<groupId>com.aizuda</groupId>
<artifactId>zlm4j</artifactId>
<version>${lasted}</version>
</dependency>
感谢JetBrains对开源项目的支持,项目使用CLion/IDEA进行开发调试
扫码加入交流群获取最新动态:

50 commits
37 commits
Java
100.0%