337 lines
9.5 KiB
Markdown
337 lines
9.5 KiB
Markdown
# 如何获取 RTMP 推流地址
|
||
|
||
## 方法 1:通过 Android 应用获取(最简单)✅
|
||
|
||
### 步骤 1:启动后端服务器
|
||
```bash
|
||
cd live-streaming
|
||
node server/index.js
|
||
```
|
||
**重要**:保持这个窗口打开!
|
||
|
||
### 步骤 2:在 Android 应用中创建直播间
|
||
|
||
1. 打开 Android 应用(在模拟器中)
|
||
2. 点击右上角的 **"开始直播"** 按钮
|
||
|
||

|
||
|
||
3. 填写直播间信息:
|
||
```
|
||
直播间标题:我的直播间
|
||
主播名称:小明
|
||
```
|
||
|
||
4. 点击 **"创建"** 按钮
|
||
|
||
### 步骤 3:获取 RTMP 地址
|
||
|
||
创建成功后会弹出对话框,显示:
|
||
|
||
```
|
||
推流地址:
|
||
rtmp://10.0.2.2:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
|
||
电脑本机 OBS 可用:
|
||
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
```
|
||
|
||
### 步骤 4:复制地址
|
||
|
||
- 点击 **"复制地址"** 按钮
|
||
- 地址已复制到剪贴板
|
||
- 可以直接粘贴到 OBS 中使用
|
||
|
||
### ⚠️ 重要提示
|
||
|
||
**在 OBS 中使用时**:
|
||
- ✅ 使用:`rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2`
|
||
- ❌ 不要用:`rtmp://10.0.2.2:1935/live/...`(这是给 Android 模拟器用的)
|
||
|
||
**地址说明**:
|
||
- `rtmp://` - 协议
|
||
- `localhost` - 本机地址
|
||
- `1935` - RTMP 端口
|
||
- `/live/` - 应用名称
|
||
- `868c49cc-1021-4664-95a3-ed71e789adb2` - 你的 streamKey(每个直播间不同)
|
||
|
||
---
|
||
|
||
## 方法 2:查看已创建的直播间
|
||
|
||
如果你已经创建过直播间,想再次查看 RTMP 地址:
|
||
|
||
### 在 Android 应用中查看
|
||
|
||
1. 打开应用,在首页看到直播间列表
|
||
2. 点击任意直播间进入详情页
|
||
3. 向下滚动,找到 **"推流信息"** 区域
|
||
4. 可以看到:
|
||
```
|
||
推流地址
|
||
rtmp://10.0.2.2:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
|
||
电脑本机 OBS 可用(等价地址)
|
||
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
|
||
推流密钥
|
||
868c49cc-1021-4664-95a3-ed71e789adb2
|
||
```
|
||
5. 点击 **"复制地址"** 按钮
|
||
|
||
---
|
||
|
||
## 方法 3:通过 API 获取(技术方式)
|
||
|
||
如果你想通过代码或命令行获取:
|
||
|
||
### 查看所有直播间
|
||
```bash
|
||
curl http://localhost:3001/api/rooms
|
||
```
|
||
|
||
返回示例:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": [
|
||
{
|
||
"id": "868c49cc-1021-4664-95a3-ed71e789adb2",
|
||
"title": "我的直播间",
|
||
"streamerName": "小明",
|
||
"streamKey": "868c49cc-1021-4664-95a3-ed71e789adb2",
|
||
"isLive": false,
|
||
"streamUrls": {
|
||
"rtmp": "rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2",
|
||
"flv": "http://localhost:8080/live/868c49cc-1021-4664-95a3-ed71e789adb2.flv",
|
||
"hls": "http://localhost:8080/live/868c49cc-1021-4664-95a3-ed71e789adb2.m3u8"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 查看特定直播间
|
||
```bash
|
||
curl http://localhost:3001/api/rooms/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
```
|
||
|
||
---
|
||
|
||
## 方法 4:查看持久化文件
|
||
|
||
直播间数据保存在文件中,可以直接查看:
|
||
|
||
### 文件位置
|
||
```
|
||
live-streaming/data/rooms.json
|
||
```
|
||
|
||
### 打开文件
|
||
用记事本或 VS Code 打开,内容示例:
|
||
```json
|
||
[
|
||
{
|
||
"id": "868c49cc-1021-4664-95a3-ed71e789adb2",
|
||
"title": "我的直播间",
|
||
"streamerName": "小明",
|
||
"streamKey": "868c49cc-1021-4664-95a3-ed71e789adb2",
|
||
"isLive": false,
|
||
"viewerCount": 0,
|
||
"createdAt": "2025-12-16T09:20:00.000Z",
|
||
"startedAt": null
|
||
}
|
||
]
|
||
```
|
||
|
||
### 构建 RTMP 地址
|
||
根据 `streamKey` 构建:
|
||
```
|
||
rtmp://localhost:1935/live/{streamKey}
|
||
```
|
||
|
||
例如:
|
||
```
|
||
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
```
|
||
|
||
---
|
||
|
||
## 在 OBS 中使用 RTMP 地址
|
||
|
||
### 方式 A:完整地址(推荐)
|
||
|
||
1. 打开 OBS Studio
|
||
2. 点击 **"设置"** → **"推流"**
|
||
3. **服务**:选择 "自定义..."
|
||
4. **服务器**:粘贴完整地址
|
||
```
|
||
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
```
|
||
5. **串流密钥**:留空
|
||
6. 点击 **"确定"**
|
||
|
||
### 方式 B:分开填写
|
||
|
||
1. 打开 OBS Studio
|
||
2. 点击 **"设置"** → **"推流"**
|
||
3. **服务**:选择 "自定义..."
|
||
4. **服务器**:
|
||
```
|
||
rtmp://localhost:1935/live
|
||
```
|
||
5. **串流密钥**:
|
||
```
|
||
868c49cc-1021-4664-95a3-ed71e789adb2
|
||
```
|
||
6. 点击 **"确定"**
|
||
|
||
**两种方式效果相同**,选择你喜欢的即可。
|
||
|
||
---
|
||
|
||
## 快速参考
|
||
|
||
### RTMP 地址格式
|
||
```
|
||
rtmp://[主机]:[端口]/[应用]/[streamKey]
|
||
```
|
||
|
||
### 示例
|
||
```
|
||
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
|
||
│ │ │ │ │
|
||
│ │ │ │ └─ streamKey(每个直播间唯一)
|
||
│ │ │ └────── 应用名称(固定为 live)
|
||
│ │ └──────────── RTMP 端口(固定为 1935)
|
||
│ └────────────────────── 主机地址(OBS 用 localhost)
|
||
└───────────────────────────── 协议(固定为 rtmp)
|
||
```
|
||
|
||
### 地址对照表
|
||
|
||
| 使用场景 | 地址 |
|
||
|---------|------|
|
||
| OBS 推流 | `rtmp://localhost:1935/live/{streamKey}` |
|
||
| Android 模拟器 | `rtmp://10.0.2.2:1935/live/{streamKey}` |
|
||
| 局域网其他设备 | `rtmp://192.168.x.x:1935/live/{streamKey}` |
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### ❓ 为什么有两个不同的地址?
|
||
|
||
**答**:
|
||
- `rtmp://localhost:1935/...` - 给电脑上的 OBS 用
|
||
- `rtmp://10.0.2.2:1935/...` - 给 Android 模拟器用
|
||
|
||
在 Android 模拟器中,`10.0.2.2` 代表宿主机(你的电脑)的 `localhost`。
|
||
|
||
### ❓ streamKey 是什么?
|
||
|
||
**答**:streamKey 是每个直播间的唯一标识符,就像房间号。每创建一个直播间,系统会自动生成一个新的 streamKey。
|
||
|
||
### ❓ 可以自定义 streamKey 吗?
|
||
|
||
**答**:当前版本不支持自定义,系统会自动生成 UUID 作为 streamKey。如果需要自定义,需要修改后端代码。
|
||
|
||
### ❓ 忘记了 RTMP 地址怎么办?
|
||
|
||
**答**:
|
||
1. 在 Android 应用中点击直播间查看
|
||
2. 或者查看 `live-streaming/data/rooms.json` 文件
|
||
3. 或者通过 API 查询:`curl http://localhost:3001/api/rooms`
|
||
|
||
### ❓ 可以同时创建多个直播间吗?
|
||
|
||
**答**:可以!每个直播间有独立的 streamKey,可以同时推流到不同的直播间。
|
||
|
||
### ❓ RTMP 地址会变吗?
|
||
|
||
**答**:不会!只要不删除直播间,RTMP 地址(streamKey)就不会改变。即使重启服务器,地址也会保持不变(因为已经持久化保存)。
|
||
|
||
---
|
||
|
||
## 图文演示
|
||
|
||
### 📱 Android 应用界面
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 直播系统 [开始直播] │ ← 点击这里
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 我的直播间 │ │
|
||
│ │ 主播: 小明 │ │
|
||
│ │ [直播中] │ │ ← 点击进入查看地址
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📋 创建直播间对话框
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 创建直播间 │
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ 直播间标题 │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 我的直播间 │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ 主播名称 │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 小明 │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ [取消] [创建] │ ← 点击创建
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📺 推流信息对话框
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 已创建直播间 │
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ 推流地址: │
|
||
│ rtmp://10.0.2.2:1935/... │
|
||
│ │
|
||
│ 电脑本机 OBS 可用: │
|
||
│ rtmp://localhost:1935/... │ ← 这个地址用于 OBS
|
||
│ │
|
||
│ ⚠️ 注意: │
|
||
│ 1. Android 应用只能观看 │
|
||
│ 2. 需要用 OBS 在电脑上推流 │
|
||
│ 3. OBS 设置:服务器填上面 │
|
||
│ 4. 推流后在应用中观看 │
|
||
│ │
|
||
│ [复制地址] [知道了] │ ← 点击复制
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 总结
|
||
|
||
### 最简单的方法 🎯
|
||
|
||
1. **打开 Android 应用**
|
||
2. **点击"开始直播"**
|
||
3. **填写信息并创建**
|
||
4. **点击"复制地址"**
|
||
5. **粘贴到 OBS 中**(记得把 `10.0.2.2` 改成 `localhost`)
|
||
|
||
就这么简单!🎉
|
||
|
||
---
|
||
|
||
**需要帮助?**
|
||
- 查看 `使用教程.md` 获取完整教程
|
||
- 查看 `android-app/问题修复总结.md` 解决常见问题
|