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` 解决常见问题
|