go2rtc คืออะไร
go2rtc เป็นโปรแกรมสำหรับรับและกระจายสัญญาณวิดีโอจากกล้อง IP รองรับ RTSP, WebRTC, HLS, MJPEG และโปรโตคอลอื่น ๆ เหมาะสำหรับใช้งานร่วมกับ
- Home Assistant
- Frigate
- VLC Media Player
- FFmpeg
- เว็บแอปพลิเคชัน CCTV
สามารถติดตั้งได้บน Linux เกือบทุกดิสโทร ไม่ว่าจะเป็น
- Ubuntu
- Linux Mint
- Debian
- CentOS Stream 9
- Rocky Linux
- AlmaLinux
ขั้นตอนการติดตั้งเหมือนกันเกือบทั้งหมด แตกต่างเพียงการจัดการแพ็กเกจและ Firewall ของแต่ละระบบ
ความต้องการของระบบ
- Linux 64-bit (amd64)
- เชื่อมต่ออินเทอร์เน็ต
- สิทธิ์ sudo หรือ root
- กล้อง IP ที่รองรับ RTSP (หากต้องการใช้งานกับกล้อง)
1. สร้างโฟลเดอร์ติดตั้ง
แนะนำให้ติดตั้งไว้ใน /opt/go2rtc
sudo mkdir -p /opt/go2rtc
cd /opt/go2rtc
สำหรับการทดลองใช้งาน สามารถติดตั้งไว้ในโฟลเดอร์ Home เช่น
~/go2rtcได้เช่นกัน
2. ดาวน์โหลด go2rtc
ดาวน์โหลดเวอร์ชันล่าสุด
sudo wget https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64 -O go2rtc
ให้สิทธิ์รัน
sudo chmod +x go2rtc
3. สร้างไฟล์กำหนดค่า
สร้างไฟล์
sudo nano /opt/go2rtc/go2rtc.yaml
ตัวอย่าง
streams:
cam1:
- rtsp://admin:[email protected]:554/stream1
บันทึกไฟล์
Ctrl + O
Enter
Ctrl + X
4. ทดลองรัน
cd /opt/go2rtc
sudo ./go2rtc
หากไม่มีข้อผิดพลาด จะพบข้อความลักษณะนี้
HTTP API listen on :1984
RTSP listen on :8554
WebRTC listen on :8555
เปิด WebUI
http://IP-ADDRESS:1984
หรือ
http://localhost:1984
หยุดโปรแกรม
Ctrl + C
5. ตั้ง Username และ Password
แก้ไขไฟล์
sudo nano /opt/go2rtc/go2rtc.yaml
เพิ่ม
api:
listen: ":1984"
username: admin
password: MyPassword123
local_auth: true
streams:
cam1:
- rtsp://admin:[email protected]:554/stream1
บันทึกไฟล์ แล้วรันใหม่
เมื่อเข้า WebUI จะต้องกรอก Username และ Password
6. ค้นหาไฟล์ go2rtc และ go2rtc.yaml
หากหาไฟล์ไม่พบ
ค้นหาโปรแกรม
find / -name "go2rtc" 2>/dev/null
ค้นหาไฟล์กำหนดค่า
find / -name "go2rtc.yaml" 2>/dev/null
ตัวอย่าง
/opt/go2rtc/go2rtc
/opt/go2rtc/go2rtc.yaml
หากพบหลายไฟล์ ให้ตรวจสอบว่าโปรแกรมกำลังใช้งานไฟล์ใดอยู่
7. ตรวจสอบ Port
ค่าเริ่มต้น
| Service | Port |
|---|---|
| WebUI | 1984 |
| RTSP | 8554 |
| WebRTC | 8555 |
ตรวจสอบว่า Port ถูกใช้งานหรือไม่
sudo ss -tulpn | grep 1984
หรือ
sudo lsof -i :1984
8. แก้ปัญหา Port ถูกใช้งาน
ค้นหา Process
sudo lsof -i :1984
หยุด Process
sudo kill PID
หากไม่หยุด
sudo kill -9 PID
หรือเปลี่ยน Port
api:
listen: ":8080"
9. เปิด Firewall
Ubuntu / Linux Mint
หากใช้ UFW
sudo ufw allow 1984/tcp
sudo ufw allow 8554/tcp
sudo ufw allow 8555/tcp
CentOS Stream / Rocky Linux / AlmaLinux
ใช้ firewalld
sudo firewall-cmd --permanent --add-port=1984/tcp
sudo firewall-cmd --permanent --add-port=8554/tcp
sudo firewall-cmd --permanent --add-port=8555/tcp
sudo firewall-cmd --reload
10. ติดตั้งเป็น Service
สร้างไฟล์
sudo nano /etc/systemd/system/go2rtc.service
ใส่ข้อมูล
[Unit]
Description=go2rtc Streaming Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/go2rtc
ExecStart=/opt/go2rtc/go2rtc
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
โหลดค่าใหม่
sudo systemctl daemon-reload
เปิดใช้งาน
sudo systemctl enable go2rtc
เริ่ม Service
sudo systemctl start go2rtc
ตรวจสอบ
sudo systemctl status go2rtc
หากพบ
Active: active (running)
แสดงว่าทำงานเรียบร้อย
11. ตรวจสอบ Auto Start
sudo systemctl is-enabled go2rtc
หากแสดง
enabled
หมายความว่าเมื่อเปิดเครื่อง go2rtc จะเริ่มทำงานอัตโนมัติ
12. ดู Log
แบบเรียลไทม์
journalctl -u go2rtc -f
Log ของวันนี้
journalctl -u go2rtc --since today
13. คำสั่งที่ใช้บ่อย
เริ่ม Service
sudo systemctl start go2rtc
หยุด Service
sudo systemctl stop go2rtc
รีสตาร์ต
sudo systemctl restart go2rtc
ปิด Auto Start
sudo systemctl disable go2rtc
14. ปัญหาที่พบบ่อย
Port ถูกใช้งาน (Address already in use)
ตรวจสอบ
sudo ss -tulpn | grep 1984
หรือ
sudo lsof -i :1984
WebUI เปิดไม่ได้
- ตรวจสอบว่า Service ทำงานอยู่
sudo systemctl status go2rtc
- ตรวจสอบ Firewall
- ตรวจสอบว่าใช้ IP และ Port ถูกต้อง
หา go2rtc.yaml ไม่พบ
ค้นหา
find / -name "go2rtc.yaml" 2>/dev/null
หากพบหลายไฟล์ ให้แก้ไขไฟล์ที่อยู่ในโฟลเดอร์เดียวกับโปรแกรม หรือโฟลเดอร์ที่กำหนดไว้ใน WorkingDirectory ของไฟล์ Service
Service Start ไม่ได้
ตรวจสอบ Log
journalctl -u go2rtc -xe
ตรวจสอบว่า WorkingDirectory และ ExecStart ถูกต้อง
CentOS เปิด WebUI ไม่ได้
ตรวจสอบ Firewall
sudo firewall-cmd --list-ports
หากใช้ SELinux ให้ตรวจสอบสถานะ
getenforce
หากจำเป็น ให้ตรวจสอบข้อความปฏิเสธสิทธิ์ (AVC) ใน Log ของ SELinux เพื่อวิเคราะห์ปัญหาเพิ่มเติม
สรุป
การติดตั้ง go2rtc บน Ubuntu, Linux Mint, Debian, CentOS Stream, Rocky Linux และ AlmaLinux ใช้ขั้นตอนเดียวกันเกือบทั้งหมด ได้แก่ ดาวน์โหลดโปรแกรม สร้างไฟล์ go2rtc.yaml ตั้งค่า Username และ Password เปิดใช้งานผ่าน systemd และตรวจสอบการทำงานด้วย systemctl และ journalctl
ความแตกต่างหลักอยู่ที่การจัดการ Firewall โดย Ubuntu และ Linux Mint มักใช้ UFW ส่วน CentOS Stream, Rocky Linux และ AlmaLinux ใช้ firewalld และอาจมี SELinux เปิดใช้งาน ซึ่งควรตรวจสอบเพิ่มเติมหากพบปัญหาด้านการเข้าถึงหรือสิทธิ์การทำงานของโปรแกรม
