Nginx RTMP คืออะไร และวิธีติดตั้งบน Cloud Server
Nginx RTMP คือโมดูลที่ทำให้ Nginx รับสัญญาณถ่ายทอดสดและกระจายต่อให้ผู้ชมได้ เป็นวิธีที่เบาที่สุดในการทำเซิร์ฟเวอร์สตรีมมิงของตัวเองและส่งต่อไปหลายแพลตฟอร์มพร้อมกัน
- หมวดหมู่
- Media และ Streaming
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- BSD 2-Clause (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Nginx RTMP คืออะไร
โมดูลนี้ทำให้ Nginx รับสัญญาณถ่ายทอดสดจากโปรแกรมอย่าง OBS แล้วทำสองอย่างได้ คือแปลงเป็นรูปแบบที่เบราว์เซอร์เล่นได้โดยตรง และส่งต่อสัญญาณเดิมไปยังแพลตฟอร์มอื่นพร้อมกันหลายที่
การส่งต่อไปหลายแพลตฟอร์มพร้อมกันเป็นการใช้งานที่พบบ่อยที่สุด เพราะผู้ถ่ายทอดส่งสัญญาณขึ้นเซิร์ฟเวอร์เพียงครั้งเดียว แล้วให้เซิร์ฟเวอร์กระจายต่อ ซึ่งประหยัดแบนด์วิดท์ขาขึ้นของผู้ถ่ายทอดอย่างมาก
ข้อแลกเปลี่ยนคือไม่มีหน้าจอจัดการหรือหน้าผู้ชมมาให้ ต้องตั้งค่าผ่านไฟล์และทำหน้าเว็บเอง จึงเหมาะกับผู้ที่คุ้นกับงานเทคนิค ส่วนผู้ที่ต้องการระบบพร้อมใช้ควรเลือก Owncast
ความสามารถเด่นของ Nginx RTMP
ส่งต่อไปหลายแพลตฟอร์มพร้อมกัน
ส่งสัญญาณขึ้นครั้งเดียวแล้วกระจายต่อได้หลายที่
แปลงเป็นรูปแบบที่เบราว์เซอร์เล่นได้
ผู้ชมดูได้โดยไม่ต้องติดตั้งโปรแกรมเพิ่ม
ใช้ทรัพยากรน้อย
เป็นโมดูลของ Nginx จึงเบากว่าระบบสตรีมมิงเต็มรูปแบบ
บันทึกการถ่ายทอดได้
เก็บไฟล์ไว้เผยแพร่ย้อนหลังโดยอัตโนมัติ
ควบคุมได้ทุกจุด
ปรับการตั้งค่าได้ละเอียดเพราะเป็นการตั้งค่าผ่านไฟล์
ใช้ Nginx RTMP ทำอะไรได้บ้าง
- ส่งสัญญาณถ่ายทอดสดไปหลายแพลตฟอร์มพร้อมกัน
- เซิร์ฟเวอร์สตรีมมิงภายในองค์กรที่ต้องการความเบา
- ระบบกล้องวงจรปิดที่ต้องกระจายสัญญาณให้หลายจุด
- ทีมที่ต้องการควบคุมทุกจุดของระบบสตรีมมิง
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นส่งต่อสัญญาณโดยไม่แปลงความละเอียด | 2 vCPU | 4 GB | NVMe 60 GB |
| แนะนำแปลงหลายความละเอียดและบันทึกไฟล์ | 4 vCPU | 8 GB | NVMe 200 GB |
| ใช้งานหนักหลายช่องพร้อมกันและมีผู้ชมจำนวนมาก | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 500 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Nginx RTMP บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Nginx ที่คอมไพล์พร้อมโมดูล RTMP
- FFmpeg สำหรับแปลงความละเอียด
- แบนด์วิดท์ที่เพียงพอกับจำนวนผู้ชม
- พื้นที่ดิสก์ถ้าต้องบันทึกการถ่ายทอด
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Nginx พร้อมโมดูล
sudo apt update sudo apt -y install nginx libnginx-mod-rtmp ffmpeg - 2
ตั้งค่ารับสัญญาณและแปลงเป็นรูปแบบที่เบราว์เซอร์เล่นได้
# /etc/nginx/nginx.conf rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; allow publish 203.0.113.50; deny publish all; hls on; hls_path /var/www/hls; hls_fragment 3s; hls_playlist_length 60s; } } } - 3
เปิดให้ผู้ชมดูผ่าน HTTPS
location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/www; add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin *; } - 4
ตั้งการส่งต่อไปแพลตฟอร์มอื่น
เพิ่มปลายทางที่ต้องการส่งต่อในส่วนของแอปพลิเคชัน ทำให้ส่งสัญญาณขึ้นครั้งเดียวแล้วกระจายไปหลายที่
application live { live on; push rtmp://a.rtmp.example-platform.com/live/STREAM_KEY; push rtmp://live-api.another-platform.com/rtmp/STREAM_KEY; } - 5
เปิดการบันทึกถ้าต้องการ
application live { record all; record_path /var/recordings; record_unique on; } - 6
ทดสอบด้วย OBS
# ค่าที่ใส่ใน OBS Server: rtmp://live.example.com/live Stream Key: ตั้งชื่อช่องที่ต้องการ
ต้องจำกัดว่าไอพีใดส่งสัญญาณเข้ามาได้เสมอ มิฉะนั้นใครก็ตามที่รู้ที่อยู่เซิร์ฟเวอร์จะส่งสัญญาณเข้ามาถ่ายทอดในนามของคุณได้
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 1935 | TCP | รับสัญญาณถ่ายทอดสด (จำกัดไอพีที่ส่งเข้ามาได้) |
| 443 | TCP | HTTPS สำหรับผู้ชม |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- จำกัดไอพีที่ส่งสัญญาณเข้ามาได้เสมอ
- ไม่เปิดพอร์ตรับสัญญาณสู่อินเทอร์เน็ตโดยไม่จำกัด
- ตั้งการลบไฟล์บันทึกเก่าอัตโนมัติเพื่อไม่ให้ดิสก์เต็ม
- เฝ้าระวังแบนด์วิดท์เพราะเป็นค่าใช้จ่ายหลัก
ทำไมควรรัน Nginx RTMP บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
รันบน Cloud Server ในไทย ทำให้ผู้ชมในประเทศได้ความหน่วงต่ำ
ประหยัดแบนด์วิดท์ขาขึ้นของผู้ถ่ายทอดเพราะส่งขึ้นครั้งเดียวแล้วกระจายต่อ
ใช้ร่วมกับ Cloud CDN เพื่อรองรับผู้ชมจำนวนมาก
คำถามที่พบบ่อยเกี่ยวกับ Nginx RTMP
Nginx RTMP ต่างจาก Owncast อย่างไร
Owncast มีหน้าจอจัดการและหน้าผู้ชมมาให้พร้อม ติดตั้งเสร็จใช้ได้เลย ส่วน Nginx RTMP เป็นเพียงโมดูลที่รับและกระจายสัญญาณ ต้องทำหน้าเว็บเอง แต่เบากว่าและควบคุมได้ละเอียดกว่า
ส่งไปหลายแพลตฟอร์มพร้อมกันได้จริงไหม
ได้และเป็นการใช้งานที่พบบ่อยที่สุด โดยผู้ถ่ายทอดส่งสัญญาณขึ้นเซิร์ฟเวอร์ครั้งเดียว แล้วเซิร์ฟเวอร์ส่งต่อไปยังปลายทางที่กำหนดไว้ทั้งหมด ซึ่งประหยัดแบนด์วิดท์ขาขึ้นของผู้ถ่ายทอดมาก
ความหน่วงเท่าไหร่
รูปแบบที่เบราว์เซอร์เล่นได้โดยตรงมีความหน่วงประมาณสิบถึงสามสิบวินาทีตามค่าที่ตั้ง ถ้าต้องการความหน่วงต่ำมากสำหรับการโต้ตอบ ควรใช้ระบบที่รองรับโปรโตคอลความหน่วงต่ำอย่าง Ant Media แทน
ทางเลือกอื่นที่คล้ายกับ Nginx RTMP
แอปอื่นในหมวด Media และ Streaming
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Nginx RTMP ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด