# 如何获取 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` 解决常见问题