zhibo/如何获取RTMP地址.md
xiao12feng@outlook.com 40bfd4ec5c 直播功能正常使用
2025-12-17 08:47:15 +08:00

9.5 KiB
Raw Permalink Blame History

如何获取 RTMP 推流地址

方法 1通过 Android 应用获取(最简单)

步骤 1启动后端服务器

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 获取(技术方式)

如果你想通过代码或命令行获取:

查看所有直播间

curl http://localhost:3001/api/rooms

返回示例:

{
  "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"
      }
    }
  ]
}

查看特定直播间

curl http://localhost:3001/api/rooms/868c49cc-1021-4664-95a3-ed71e789adb2

方法 4查看持久化文件

直播间数据保存在文件中,可以直接查看:

文件位置

live-streaming/data/rooms.json

打开文件

用记事本或 VS Code 打开,内容示例:

[
  {
    "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 解决常见问题