23 điểm bởi GN⁺ 2024-09-05 | 2 bình luận | Chia sẻ qua WhatsApp
  • Broadcast Box là công cụ giúp phát sóng với độ trễ siêu thấp
  • Được thiết kế để dễ sử dụng và dễ chỉnh sửa. Được phát triển nhằm trình diễn công nghệ phát sóng mới nhất
  • Ưu điểm của việc sử dụng WebRTC
    • Độ trễ siêu thấp: xử lý phát sóng và phát lại bằng WebRTC thay vì RTMP và HLS
    • Có thể sử dụng các codec video mới nhất. Nếu dùng codec AV1, có thể truyền cùng chất lượng video với băng thông ít hơn 50%
    • Có thể tải lên nhiều luồng video trong cùng một phiên. Có thể phát sóng từ nhiều góc máy hoặc chia sẻ trải nghiệm video tương tác theo thời gian thực
    • Để mang lại trải nghiệm người dùng tốt, cần có chuyển mã. Với WebRTC, người dùng có thể tải lên cùng một video ở nhiều mức chất lượng khác nhau, giúp giảm chi phí vận hành máy chủ
    • Bất kỳ ai cũng có thể trở thành người phát sóng thông qua WebRTC. Với Broadcast Box, có thể sử dụng phần mềm phát sóng như OBS. Có thể bắt đầu phát sóng trực tiếp ngay từ trình duyệt nên ngay cả người mới cũng dễ dàng bắt đầu livestream.
    • Peer-to-Peer khi cần: với Broadcast Box, có thể cung cấp video mà không cần IP công cộng hay port forwarding. Nhờ công nghệ P2P của WebRTC, có thể phát và xem video mà không cần máy chủ chuyên dụng.
  • Cách sử dụng
    • Có thể dùng ngay trên b.siobud.com được host sẵn mà không cần chạy Broadcast Box cục bộ
    • Nếu muốn chạy cục bộ, hãy tham khảo phần Getting Started

Tổng hợp của GN⁺

  • Broadcast Box là công cụ cho phép phát sóng độ trễ siêu thấp, mang lại trải nghiệm phát sóng nhanh và hiệu quả nhờ sử dụng WebRTC
  • Được thiết kế để cả người mới bắt đầu cũng có thể dễ dùng, đồng thời linh hoạt trong nhiều môi trường khác nhau
  • Dự án phản ánh những xu hướng mới nhất của công nghệ phát sóng, nên sẽ hữu ích với những ai quan tâm đến ngành phát sóng
  • Các dự án cung cấp tính năng tương tự gồm có OBS, GStreamer, v.v.

2 bình luận

 
roxie 2024-09-09

