คู่มือการตั้งค่า MistServer & Fallback Redundancy

การคอนฟิก Source Options สำหรับ UDP Multicast/HLS, การปรับ Buffer ในระดับ Kernel, และการตั้งค่าสลับสัญญาณสำรองอัตโนมัติ

1 การเข้าสู่ระบบและการสร้าง Stream

เข้าใช้งานหน้าแผงควบคุมของ MistServer ผ่านเว็บเบราว์เซอร์:

http://172.30.100.9:4242/

2 รูปแบบ Source URL และ Options ที่สำคัญ

การกำหนด URL ในช่อง Source: ตามประเภทสัญญาณเพื่อลดอาการกระตุกและป้องกันปัญหา Socket บัฟเฟอร์ล้น:

ประเภท Input รูปแบบ URL ในช่อง Source
UDP Multicast (ตรง) udp://@239.1.1.100:50000?pkt_size=1316&fifo_size=5000000
UDP ผ่าน Interface เจาะจง udp://@239.1.1.100:50000?localaddr=192.168.10.10&pkt_size=1316
HLS Source https://domain-cdn.com/live/stream/index.m3u8
RTMP Source rtmp://domain-cdn.com/live/channel_name
MPEG-TS (HTTP) http://172.30.60.21/BHQ/live/31.ts
⚠️ ข้อควรจำ: เครื่องหมาย @ หน้า IP Multicast จำเป็นต้องมีเสมอ เพื่อให้ MistServer ส่งคำสั่ง IGMP Join Group ไปยัง Network Switch เพื่อรับแพ็กเก็ตข้อมูล

3 การตั้งค่า Fallback Stream (สลับสัญญาณสำรองอัตโนมัติ)

หากสัญญาณต้นทางหลักดับ MistServer สามารถสลับไปดึงสัญญาณสำรอง (เช่น Backup Link หรือภาพสไลด์รอสัญญาณ) มาแสดงผลแทนอัตโนมัติ โดยที่เครื่อง Client ไม่หลุดจากการเชื่อมต่อ

วิธีที่ 1: ตั้งค่าผ่านหน้า Stream Details (UI)

วิธีที่ 2: ตั้งค่าผ่าน Tags

ในช่อง Tags: หรือ Persistent tags: ให้ใส่รูปแบบ:

always_on, fallback=true1_backup
💡 คำแนะนำ: แท็ก always_on จะสั่งให้ MistServer เชื่อมต่อสัญญาณต้นทางมารอไว้ในหน่วยความจำทันที แม้จะยังไม่มีผู้ชมเปิดดู ช่วยให้ผู้ชมเปิดภาพได้เร็วแบบทันที (Instant Playback)

4 การจูน Socket Buffer ใน Linux Kernel (ป้องกัน UDP Drop)

ขยายขนาดบัฟเฟอร์รับข้อมูล UDP ของระบบปฏิบัติการให้รองรับ Bitrate สูง:

# ปรับขนาด Buffer ชั่วคราว (16MB)
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.rmem_default=16777216

# บันทึกให้มีผลถาวรหลังรีบูตเครื่อง
sudo bash -c 'cat << "EOF" >> /etc/sysctl.conf
net.core.rmem_max=16777216
net.core.rmem_default=16777216
EOF'

5 คำสั่งควบคุม Service และการ Nuke Stream

คำสั่ง Nuke Stream (สั่งตัดการเชื่อมต่อเพื่อโหลดค่า Config ใหม่ทันที):

การควบคุม MistServer ผ่าน Systemctl:

# สั่งรีสตาร์ท Service
sudo systemctl restart mistserver

# ตรวจสอบสถานะการทำงาน
sudo systemctl status mistserver