โจทย์ของวันนี้คือเรื่องการทำ live streaming ในวง LAN ต้องการทำถ่ายทอดสดไปยังโปรแกรม VLC บน android box แทนการหา source streaming จากที่อื่น เพราะต้องการควบคุมเนื้อหาเอง จนเจอ docker แจ่มๆ และใช้งานง่ายมากๆ คือ alfa/nginx-rtmp มาดูวิธีการตั้งค่าและใช้งานกัน
การใช้ Docker ในการตั้งค่า Streaming Server สำหรับ OBS Studio และเล่นบน VLC เป็นวิธีที่สะดวกและติดตั้งง่ายกว่า เนื่องจาก Docker ช่วยให้คุณสามารถรันเซิร์ฟเวอร์ที่ต้องการได้โดยไม่ต้องติดตั้งและตั้งค่าซอฟต์แวร์ต่าง ๆ ด้วยตนเอง นี่คือขั้นตอนการตั้งค่าที่แนะนำ
Jump to Contents
ติดตั้ง Docker Desktop บน Windows 10
- ดาวน์โหลด Docker Desktop
- ไปที่ Docker Desktop for Windows และดาวน์โหลดตัวติดตั้ง
- ติดตั้ง Docker Desktop
- เปิดไฟล์ติดตั้งที่ดาวน์โหลดมาและทำตามขั้นตอนการติดตั้ง
- หลังจากติดตั้งเสร็จ ให้รีสตาร์ทเครื่องคอมพิวเตอร์ถ้ามีการแจ้งเตือน
- ตรวจสอบการติดตั้ง
- เปิด Command Prompt หรือ Terminal และพิมพ์คำสั่ง
docker -v
- คุณควรเห็นเวอร์ชันของ Docker ที่ติดตั้งอยู่
รัน NGINX RTMP Server ด้วย Docker
เราจะใช้ Docker image ที่มี NGINX พร้อม RTMP module อยู่แล้ว เช่น tiangolo/nginx-rtmp หรือ alfg/nginx-rtmp
ตัวอย่างการใช้ alfg/nginx-rtmp
- ดึง Docker Image
เปิดCommand Prompt
หรือPowerShell
และรันคำสั่ง
docker pull alfg/nginx-rtmp
- รัน Docker Container
รันคำสั่งด้านล่างเพื่อเริ่มต้นเซิร์ฟเวอร์ RTMP
docker run -d -p 1935:1935 -p 8080:80 --name nginx-rtmp alfg/nginx-rtmp
- -d: รัน container ในโหมด background
- -p 1935:1935: เปิดพอร์ต RTMP
- -p 8080:80: เปิดพอร์ต HTTP สำหรับหน้าเว็บเพจ (ถ้ามี)
- –name nginx-rtmp: ตั้งชื่อ container
- alfg/nginx-rtmp: ชื่อ image
- ตรวจสอบการทำงานของ Container
docker ps
คุณควรเห็น container ที่ชื่อ nginx-rtmp
กำลังทำงาน
ตั้งค่า OBS Studio ให้สตรีมไปยัง RTMP Server
- เปิด OBS Studio
- ตั้งค่าการสตรีม
- ไปที่ Settings > Stream
- ตั้งค่าดังนี้
- Service: Custom…
- Server:
rtmp://localhost:1935/stream
(ถ้ารันบนเครื่องเดียวกัน) หรือrtmp://<IP ของเครื่องที่รัน Docker>/stream
- Stream Key:
moremeng
(สามารถเปลี่ยนได้ตามที่คุณตั้งค่าใน RTMP server)
- เพิ่มแหล่งสื่อ (Source)
- คลิกที่
+
ในกล่อง “Sources” เพื่อเพิ่มแหล่งสื่อที่ต้องการสตรีม เช่น Display Capture, Window Capture หรือ Media Source
- เริ่มการสตรีม
- คลิก Start Streaming ใน OBS Studio
เล่นสตรีมมิงใน VLC
- เปิด VLC Media Player
- เปิด Network Stream
- ไปที่ Media > Open Network Stream…
- ใส่ URL ของสตรีม:
- หากรัน OBS และ RTMP server บนเครื่องเดียวกัน:
rtmp://localhost/stream/<stream key>
- หากรันบนเครื่องอื่นใน LAN:
rtmp://<IP ของเครื่องที่รัน Docker>/stream/<stream key>
rtmp://192.168.1.142/stream/moremeng
- คลิก
Play
เพื่อเริ่มเล่นสตรีม
การตรวจสอบและแก้ไขปัญหา
1. ตรวจสอบสถานะของ Docker Container
docker ps
ตรวจสอบว่า container nginx-rtmp
กำลังทำงานอยู่
2. ตรวจสอบ Log ของ NGINX RTMP
docker logs nginx-rtmp
ตรวจสอบว่าไม่มีข้อผิดพลาดในการเริ่มต้นเซิร์ฟเวอร์
3. ตรวจสอบไฟร์วอลล์
ตรวจสอบว่าไฟร์วอลล์ของ Windows อนุญาตให้ผ่านพอร์ต 1935 (RTMP) และ 8080 (HTTP) หรือไม่
4. ทดสอบการเชื่อมต่อจาก OBS Studio
หากพบข้อผิดพลาด “failed to connect to server” ให้ตรวจสอบ
- URL และ Stream Key ใน OBS Studio ถูกต้องหรือไม่
- RTMP server กำลังทำงานอยู่และฟังอยู่ที่พอร์ตที่ถูกต้อง
- เครื่องทั้งสอง (ถ้าไม่ใช่เครื่องเดียวกัน) สามารถสื่อสารกันได้ (ใช้คำสั่ง
ping <IP ของเครื่อง RTMP>
)
ข้อแนะนำเพิ่มเติม
การใช้ Docker Compose
หากคุณต้องการจัดการหลายๆ container หรือปรับแต่งการตั้งค่าเพิ่มเติม สามารถใช้ docker-compose
ได้ นี่คือตัวอย่างไฟล์ docker-compose.yml
สำหรับ NGINX RTMP
version: '3'
services:
nginx-rtmp:
image: alfg/nginx-rtmp
container_name: nginx-rtmp
ports:
- "1935:1935"
- "8080:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
สร้างไฟล์ nginx.conf
ในโฟลเดอร์เดียวกันกับ docker-compose.yml
หากต้องการปรับแต่งการตั้งค่า RTMP
การดูหน้าเว็บเพจของ NGINX RTMP
บาง Docker image มีหน้าเว็บเพจสำหรับดูสถิติการสตรีมมิง คุณสามารถเข้าถึงได้ที่
http://localhost:8080/stats
สรุป
การใช้ Docker ในการตั้งค่า Streaming Server สำหรับ OBS Studio บน Windows 10 ช่วยให้การติดตั้งและการจัดการเป็นเรื่องง่าย เพียงแค่รัน container ที่มี NGINX RTMP module แล้วตั้งค่า OBS Studio ให้สตรีมไปยัง RTMP server นี้ จากนั้นคุณสามารถเล่นสตรีมผ่าน VLC ได้ทันที หากมีปัญหาใด ๆ สามารถตรวจสอบการตั้งค่าและ log เพื่อหาสาเหตุและแก้ไขได้หากมีคำถามเพิ่มเติมหรือปัญหาในการตั้งค่า