23 คะแนน โดย GN⁺ 2024-09-05 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • Broadcast Box เป็นเครื่องมือที่ช่วยให้สามารถถ่ายทอดสดได้ด้วยความหน่วงต่ำมาก
  • ออกแบบมาให้ใช้งานง่ายและแก้ไขปรับแต่งได้สะดวก พัฒนาขึ้นเพื่อแสดงให้เห็นเทคโนโลยีการถ่ายทอดสดสมัยใหม่
  • ข้อดีของการใช้ WebRTC
    • ความหน่วงต่ำมาก: ประมวลผลการถ่ายทอดและการเล่นด้วย WebRTC แทน RTMP และ HLS
    • สามารถใช้วิดีโอ codec รุ่นใหม่ได้ หากใช้ codec AV1 จะส่งวิดีโอด้วยคุณภาพเท่าเดิมโดยใช้แบนด์วิดท์น้อยลง 50%
    • สามารถอัปโหลดวิดีโอสตรีมหลายรายการในเซสชันเดียวกันได้ สามารถถ่ายทอดจากหลายมุมกล้องหรือแชร์ประสบการณ์วิดีโอแบบอินเทอร์แอ็กทีฟแบบเรียลไทม์ได้
    • การมอบประสบการณ์ผู้ใช้ที่ดีจำเป็นต้องมีการทรานส์โค้ด เมื่อใช้ WebRTC ผู้ใช้สามารถอัปโหลดวิดีโอเดียวกันในหลายระดับคุณภาพได้ จึงช่วยลดต้นทุนการดูแลเซิร์ฟเวอร์
    • ใครก็สามารถเป็นผู้ถ่ายทอดได้ผ่าน WebRTC เมื่อใช้ Broadcast Box ก็สามารถใช้ซอฟต์แวร์ถ่ายทอดอย่าง OBS ได้ และยังเริ่มถ่ายทอดสดได้จากเบราว์เซอร์โดยตรง ทำให้ผู้เริ่มต้นก็เริ่มไลฟ์สตรีมได้ง่าย
    • Peer-to-Peer เมื่อจำเป็น: เมื่อใช้ Broadcast Box สามารถส่งวิดีโอได้โดยไม่ต้องมี public IP หรือ port forwarding ด้วยเทคโนโลยี P2P ของ WebRTC จึงสามารถถ่ายทอดและเล่นวิดีโอได้โดยไม่ต้องมีเซิร์ฟเวอร์เฉพาะ
  • วิธีใช้งาน
    • สามารถใช้งานได้ทันทีที่ b.siobud.com ซึ่งโฮสต์ไว้แล้ว โดยไม่จำเป็นต้องรัน Broadcast Box บนเครื่องตนเอง
    • หากต้องการรันในเครื่อง ให้ดูส่วน Getting Started

สรุปโดย GN⁺

  • Broadcast Box เป็นเครื่องมือที่ทำให้การถ่ายทอดสดแบบความหน่วงต่ำมากเป็นไปได้ โดยใช้ WebRTC เพื่อมอบประสบการณ์การถ่ายทอดที่รวดเร็วและมีประสิทธิภาพ
  • ออกแบบมาให้แม้แต่มือใหม่ก็ใช้งานได้ง่าย และสามารถใช้งานได้อย่างยืดหยุ่นในหลากหลายสภาพแวดล้อม
  • สะท้อนเทรนด์ล่าสุดของเทคโนโลยีการถ่ายทอดสด จึงน่าจะเป็นประโยชน์สำหรับผู้ที่สนใจในอุตสาหกรรมการถ่ายทอดสด
  • โครงการที่มีฟีเจอร์คล้ายกันได้แก่ OBS, GStreamer เป็นต้น

2 ความคิดเห็น

 
roxie 2024-09-09

