GN⁺: Broadcast Box - 120ms 지연 시간의 OBS 라이브 스트리밍
(github.com/Glimesh)- Broadcast Box는 초저지연으로 방송을 할 수 있게 해주는 도구
- 사용이 간편하고 수정이 용이하도록 설계되었음. 최신 방송 기술을 보여주기 위해 개발
- WebRTC를 사용하는 것의 장점
- 초저지연 : RTMP와 HLS 대신 WebRTC로 방송과 재생을 처리
- 최신 비디오 코덱을 사용할 수 있음. AV1 코덱을 사용하면 동일한 비디오 품질을 50% 적은 대역폭으로 전송할 수 있음
- 동일한 세션에서 여러 비디오 스트림을 업로드할 수 있음. 여러 카메라 각도에서 방송하거나 실시간으로 인터랙티브 비디오 경험을 공유할 수 있음
- 좋은 사용자 경험을 제공하려면 트랜스코드가 필요함. WebRTC를 사용하면 사용자가 다양한 품질 수준으로 동일한 비디오를 업로드할 수 있어 서버 운영 비용을 절감할 수 있음
- WebRTC를 통해 누구나 방송자가 될 수 있음. Broadcast Box를 사용하면 OBS 같은 방송 소프트웨어를 사용할 수 있음. 브라우저에서 직접 방송을 시작할 수 있어 초보자도 쉽게 라이브 스트리밍을 시작할 수 있음.
- 필요할 때 Peer-to-Peer : Broadcast Box를 사용하면 공용 IP나 포트 포워딩 없이 비디오를 제공할 수 있음. WebRTC의 P2P 기술을 통해 전용 서버 없이도 비디오를 방송하고 재생할 수 있음.
- 사용법
- Broadcast Box를 로컬에서 실행할 필요 없이 호스팅된 b.siobud.com 에서 바로 사용할 수 있음
- 로컬에서 실행하려면 Getting Started 섹션을 참조
GN⁺의 정리
- Broadcast Box는 초저지연 방송을 가능하게 하는 도구로, WebRTC를 사용하여 빠르고 효율적인 방송 경험을 제공함
- 초보자도 쉽게 사용할 수 있도록 설계되어 있으며, 다양한 환경에서 유연하게 사용할 수 있음
- 방송 기술의 최신 트렌드를 반영하고 있어, 방송 업계에 관심 있는 사람들에게 유용할 것임
- 유사한 기능을 제공하는 프로젝트로는 OBS, GStreamer 등이 있음.
Hacker News 의견
-
Broadcast Box를 OBS 테스트용 서버로 만들었음
- WebRTC/WHIP PR 테스트가 쉬워졌음
- 사람들이 사용하면서 이점과 흥미를 더 느끼게 됨
-
저지연은 시청자와의 관계를 의미함
- 친밀한 방송이 새로운 매체가 됨
-
동시 송출은 스트리밍 사이트 운영 비용을 절감함
- 서버 측에서 ffmpeg/트랜스코딩을 실행할 필요가 없음
-
AV1/H265/Opus는 낮은 대역폭 사용자도 방송 가능하게 함
- 충분한 대역폭 사용자도 이전보다 높은 품질로 스트리밍 가능
-
UDP는 IRL/로밍 스트림을 가능하게 함
- 재연결을 위한 맞춤 설정이 필요 없음
-
멀티 트랙은 여러 비디오 피드나 언어를 동시에 전송 가능하게 함
-
종단간 암호화는 P2P 배포를 가능하게 함
-
이 프로젝트에 관심 있는 사람들은 Cloudflare의 WebRTC 스트리밍 서비스도 흥미로울 수 있음
- WHIP을 사용한 초저지연 라이브 스트리밍과 WHEP을 사용한 재생
- OBS WHIP 플러그인을 사용하여 Cloudflare로 바로 연결 가능
- 가격 모델은 1000분당 $1, 시간당 $0.06에 해당함
-
라이브 스트리밍이 왜 선호되는지에 대한 메타 질문
- 라이브 스트리밍은 여러 단점이 있음
- 실시간 참여 필요
- 편집 불가 (시청자 시간 비효율적 사용)
- 클라이언트 측에서 속도 조절/불필요한 부분 건너뛰기 불가
- 인덱스나 목차 불가
- 라이브 스트리밍은 여러 단점이 있음
-
Broadcast Box는 WebRTC를 사용하여 방송과 재생을 수행함
- RTMP와 HLS 대신 WebRTC를 사용하여 가장 빠른 경험 제공
- RTMP는 저지연을 달성하는 데 문제가 없음, 소프트웨어 스택이 지연을 결정함
- HLS는 내재된 결함으로 인해 추가 지연 발생
-
이 기능이 제대로 작동하면 매우 만족할 것임
- 인터넷을 통해 RPG를 함께 플레이하는 것이 1초 이상의 지연이 있으면 재미없음
- 저지연 P2P 스트리밍 솔루션을 찾았으나 OBS만으로는 문제 발생
- 이 사용 사례를 포함해줘서 감사함
-
WebRTC를 100k+ 클라이언트에 배포하는 최신 기술 상태
- 몇 년 전 저지연 스트리밍 분야에 있었을 때 WebRTC는 1초 미만의 지연을 달성했으나, 실제로 배포할 인프라는 부족했음
- Cloudflare와 다른 벤더들이 표준을 만들고 있었음
- 수평적으로 확장 가능한 WebRTC 방송기를 운영할 수 있는지 궁금함 (오픈 소스 구현이 있는지)
- 저지연 HLS나 CMAF는 5초 미만의 지연을 달성했으나, 배포는 매우 쉬웠음 (정적 파일을 CDN/http 서버에 배포)
-
Jitsi로 가족과 대화할 때 항상 문제가 발생함
- 화면을 볼 수 없거나, 저해상도로 보이거나, 카메라가 켜져 있어도 보이지 않거나, 모두 연결이 끊어짐
- Broadcast Box가 OBS Studio를 사용하여 스트리밍할 수 있는지 궁금함 (독점 서버에 의존하지 않고)
- 100k+ 클라이언트가 필요하지 않음, 2-4 클라이언트 간의 안정적인 연결만 필요함
- NAT 외부에서 서버를 운영할 수 있음
- 120ms 지연은 불가능함, 아르헨티나에 있고 대부분 미국에 있어 인터넷을 통해 미국까지 200ms 이상의 지연이 있음
- Broadcast Box가 원하는 것이 아니라면 다른 대안이 있는지 궁금함
- Zoom, Google, Teams는 이미 알고 있음, 그러나 독점 서버에 취약함
-
README에서 다음 문구를 봄
- "P2P를 사용하여 다른 방송자를 스트림에 끌어올 수 있음. 더 이상 특별한 설정이나 서버가 필요 없음"
- 친구와 공동 스트림을 위해 현재 설정이 있음
- 친구가 OBS로 게임 플레이를 캡처함
- 친구가 OBS를 내 집에 있는 Raspberry Pi로 스트리밍함
- Raspberry Pi가 RTMP 스트림을 수락하도록 nginx를 실행함
- 다른 기기에서 OBS를 실행하여 내 게임 플레이를 캡처하고 오버레이 추가함
- 내 OBS가 Raspberry Pi에서 스트림을 캡처하기 위해 VLC를 입력 소스로 사용함
- 설정이 끔찍함, 비디오가 지연되고 자주 멈춤
- 이 프로젝트를 살펴보고 싶지만 README를 읽고 나서도 설정 방법이 불분명함
- 조언이 필요함
-
비디오 방송 지연에 익숙하지 않은 사람으로서, 다른 대안과 비교했을 때 어떤지 궁금함
- 120ms 측정을 달성하기 위해 사용된 하드웨어 사양이 궁금함
-
몇 년 동안 OvenMediaEngine을 사용해왔음
- 이와 같은 기능을 제공하지만, 이 프로젝트도 유망해 보임
- 시도해볼 것임