# S-Live

Livestream YouTube tối ưu CPU cho phòng tư vấn và phẫu thuật trên Windows.

Trình duyệt chỉ làm giao diện điều khiển. FFmpeg đọc camera DirectShow trực tiếp từ Windows rồi đẩy RTMP lên YouTube, giúp máy nhẹ hơn khi live lâu.

Tác giả: Bs. Thanh Sang · bsthsang@gmail.com

Cài đặt cho Windows Tải gói zip
Lệnh PowerShell

    powershell -NoProfile-ExecutionPolicy Bypass-Command "iwr -UseBasicParsinghttps://slive.misalab.com/install.ps1| iex"

DirectShow đọc camera trực tiếp
Cloud YouTube OAuth cho end-user
GPU encoder tự chọn nếu máy hỗ trợ

## Một lệnh để cài và cập nhật S-Live.

Yêu cầu máy Windows đã có Node.js 20 LTS. Chạy lại cùng lệnh để cập nhật, installer giữ cấu hình cũ trong thư mục cài.

## Giao diện điều khiển gọn, xử lý video ở tầng FFmpeg.

S-Live tập trung vào những thao tác cần khi live: chọn camera, âm thanh, preset chất lượng, đăng nhập YouTube, overlay tên bệnh nhân/chẩn đoán và theo dõi log FFmpeg.

## Luồng live đơn giản và ít tải trình duyệt.

Mô hình chạy cục bộ giữ camera và FFmpeg trên máy người dùng, còn cloud backend chỉ xử lý OAuth và gọi YouTube API theo phiên đăng nhập.

1

### DirectShow

Chọn camera Windows và nguồn âm thanh trong sidebar. FFmpeg đọc nguồn trực tiếp thay vì render video qua canvas trình duyệt.

2

### FFmpeg

Preset 720p30 cho tư vấn, 1080p60 cho phẫu thuật, tự chọn NVENC, QSV, AMF hoặc CPU libx264 theo máy.

3

### YouTube RTMP

Tạo livestream qua YouTube OAuth hoặc nhập stream key thủ công khi cần. App đẩy RTMP trực tiếp từ máy người dùng.

## Đủ tính năng cho một ca live thực tế.

Không cố biến trình duyệt thành bộ xử lý video. Những phần nặng nằm ở FFmpeg, còn UI giữ vai trò điều khiển và quan sát trạng thái.

OAuth

### YouTube OAuth

Người dùng đăng nhập Google để tạo livestream tự động, lấy stream key và mở link xem mà không cần cấu hình secret trên máy cá nhân.

GPU

### GPU encoder

Tự ưu tiên encoder phần cứng nếu có, giúp giảm tải CPU khi livestream độ phân giải cao trong thời gian dài.

TXT

### Overlay nội dung

Thêm tên bệnh nhân, chẩn đoán và logo phát sóng vào khung hình bằng pipeline FFmpeg.

LOG

### Log FFmpeg riêng

Mỗi lần live có log riêng để xem cấu hình start, stderr, restart, fallback encoder và nguyên nhân dừng.

KEY

### Stream key thủ công

Khi không dùng OAuth, vẫn có thể nhập RTMP URL và stream key thủ công để phát lên YouTube.

WIN

### Windows camera

Thiết kế cho môi trường Windows có camera DirectShow, phù hợp máy đặt trong phòng tư vấn hoặc phòng mổ.

## Gói cài public không kèm secret.

Bản end-user dùng cloud OAuth tại slive.misalab.com. Token OAuth lưu trên server cloud theo phiên đăng nhập, còn FFmpeg vẫn stream trực tiếp từ máy người dùng lên YouTube.

### Không đóng gói .env

Gói zip public không đưa file cấu hình nhạy cảm lên máy end-user.

`.env`

### Không kèm token local

Token runtime của máy phát triển không nằm trong gói tải công khai.

`.tokens.json`

### Không kèm cloud backend

OAuth backend chạy trên VPS riêng, không phát hành kèm app cài cho người dùng.

`server/cloud-oauth.js`

## Cài S-Live trên máy Windows cần livestream.

Lệnh cài đặt

    powershell -NoProfile-ExecutionPolicy Bypass-Command "iwr -UseBasicParsinghttps://slive.misalab.com/install.ps1| iex"