สตรีมได้เสถียรจริง ๆ ภายในไม่ถึง 3 วินาทีเลยนะ กระแส webRTC กำลังมา..

 
GN⁺ 2024-09-05
ความเห็นจาก Hacker News
  • สร้าง Broadcast Box ให้เป็นเซิร์ฟเวอร์ทดสอบสำหรับ OBS

    • ทำให้ทดสอบ WebRTC/WHIP PR ได้ง่ายขึ้น
    • เมื่อมีคนใช้งาน ก็ยิ่งเห็นประโยชน์และความน่าสนใจมากขึ้น
  • ความหน่วงต่ำหมายถึงความสัมพันธ์กับผู้ชม

    • การถ่ายทอดที่ใกล้ชิดกลายเป็นสื่อรูปแบบใหม่
  • การส่งสตรีมพร้อมกันหลายปลายทางช่วยลดต้นทุนในการดำเนินงานของเว็บไซต์สตรีมมิง

    • ไม่จำเป็นต้องรัน ffmpeg/ทรานส์โค้ดบนฝั่งเซิร์ฟเวอร์
  • AV1/H265/Opus ทำให้ผู้ใช้ที่มีแบนด์วิดท์ต่ำก็สามารถถ่ายทอดสดได้

    • ผู้ใช้ที่มีแบนด์วิดท์เพียงพอก็สามารถสตรีมด้วยคุณภาพที่สูงกว่าเดิมได้เช่นกัน
  • UDP ทำให้สตรีม IRL/roaming เป็นไปได้

    • ไม่ต้องมีการตั้งค่าเฉพาะสำหรับการเชื่อมต่อใหม่
  • มัลติแทร็กทำให้สามารถส่งฟีดวิดีโอหลายรายการหรือหลายภาษาได้พร้อมกัน

  • การเข้ารหัสแบบ end-to-end ทำให้การกระจายแบบ P2P เป็นไปได้

  • ผู้ที่สนใจโปรเจกต์นี้อาจสนใจบริการสตรีมมิง WebRTC ของ Cloudflare ด้วย

    • สตรีมสดแบบหน่วงต่ำมากโดยใช้ WHIP และเล่นกลับด้วย WHEP
    • สามารถใช้ปลั๊กอิน OBS WHIP เพื่อเชื่อมต่อไปยัง Cloudflare ได้โดยตรง
    • โมเดลราคาอยู่ที่ $1 ต่อ 1000 นาที หรือเทียบเท่า $0.06 ต่อชั่วโมง
  • คำถามเชิงเมตาว่าทำไมไลฟ์สตรีมจึงเป็นที่นิยม

    • ไลฟ์สตรีมมีข้อเสียหลายอย่าง
      • ต้องเข้าร่วมแบบเรียลไทม์
      • แก้ไขไม่ได้ (ใช้เวลาผู้ชมอย่างไม่มีประสิทธิภาพ)
      • ฝั่งไคลเอนต์ไม่สามารถปรับความเร็ว/ข้ามส่วนที่ไม่จำเป็นได้
      • ทำดัชนีหรือสารบัญไม่ได้
  • Broadcast Box ใช้ WebRTC สำหรับทั้งการถ่ายทอดและการเล่นกลับ

    • ใช้ WebRTC แทน RTMP และ HLS เพื่อมอบประสบการณ์ที่เร็วที่สุด
    • RTMP ไม่มีปัญหาโดยเนื้อแท้ในการทำให้เกิดความหน่วงต่ำ ซอฟต์แวร์สแตกเป็นตัวกำหนดความหน่วง
    • HLS มีความหน่วงเพิ่มเติมจากข้อจำกัดโดยธรรมชาติของมัน
  • ถ้าฟีเจอร์นี้ทำงานได้ดีจริงจะน่าพอใจมาก

    • การเล่น RPG ร่วมกันผ่านอินเทอร์เน็ตจะไม่สนุกถ้ามีความหน่วงเกิน 1 วินาที
    • เคยมองหาโซลูชันสตรีมแบบ P2P หน่วงต่ำ แต่ใช้แค่ OBS แล้วเกิดปัญหา
    • ขอบคุณที่ใส่กรณีการใช้งานนี้ไว้
  • สถานะล่าสุดของเทคโนโลยีการกระจาย WebRTC ไปยังไคลเอนต์ 100k+ ราย

    • ตอนที่เคยอยู่ในวงการสตรีมหน่วงต่ำเมื่อหลายปีก่อน WebRTC ทำความหน่วงต่ำกว่า 1 วินาทีได้ แต่ยังขาดโครงสร้างพื้นฐานสำหรับนำไปใช้งานจริง
    • Cloudflare และผู้ให้บริการรายอื่นกำลังสร้างมาตรฐานกันอยู่
    • สงสัยว่าสามารถรันตัวกระจายสัญญาณ WebRTC ที่สเกลแนวนอนได้หรือไม่ (มี implementation โอเพนซอร์สหรือเปล่า)
    • low-latency HLS หรือ CMAF ทำความหน่วงต่ำกว่า 5 วินาทีได้ แต่ deploy ได้ง่ายมาก (แจกจ่ายไฟล์สแตติกไปยัง CDN/http server)
  • เวลาคุยกับครอบครัวผ่าน Jitsi มักมีปัญหาเสมอ

    • บางทีก็มองไม่เห็นหน้าจอ หรือเห็นด้วยความละเอียดต่ำ หรือแม้เปิดกล้องอยู่ก็ยังไม่เห็น หรือไม่ก็หลุดกันหมด
    • สงสัยว่า Broadcast Box จะสตรีมผ่าน OBS Studio ได้ไหม (โดยไม่ต้องพึ่งเซิร์ฟเวอร์แบบ proprietary)
    • ไม่จำเป็นต้องรองรับไคลเอนต์ 100k+ แค่ต้องการการเชื่อมต่อที่เสถียรระหว่างไคลเอนต์ 2-4 ราย
    • สามารถรันเซิร์ฟเวอร์นอก NAT ได้
    • ความหน่วง 120ms เป็นไปไม่ได้ เพราะอยู่ที่อาร์เจนตินา และส่วนใหญ่อีกฝั่งอยู่ในสหรัฐฯ ซึ่งมีความหน่วงผ่านอินเทอร์เน็ตไปถึงสหรัฐฯ มากกว่า 200ms
    • ถ้า Broadcast Box ไม่ใช่สิ่งที่ต้องการ ก็สงสัยว่ามีทางเลือกอื่นหรือไม่
    • รู้จัก Zoom, Google, Teams อยู่แล้ว แต่แพลตฟอร์มเหล่านั้นเปราะบางต่อการพึ่งพาเซิร์ฟเวอร์แบบ proprietary
  • เห็นข้อความต่อไปนี้ใน README

    • "คุณสามารถใช้ P2P เพื่อดึงผู้ถ่ายทอดคนอื่นขึ้นมาบนสตรีมได้ ไม่ต้องมีการตั้งค่าพิเศษหรือเซิร์ฟเวอร์อีกต่อไป"
    • ตอนนี้มีชุดการตั้งค่าสำหรับทำสตรีมร่วมกับเพื่อน
      • เพื่อนใช้ OBS จับภาพการเล่นเกม
      • เพื่อนสตรีมจาก OBS ไปยัง Raspberry Pi ที่บ้านของฉัน
      • Raspberry Pi รัน nginx เพื่อรับ RTMP stream
      • รัน OBS บนอุปกรณ์อีกเครื่องเพื่อจับภาพการเล่นเกมของฉันและเพิ่ม overlay
      • OBS ของฉันใช้ VLC เป็นแหล่งอินพุตเพื่อดึงสตรีมจาก Raspberry Pi
    • ชุดการตั้งค่านี้แย่มาก วิดีโอดีเลย์และค้างบ่อย
    • อยากลองดูโปรเจกต์นี้ แต่แม้อ่าน README แล้วก็ยังไม่ชัดเจนว่าต้องตั้งค่าอย่างไร
    • ต้องการคำแนะนำ
  • ในฐานะคนที่ไม่คุ้นกับความหน่วงของการถ่ายทอดวิดีโอ จึงสงสัยว่าเมื่อเทียบกับทางเลือกอื่นแล้วเป็นอย่างไร

    • อยากรู้สเปกฮาร์ดแวร์ที่ใช้เพื่อให้ได้ตัวเลข 120ms นี้
  • ใช้ OvenMediaEngine มาหลายปีแล้ว

    • มันมีฟีเจอร์คล้ายกัน แต่โปรเจกต์นี้ก็ดูน่าสนใจเช่นกัน
    • จะลองใช้งานดู