# TG Live Game Stream Service

Mac 摄像头/屏幕推流到 Cloudflare Stream 的脚本工具。

## 前置要求

### 安装 FFmpeg

```bash
brew install ffmpeg
```

### 获取推流地址

1. 打开 `tg-live-game-web` 前端
2. 进入 **Cloudflare Stream → 直播管理**
3. 点击 **创建直播**
4. 获取 **RTMPS 推流地址** 和 **推流密钥**

## 快速开始

### 1. 配置推流参数

```bash
# 复制配置文件
cp config/stream.env.example config/stream.env

# 编辑配置，填入推流密钥
vim config/stream.env
```

### 2. 查看可用设备

```bash
chmod +x scripts/*.sh
./scripts/list-devices.sh
```

输出示例：
```
[AVFoundation indev @ 0x...] [0] FaceTime HD Camera
[AVFoundation indev @ 0x...] [1] Capture screen 0
[AVFoundation indev @ 0x...] [0] MacBook Pro Microphone
```

### 3. 开始推流

**摄像头推流：**
```bash
./scripts/stream-camera.sh
```

**屏幕推流：**
```bash
./scripts/stream-screen.sh
```

### 4. 停止推流

按 `Ctrl+C` 或运行：
```bash
./scripts/stop-stream.sh
```

## 配置说明

| 参数 | 说明 | 推荐值 |
|------|------|--------|
| `RTMP_URL` | 推流地址 | `rtmps://live.cloudflare.com:443/live` |
| `STREAM_KEY` | 推流密钥 | 从 Cloudflare 获取 |
| `VIDEO_DEVICE` | 摄像头编号 | `0` |
| `AUDIO_DEVICE` | 麦克风编号 | `0` |
| `RESOLUTION` | 分辨率 | `1280x720` |
| `FPS` | 帧率 | `30` |
| `BITRATE` | 视频码率 | `2500k` |

## 推荐码率

| 分辨率 | 帧率 | 推荐码率 |
|--------|------|----------|
| 720p (1280x720) | 30fps | 2500k |
| 720p (1280x720) | 60fps | 3500k |
| 1080p (1920x1080) | 30fps | 4500k |
| 1080p (1920x1080) | 60fps | 6000k |

## 常见问题

### 权限问题

首次运行时，macOS 会提示授权摄像头和麦克风访问，请点击允许。

如果没有提示，可以在 **系统偏好设置 → 安全性与隐私 → 隐私 → 摄像头/麦克风** 中手动授权终端。

### 推流失败

1. 检查网络连接
2. 确认推流密钥正确
3. 确认 Cloudflare Stream 服务已开通
4. 查看 FFmpeg 错误输出

### 画面卡顿

- 降低分辨率或码率
- 检查网络上传带宽
- 关闭其他占用网络的应用

## 文件结构

```
tg-live-game-stream-service/
├── scripts/
│   ├── list-devices.sh       # 列出可用设备
│   ├── stream-camera.sh      # 摄像头推流
│   ├── stream-screen.sh      # 屏幕推流
│   └── stop-stream.sh        # 停止推流
├── config/
│   ├── stream.env.example    # 配置模板
│   └── stream.env            # 实际配置（需创建）
└── README.md
```
