13 KiB
Android 直播系统完整使用教程
目录
系统架构说明
┌──────────────┐
│ 电脑 OBS │ ← 你在这里推流(摄像头/屏幕)
└──────┬───────┘
│ RTMP 推流
↓
┌──────────────┐
│ SRS 服务器 │ ← 接收推流,转换格式
│ (Docker) │
└──────┬───────┘
│
↓
┌──────────────┐
│ Node.js 后端 │ ← 管理直播间,提供 API
└──────┬───────┘
│ REST API
↓
┌──────────────┐
│ Android 应用 │ ← 观看直播
│ (模拟器) │
└──────────────┘
角色说明:
- OBS:主播端,用于推流(发送视频)
- Android 应用:观众端,用于观看直播
- 后端服务:管理直播间,连接 OBS 和 Android
环境准备
1. 必需软件
✅ 已安装
- Node.js
- Docker Desktop
- Android Studio
- Android 模拟器
📥 需要下载
- OBS Studio - 推流软件
- 下载地址:https://obsproject.com/download
- 选择 Windows 版本
- 安装后重启电脑
2. 检查 Docker 容器
打开命令行,运行:
docker ps
应该看到 srs-server 容器正在运行:
CONTAINER ID IMAGE PORTS NAMES
f24a21e0bc02 ossrs/srs:5 0.0.0.0:1935->1935/tcp srs-server
0.0.0.0:8080->8080/tcp
0.0.0.0:1985->1985/tcp
如果没有运行,启动它:
cd live-streaming
docker-compose up -d
启动后端服务
步骤 1:打开命令行
在项目根目录打开 PowerShell 或 CMD
步骤 2:进入后端目录
cd live-streaming
步骤 3:启动服务器
node server/index.js
步骤 4:验证服务器运行
你应该看到类似输出:
[RoomStore] Loaded 1 rooms from storage
[Media Server] Embedded NodeMediaServer disabled (EMBEDDED_MEDIA_SERVER=0).
API 服务运行在 http://localhost:3001
API 服务也可通过 http://0.0.0.0:3001 访问(用于 Android 模拟器)
SRS RTMP: rtmp://localhost:1935/live/{streamKey}
SRS HTTP: http://localhost:8080/live/{streamKey}.flv
⚠️ 重要:保持这个命令行窗口打开,不要关闭!
步骤 5:测试服务器(可选)
打开浏览器访问:
http://localhost:3001/health
应该看到:
{"status":"ok","timestamp":"2025-12-16T09:30:00.000Z"}
Android Studio 使用教程
步骤 1:打开项目
- 启动 Android Studio
- 点击 Open
- 选择
android-app文件夹 - 点击 OK
步骤 2:等待 Gradle 同步
- 首次打开会自动下载依赖
- 等待底部状态栏显示 "Gradle sync finished"
- 可能需要 5-10 分钟
步骤 3:启动 Android 模拟器
方法 A:使用现有模拟器
- 点击顶部工具栏的设备下拉菜单
- 选择一个模拟器(如 Pixel 5 API 34)
- 点击绿色的 ▶️ Run 按钮
方法 B:创建新模拟器
- 点击 Tools → Device Manager
- 点击 Create Device
- 选择 Phone → Pixel 5
- 点击 Next
- 选择系统镜像(推荐 API 34)
- 点击 Next → Finish
- 点击 ▶️ 启动模拟器
步骤 4:运行应用
- 等待模拟器完全启动(显示主屏幕)
- 在 Android Studio 中点击 ▶️ Run 'app'
- 应用会自动安装并启动
步骤 5:创建直播间
在 Android 应用中:
- 点击右上角的 "开始直播" 按钮
- 填写信息:
- 直播间标题:例如 "我的第一次直播"
- 主播名称:例如 "小明"
- 点击 "创建"
步骤 6:获取推流地址
创建成功后会显示一个对话框,包含:
推流地址:
rtmp://10.0.2.2:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
电脑本机 OBS 可用:
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2
⚠️ 注意:
1. Android 应用只能观看直播
2. 需要用 OBS 在电脑上推流
3. OBS 设置:服务器填上面地址即可
4. 推流后在应用中观看
📋 复制推流地址:
- 点击 "复制地址" 按钮
- 这个地址稍后在 OBS 中使用
步骤 7:查看直播间列表
- 点击 "知道了" 关闭对话框
- 你会看到刚创建的直播间
- 状态显示 "未开播"(灰色)
OBS Studio 推流教程
步骤 1:下载并安装 OBS
- 访问 https://obsproject.com/download
- 下载 Windows 版本
- 安装(使用默认设置)
- 启动 OBS Studio
步骤 2:首次配置向导(如果出现)
如果是第一次打开 OBS,会出现配置向导:
- 使用信息:选择 "优化推流,录制次之"
- 视频设置:
- 基础分辨率:1920x1080
- FPS:30
- 推流信息:选择 "我将使用自定义流媒体服务器"
- 点击 "下一步" 完成
步骤 3:配置推流设置
3.1 打开设置
- 点击右下角 "设置" 按钮
- 或者菜单栏:文件 → 设置
3.2 配置推流
-
左侧选择 "推流"
-
服务:选择 "自定义..."
-
服务器:粘贴从 Android 应用复制的地址
rtmp://localhost:1935/live/868c49cc-1021-4664-95a3-ed71e789adb2⚠️ 重要:
- 如果地址是
rtmp://10.0.2.2:1935/...,改成rtmp://localhost:1935/... - 完整地址包含 streamKey,不需要单独填写串流密钥
- 如果地址是
-
串流密钥:留空(因为已经包含在服务器地址中)
-
点击 "应用"
3.3 配置输出(可选,优化画质)
- 左侧选择 "输出"
- 输出模式:简单
- 视频比特率:2500 Kbps
- 编码器:x264
- 点击 "应用"
3.4 配置视频(可选)
- 左侧选择 "视频"
- 基础分辨率:1920x1080
- 输出分辨率:1280x720
- 常用 FPS 值:30
- 点击 "确定"
步骤 4:添加视频源
方法 A:添加摄像头
- 在 "来源" 区域点击 + 号
- 选择 "视频捕获设备"
- 命名:例如 "摄像头"
- 点击 "确定"
- 设备:选择你的摄像头
- 点击 "确定"
方法 B:添加屏幕捕获
- 在 "来源" 区域点击 + 号
- 选择 "显示器捕获"
- 命名:例如 "屏幕"
- 点击 "确定"
- 显示器:选择要捕获的屏幕
- 点击 "确定"
方法 C:添加窗口捕获
- 在 "来源" 区域点击 + 号
- 选择 "窗口捕获"
- 命名:例如 "浏览器"
- 点击 "确定"
- 窗口:选择要捕获的窗口
- 点击 "确定"
步骤 5:调整画面
- 拖动红色边框调整大小
- 拖动中心调整位置
- 右键源 → 变换 → 适应屏幕 可以自动适配
步骤 6:开始推流
- 点击右下角 "开始推流" 按钮
- 按钮变成 "停止推流",底部状态栏显示:
直播中 | 00:00:15 | 2500 kb/s | 0 丢帧
✅ 推流成功标志:
- 状态栏显示 "直播中"
- 有比特率数据(如 2500 kb/s)
- 丢帧数为 0 或很少
❌ 推流失败标志:
- 提示 "连接失败"
- 状态栏显示红色错误
- 检查推流地址是否正确
步骤 7:在 Android 应用中观看
- 回到 Android 模拟器
- 在直播间列表中,你的直播间状态应该变成 "直播中"(红色)
- 点击直播间进入
- 等待 2-3 秒,视频开始播放
- 你应该能看到 OBS 中的画面
完整操作流程
🎬 完整演示流程
第一步:启动所有服务(5 分钟)
# 1. 启动 Docker(如果未运行)
cd live-streaming
docker-compose up -d
# 2. 启动后端服务器
node server/index.js
# 保持窗口打开!
第二步:启动 Android 应用(3 分钟)
- 打开 Android Studio
- 打开
android-app项目 - 启动模拟器
- 运行应用(点击 ▶️)
第三步:创建直播间(1 分钟)
- 在 Android 应用中点击 "开始直播"
- 填写标题和主播名称
- 点击 "创建"
- 点击 "复制地址" 复制推流地址
- 点击 "知道了"
第四步:配置 OBS(2 分钟)
- 打开 OBS Studio
- 点击 "设置" → "推流"
- 服务:选择 "自定义..."
- 服务器:粘贴推流地址(改
10.0.2.2为localhost) - 点击 "确定"
第五步:添加视频源(2 分钟)
- 点击 "来源" 区域的 + 号
- 选择 "视频捕获设备"(摄像头)或 "显示器捕获"(屏幕)
- 配置并确定
第六步:开始直播(1 分钟)
- 在 OBS 中点击 "开始推流"
- 等待 2-3 秒
- 回到 Android 模拟器
- 点击直播间进入
- 观看直播!🎉
常见问题解决
❌ 问题 1:Android 应用显示"网络错误"
原因:后端服务器未启动
解决:
cd live-streaming
node server/index.js
验证:浏览器访问 http://localhost:3001/health
❌ 问题 2:OBS 提示"连接失败"
原因 A:推流地址错误
解决:
- 检查地址格式:
rtmp://localhost:1935/live/{streamKey} - 确保使用
localhost而不是10.0.2.2 - 确保包含完整的 streamKey
原因 B:SRS 服务器未运行
解决:
docker ps
# 如果没有 srs-server,运行:
cd live-streaming
docker-compose up -d
❌ 问题 3:Android 应用显示"未开播"
原因:后端无法检测到推流
解决:
- 确认 OBS 正在推流(状态栏显示"直播中")
- 检查后端日志是否有错误
- 重启后端服务器
- 在 Android 应用中下拉刷新
验证推流状态: 浏览器访问 http://localhost:1985/api/v1/streams/ 应该看到你的 streamKey
❌ 问题 4:视频播放黑屏
原因 A:HLS 转码未启用
解决:
检查 live-streaming/.env 中是否有 FFmpeg 配置
FFMPEG_PATH=C:\path\to\ffmpeg.exe
原因 B:网络延迟
解决:
- 等待 5-10 秒
- 退出直播间重新进入
- 检查网络连接
原因 C:Android 播放器不支持格式
解决: 查看后端日志,确认 HLS 地址可用
❌ 问题 5:模拟器无法连接到后端
原因:防火墙阻止
解决:
# 以管理员身份运行 PowerShell
netsh advfirewall firewall add rule name="Node.js API" dir=in action=allow protocol=TCP localport=3001
❌ 问题 6:重启后端后房间消失
原因:已修复!现在房间会自动保存
验证:
检查 live-streaming/data/rooms.json 文件是否存在
❌ 问题 7:OBS 画面卡顿
原因:比特率过高或电脑性能不足
解决:
- OBS 设置 → 输出
- 降低视频比特率:2500 → 1500 Kbps
- 降低分辨率:1080p → 720p
- 降低帧率:60fps → 30fps
快速参考
端口说明
| 端口 | 服务 | 用途 |
|---|---|---|
| 1935 | RTMP | OBS 推流 |
| 8080 | HTTP-FLV/HLS | 视频播放 |
| 1985 | SRS API | 推流状态检测 |
| 3001 | Node.js API | Android 应用接口 |
关键地址
| 用途 | 地址 |
|---|---|
| OBS 推流 | rtmp://localhost:1935/live/{streamKey} |
| Android API | http://10.0.2.2:3001/api/ |
| 健康检查 | http://localhost:3001/health |
| SRS 状态 | http://localhost:1985/api/v1/streams/ |
常用命令
# 启动后端
cd live-streaming
node server/index.js
# 启动 Docker
docker-compose up -d
# 查看 Docker 容器
docker ps
# 停止 Docker
docker-compose down
# 查看端口占用
netstat -ano | findstr :3001
视频教程(建议录制)
如果你想录制视频教程,可以按照以下脚本:
📹 脚本大纲
-
开场(30秒)
- "大家好,今天教大家如何搭建一个 Android 直播系统"
- 展示最终效果:OBS 推流 → Android 观看
-
环境准备(2分钟)
- 展示必需软件
- 检查 Docker 运行状态
-
启动后端(1分钟)
- 打开命令行
- 运行
node server/index.js - 展示成功日志
-
Android Studio(3分钟)
- 打开项目
- 启动模拟器
- 运行应用
- 创建直播间
- 复制推流地址
-
OBS 配置(3分钟)
- 打开设置
- 配置推流地址
- 添加视频源
- 开始推流
-
观看直播(1分钟)
- 回到 Android 应用
- 点击直播间
- 展示播放效果
-
结尾(30秒)
- 总结关键步骤
- 提醒常见问题
下一步学习
🚀 进阶功能
- 添加聊天功能
- 添加礼物打赏
- 添加观众人数统计
- 支持多个直播间
- 添加直播回放
📚 推荐资源
- OBS 官方文档:https://obsproject.com/wiki/
- SRS 文档:https://ossrs.net/
- Android ExoPlayer:https://exoplayer.dev/
技术支持
如果遇到问题:
- 查看本教程的"常见问题解决"部分
- 查看
android-app/问题修复总结.md - 查看后端日志输出
- 查看 Android Studio 的 Logcat
祝你使用愉快!🎉