# tylive-zlm-sdk
**Repository Path**: gdty/tylive-zlm-sdk
## Basic Information
- **Project Name**: tylive-zlm-sdk
- **Description**: 流媒体服务的 Java SDK,集成了 ZLM(ZLMediaKit)流媒体服务器和 SIP 服务。它支持多种流媒体协议,包括 WebRTC、HTTP-FLV、HLS 等,并提供 RTP 代理功能。
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-09-27
- **Last Updated**: 2025-10-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Gitea
## README
# tylive-zlm-sdk
## 介绍
这是一个用于流媒体服务的 Java SDK,集成了 ZLM(ZLMediaKit)流媒体服务器和 SIP 服务。它支持多种流媒体协议,包括 WebRTC、HTTP-FLV、HLS 等,并提供 RTP 代理功能。
主要功能包括:
- TCP 服务监听在 `9092` 端口,用于 HTTP API 和流媒体服务。
- UDP 服务监听在 `10000` 端口,用于 GB28181 RTP 代理。
- SIP 服务为外置服务。
- 提供回调函数机制,用于处理流媒体事件。
## 配置
### Maven 依赖配置
在 `pom.xml` 文件中添加以下依赖:
```xml
gdteyu-maven
public
https://maven.cnb.cool/gdtyyu/maven/-/packages/
true
true
org.gdty.zlm
tylive-zlm-sdk
xxx
```
### 启动配置
在 Spring Boot 项目中,使用以下注解启用调度和缓存功能:
```java
@EnableScheduling
@EnableCaching
@ServletComponentScan("com")
@ComponentScan(basePackages = {"com"})
```
## 使用方式
### 初始化 ZLM 服务
通过 `Application` 类提供的静态方法初始化和启动 ZLM 流媒体服务:
```java
Application.initZLM();
Application.startZLM(); // 或者使用 Application.startZLM("自定义配置路径")
```
### 停止服务
使用以下方法停止 ZLM 服务:
```java
Application.stopZLM();
```
### 主要类说明
- `Application`: 提供 ZLM 初始化、启动和停止方法。
- `CmdUtils`: 提供执行命令行工具的方法。
- `CopyUtils`: 提供文件和目录复制功能。
- `FileUtils`: 提供文件路径、文件流等工具方法。
## 示例代码
### 启动 ZLM 服务
```java
public static void main(String[] args) {
Application.initZLM();
Application.startZLM();
}
```
### 执行命令行操作
```java
CmdUtils.execAsync("ffmpeg -i input.mp4 output.flv");
```
### 文件复制
```java
CopyUtils.copyDirectory("source/path", "target/path");
```
## 附录
- **ZLM 配置文件**: `config.ini`
- **回调函数**: 需要根据业务需求实现回调逻辑。
- **流媒体协议支持**: HTTP-FLV、HLS、WebRTC 等。
如需更详细的接口文档,请参考 Swagger UI 页面。