👥 用户账号与租户管理中心
{{ adminUsersList.length }} 个注册用户
平台注册用户总数
{{ adminUsersList.length }} 位
所有租户沉淀总余额
¥ {{ totalAdminBalance.toFixed(2) }} 元
当前全站推流连接数
{{ stats.activePublishers }} 路推流
当前全站拉流观众数
{{ stats.activePlayers }} 人
系统运行总览
SRS & Go 引擎正常运行
服务域名: {{ displayPushServer }}
租户可用余额
¥ {{ stats.balance.toFixed(2) }}
元
当前在线: {{ stats.activePublishers }} 路推流 / {{ stats.activePlayers }} 人拉流
今日流量消耗费用
¥ {{ stats.todayFee.toFixed(4) }}
元
单价: ¥ {{ currentTenant ? currentTenant.unit_price.toFixed(2) : '0.50' }} / GB
📡 业务推拉流实时带宽 (Stream)
{{ stats.streamTotalMbps.toFixed(2) }} Mbps
({{ (stats.streamTotalMbps / 8.0).toFixed(2) }} MB/s)
↑ 推流上行: {{ stats.streamInMbps.toFixed(2) }} M
↓ 播放下行: {{ stats.streamOutMbps.toFixed(2) }} M
🖥️ 服务器网卡物理实时流量 (Host NIC)
{{ stats.hostNicTotalMbps.toFixed(2) }} Mbps
({{ (stats.hostNicTotalMbps / 8.0).toFixed(2) }} MB/s)
↑ 网卡入网: {{ stats.hostNicRxMbps.toFixed(2) }} M
↓ 网卡出网: {{ stats.hostNicTxMbps.toFixed(2) }} M
📈 实时带宽双轨监控曲线 (推拉流业务带宽 vs 服务器网卡流量)
每 3 秒高频动态采样刷新
🚀 极速推流与播放实测 (真实可用)
本系统全链路采用 RTMP / HTTP-FLV 纯透传、零转码 架构,单核 CPU 可满载千兆带宽。推拉流均由 MD5 防盗链与欠费强断引擎 实时保护。
1. OBS 推流快捷配置
服务器 (Server):
{{ displayPushServer }}串流密钥 (Stream Key):
{{ displayStreamKeyWithSign }}2. 实时监播 (浏览器 Web 播放 / VLC)
推流开始后,点击下方按钮直接在浏览器内实时监播推流画面:
流管理与推拉流地址生成器
生成防盗链推流与播放地址
✅ 最新生成的流配置 ({{ generatedUrls.stream_key }})
到期时间戳: {{ generatedUrls.expire_timestamp }}
🎬 OBS Studio 软件推流填法(在 OBS -> 设置 -> 直播 中填入)
① 服务器 (Server) 填入:
一键复制
{{ displayPushServer }}
② 串流密钥 (Stream Key) 填入:
一键复制
{{ displayStreamKeyWithSign }}
🔒 HTTPS / HTTP-FLV 播放地址 (自适应安全协议,完美支持 HTTPS 网页与小程序)
一键复制
{{ displayPlayUrl }}
FFmpeg 命令行一键推流指令 (终端测试)
{{ displayFFmpegCmd }}
实时在线客户端与监播
{{ activeClients.length }} 个活跃连接
计费用量与账单流水
当前账户空间
{{ currentTenantId }}
可用余额
¥ {{ stats.balance.toFixed(2) }}
流量计费单价
¥ {{ currentTenant ? currentTenant.unit_price.toFixed(2) : '0.50' }}
元 / GB
API 密钥与防盗链算法集成
租户鉴权凭证 (Access Credentials)
Tenant ID (租户空间标识)
{{ currentTenantId }}Secret Key (专属加密密钥)
{{ currentTenant ? currentTenant.secret_key : '' }}真实可用签名生成代码 (Python / Go)
# Python 签名算法 (可直接本地执行)
import time, hashlib
def generate_sign(stream_key, secret_key, expire_seconds=7200):
expire_ts = int(time.time()) + expire_seconds
raw = f"{stream_key}-{secret_key}-{expire_ts}"
hash_str = hashlib.md5(raw.encode('utf-8')).hexdigest()
sign = f"{expire_ts}-{hash_str}"
push_url = f"rtmp://sg.cnhk.me:1935/live/{stream_key}?sign={sign}"
play_url = f"https://sg.cnhk.me/live/{stream_key}.flv?sign={sign}"
return push_url, play_url