Đúng là có thể stream ổn định dưới 3 giây thật. Cơn sốt WebRTC rồi sẽ đến..

 
GN⁺ 2024-09-05
Ý kiến trên Hacker News
  • Đã biến Broadcast Box thành máy chủ thử nghiệm OBS

    • Việc thử nghiệm PR WebRTC/WHIP đã trở nên dễ dàng hơn
    • Khi mọi người sử dụng, họ cảm nhận rõ hơn lợi ích và sự thú vị
  • Độ trễ thấp đồng nghĩa với mối quan hệ với người xem

    • Các buổi phát sóng thân mật trở thành một loại hình truyền thông mới
  • Phát đồng thời giúp giảm chi phí vận hành của các trang web streaming

    • Không cần chạy ffmpeg/transcoding ở phía máy chủ
  • AV1/H265/Opus cho phép cả người dùng băng thông thấp cũng có thể phát sóng

    • Người dùng có đủ băng thông cũng có thể stream với chất lượng cao hơn trước
  • UDP giúp thực hiện các luồng IRL/roaming

    • Không cần cấu hình tùy chỉnh để reconnect
  • Multi-track cho phép truyền đồng thời nhiều video feed hoặc ngôn ngữ

  • Mã hóa đầu cuối cho phép phân phối P2P

  • Những ai quan tâm đến dự án này cũng có thể thấy dịch vụ streaming WebRTC của Cloudflare thú vị

    • Live streaming siêu độ trễ thấp bằng WHIP và phát lại bằng WHEP
    • Có thể kết nối trực tiếp tới Cloudflare bằng plugin OBS WHIP
    • Mô hình giá là $1 cho mỗi 1000 phút, tương đương $0.06 mỗi giờ
  • Một câu hỏi mang tính meta về lý do vì sao live streaming được ưa chuộng

    • Live streaming có nhiều nhược điểm
      • Cần tham gia theo thời gian thực
      • Không thể chỉnh sửa (sử dụng thời gian của người xem kém hiệu quả)
      • Phía client không thể chỉnh tốc độ hoặc bỏ qua phần không cần thiết
      • Không thể có chỉ mục hoặc mục lục
  • Broadcast Box sử dụng WebRTC để phát sóng và phát lại

    • Dùng WebRTC thay vì RTMP và HLS để mang lại trải nghiệm nhanh nhất
    • RTMP không gặp vấn đề trong việc đạt độ trễ thấp, độ trễ do software stack quyết định
    • HLS phát sinh thêm độ trễ do các khiếm khuyết cố hữu
  • Nếu tính năng này hoạt động đúng cách thì sẽ rất hài lòng

    • Chơi RPG cùng nhau qua Internet sẽ mất vui nếu độ trễ vượt quá 1 giây
    • Đã tìm giải pháp streaming P2P độ trễ thấp nhưng chỉ với OBS thì gặp vấn đề
    • Cảm ơn vì đã đưa trường hợp sử dụng này vào
  • Tình trạng công nghệ hiện tại để triển khai WebRTC cho 100k+ client

    • Khi còn làm trong lĩnh vực streaming độ trễ thấp vài năm trước, WebRTC đạt được độ trễ dưới 1 giây nhưng thiếu hạ tầng để triển khai thực tế
    • Cloudflare và các nhà cung cấp khác đang xây dựng tiêu chuẩn
    • Thắc mắc liệu có thể vận hành một broadcaster WebRTC mở rộng theo chiều ngang hay không (có triển khai mã nguồn mở nào không)
    • Low-latency HLS hoặc CMAF đạt độ trễ dưới 5 giây nhưng triển khai rất dễ (phân phối file tĩnh lên CDN/http server)
  • Khi nói chuyện với gia đình qua Jitsi thì luôn gặp vấn đề

    • Không nhìn thấy màn hình, hoặc chỉ thấy ở độ phân giải thấp, hoặc camera bật mà vẫn không hiện, hoặc mọi người đều bị ngắt kết nối
    • Thắc mắc Broadcast Box có thể stream bằng OBS Studio hay không (mà không phụ thuộc vào máy chủ độc quyền)
    • Không cần 100k+ client, chỉ cần kết nối ổn định giữa 2-4 client
    • Có thể vận hành máy chủ bên ngoài NAT
    • Độ trễ 120ms là không thể, đang ở Argentina còn đa số ở Mỹ nên riêng đường truyền qua Internet tới Mỹ đã có độ trễ hơn 200ms
    • Nếu Broadcast Box không phải thứ mình cần thì không biết có lựa chọn thay thế nào khác không
    • Đã biết Zoom, Google, Teams rồi, nhưng chúng dễ bị phụ thuộc vào máy chủ độc quyền
  • Thấy câu sau trong README

    • "Bạn có thể dùng P2P để kéo các broadcaster khác lên stream. Không còn cần cấu hình đặc biệt hay máy chủ nữa"
    • Hiện có một thiết lập để co-stream với bạn bè
      • Bạn của tôi dùng OBS để capture gameplay
      • Bạn tôi stream từ OBS tới Raspberry Pi ở nhà tôi
      • Raspberry Pi chạy nginx để nhận luồng RTMP
      • Tôi chạy OBS trên thiết bị khác để capture gameplay của mình và thêm overlay
      • OBS của tôi dùng VLC làm input source để lấy stream từ Raspberry Pi
    • Thiết lập này rất tệ, video bị trễ và thường xuyên đứng hình
    • Muốn xem kỹ dự án này, nhưng ngay cả sau khi đọc README vẫn chưa rõ phải thiết lập thế nào
    • Cần lời khuyên
  • Là người không quen với độ trễ trong video broadcasting, tôi muốn biết so với các lựa chọn khác thì nó như thế nào

    • Muốn biết cấu hình phần cứng đã dùng để đạt phép đo 120ms
  • Đã dùng OvenMediaEngine trong nhiều năm

    • Nó cung cấp các tính năng tương tự, nhưng dự án này cũng có vẻ đầy hứa hẹn
    • Sẽ thử dùng