# lalserver-java-sdk
**Repository Path**: joelive/lalserver-java-sdk
## Basic Information
- **Project Name**: lalserver-java-sdk
- **Description**: ⚡ 用 Java 快速接入 LAL 的全部能力:推流、拉流、鉴权、代理、统计——零依赖、零配置、三分钟跑通,支持 RTMP、RTSP、HLS、HTTP-FLV、WebRTC 等主流协议.
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2025-09-12
- **Last Updated**: 2025-09-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 LAL Server Java SDK
**企业级流媒体服务器 Java 开发套件**
[](https://www.oracle.com/java/)
[](https://spring.io/projects/spring-boot)
[](https://maven.apache.org/)
[](LICENSE)
*基于 LAL (Live And Live) 流媒体服务器的高性能 Java SDK*
[快速开始](#-快速开始) • [核心特性](#-核心特性) • [架构设计](#-架构设计) • [API 文档](#-api-文档)
---
## 为什么选择 LAL Server Java SDK?
### LAL 流媒体服务器的技术优势
**LAL (Live And Live)** 是新一代高性能流媒体服务器,具备以下核心优势:
- **极致性能**: 基于 Go 语言开发,单机支持万级并发连接
- **协议全覆盖**: 原生支持 RTMP、RTSP、HLS、HTTP-FLV、WebRTC 等主流协议
- **超低延迟**: WebRTC 毫秒级延迟,HLS 可配置 1-3 秒延迟
- **零配置启动**: 开箱即用,无需复杂配置
- **实时监控**: 内置丰富的统计和监控接口
- **云原生**: 支持容器化部署,完美适配微服务架构
### 本 SDK 的独特价值
本 SDK 不仅仅是简单的 API 封装,而是为企业级应用量身打造的完整解决方案:
## ✨ 核心特性
### 企业级安全代理
- **Token 认证机制**: 基于时效性 Token 的访问控制
- **IP 白名单**: 精确的客户端 IP 绑定验证
- **会话管理**: 自动清理过期会话,防止资源泄露
- **防盗链保护**: 多层安全验证,确保流媒体资源安全
### 微服务架构设计
- **Spring Boot 集成**: 开箱即用的 Web 应用框架
- **RESTful API**: 标准化的 HTTP 接口设计
- **模块化架构**: 清晰的分层设计,易于扩展和维护
- **配置外部化**: 支持多环境配置管理
### 多协议流媒体支持
```
String flvUrl = client.getFlvUrl("live_stream"); // HTTP-FLV
String hlsUrl = client.getHlsUrl("live_stream"); // HLS
String webrtcUrl = client.getWebRtcUrl("live_stream"); // WebRTC
String secureFlv = client.getSecureFlvUrl("live_stream", clientIp);
```
### 智能流管理
- **RTSP 拉流**: 支持从 IP 摄像头、NVR 等设备拉取流
- **流状态监控**: 实时获取流的连接数、码率等统计信息
- **自动重连**: 网络异常时的智能重连机制
- **负载均衡**: 支持多实例部署和负载分发
## 🚀 快速开始
### 环境要求
- **Java**: JDK 8 或更高版本
- **Maven**: 3.6+
- **LAL Server**: 运行中的 LAL 流媒体服务器实例
### ⚡ 一键启动
```bash
# 克隆项目
git clone https://github.com/your-org/lalserver-java-sdk.git
cd lalserver-java-sdk
# 启动 Spring Boot 应用
mvn spring-boot:run
```
**就是这么简单!** 访问 http://localhost:8081 即可看到管理界面
### Web 管理界面
我们提供了直观的 Web 界面,让您无需编写代码即可:
- 📺 **流管理**: 启动/停止 RTSP 拉流
- 🔍 **实时监控**: 查看流状态和统计信息
- 🔗 **URL 生成**: 一键生成各种格式的播放地址
- 🛡️ **安全配置**: 管理访问令牌和权限



## 📚 API 文档
### 🎬 流管理 API
#### 启动 RTSP 拉流
```http
POST /api/lalserver/start-pull
Content-Type: application/json
{
"streamName": "camera01",
"rtspUrl": "rtsp://admin:password@192.168.1.100:554/stream1"
}
```
#### 获取流播放地址
```http
GET /api/lalserver/urls/camera01
```
响应示例:
```json
{
"success": true,
"data": {
"flv": "http://localhost:8080/proxy/secure/camera01.flv?token=abc123&expires=1640995200",
"hls": "http://localhost:8080/proxy/secure/camera01/playlist.m3u8?token=def456&expires=1640995200",
"webrtc": "http://localhost:8080/proxy/secure/webrtc/play?stream_name=camera01&token=ghi789&expires=1640995200"
}
}
```
### 🔐 安全 API
#### Token 验证
```http
POST /api/lalserver/validate-token
Content-Type: application/json
{
"token": "your-token-here",
"streamName": "camera01",
"clientIp": "192.168.1.100"
}
```
## 🛠️ 高级配置
### 📝 application.yml 配置
```yaml
lalserver:
# LAL 服务器配置
api-url: http://localhost:8080 # LAL HTTP API 地址
stream-url: http://localhost:8080 # 流媒体访问地址
proxy-base-url: http://localhost:8081 # 代理服务地址
enable-security-proxy: true
```
### 🔧 编程式配置
```java
@Configuration
public class LalConfig {
@Bean
public LalServerClient lalServerClient() {
return new LalServerClient(
"http://lal-server:8080", // LAL API 地址
"http://proxy-server:8081", // 代理服务地址
"http://lal-server:8080" // 流媒体地址
);
}
}
```
## 🎯 使用场景
### 📹 视频监控系统
- IP 摄像头接入和管理
- 多路视频流的统一分发
- 移动端和 Web 端的跨平台播放
### 📡 直播平台
- RTMP 推流接收和转码
- 多格式流媒体分发
- CDN 加速和负载均衡
### 🏢 企业内训
- 会议直播和录制
- 培训视频点播
- 多终端同步观看
### 🎮 游戏直播
- 超低延迟的 WebRTC 传输
- 弹幕和互动功能集成
- 高并发观众支持
## 🔧 开发指南
### 🧪 单元测试
```bash
# 运行所有测试
mvn test
# 运行特定测试类
mvn test -Dtest=LalServerClientTest
```
### 📦 构建部署
```bash
# 构建 JAR 包
mvn clean package
# Docker 部署
docker build -t lalserver-java-sdk .
docker run -p 8081:8081 lalserver-java-sdk
```
### 🐛 调试模式
```bash
# 启用调试日志
mvn spring-boot:run -Dspring.profiles.active=debug
```
**⭐ 如果这个项目对您有帮助,请给我们一个 Star!**