본딩: 5분 만에 Wi-Fi와 모바일 데이터를 한 방송에

LOLS IRL에서 srtla 본딩을 설정하고, 방송 중에 회선별 표시를 읽고, 네트워크가 처음 죽을 때 어떻게 되는지 알아 두세요.

본딩은 폰에 있는 모든 네트워크로 방송을 한꺼번에 보내요. Wi-Fi가 끊기면 같이 끝나는 방송과, 아무것도 안 만져도 모바일 데이터로 이어지는 방송의 차이예요. 한 번 설정해 두면 그냥 그게 방송을 시작하는 방식이 돼요.

먼저 필요한 것

설정하기

  1. 수신 서버 정보 구하기. 무료 릴레이라면 relay-auth.lols.gg에서 받는 키가 그 정보이고, 키는 처음부터 스트림 ID 형태로 나와요. 직접 운영하는 장비라면 호스트 이름, UDP 포트, 그리고 서버가 요구하는 스트림 ID예요.
  2. Streams를 열고 송출 대상 추가하기. 앱에서 Streams로 가서 +를 탭하고, 프로토콜 칩 세 개 중 SRTLA를 고르세요. SRT는 직접 운영하는 수신 서버로 가는 연결 하나, RTMP는 플랫폼으로 바로 가는 연결, SRTLA는 본딩하는 연결이에요.
  3. 호스트와 포트 입력하기. 릴레이라면 지역 칩을 탭하면 호스트, 포트, 이름이 알아서 채워져요. SIM 국가에서 가장 가까운 지역에는 별이 붙어 있어요. 직접 운영하는 수신 서버라면 공개 호스트 이름과 그 서버가 듣고 있는 UDP 포트를 입력하세요.
  4. 키를 Stream id에 붙여 넣기. 사람들이 가장 많이 틀리는 칸이에요. 릴레이 키에는 이미 publish: 접두어가 들어 있으니, 통째로 Stream id에 붙여 넣으세요. 이름 칸이나 호스트 뒤에 붙이면 안 돼요.
  5. 처음에는 지연 시간을 2000 ms로 두세요. 기본값이고, 무난한 값이에요. 높이면 거친 신호를 더 잘 버티고, 낮추면 지연은 줄지만 유실된 패킷을 다시 보낼 여유가 줄어요. 방송을 시작하면 앱이 실제로 재고 있는 왕복 시간을 보여 주고 거기에 맞는 값을 제안하니까, 지금 짐작하지 말고 나중에 실제 수치로 조정하세요.
  6. 저장하고, 송출 대상이 켜져 있는지 확인하기. 저장만 하고 켜지 않은 송출 대상은 방송이 안 나가는 가장 조용한 방법이에요.
  7. 방송을 시작하고 통계 펼치기. 라이브 화면에서 통계 오버레이를 탭하면 펼쳐져요. 회선마다 한 줄씩 보여야 해요. wifi와 cell이 각자 비트레이트와 왕복 시간을 가지고 있어요. 두 줄이면 본딩이 된 거예요. 한 줄이면 안 된 거고, 아래 실수 목록에 이유가 나와 있어요.

표시 읽는 법

접힌 상태의 오버레이는 상태 점, 비트레이트, 인코더 프레임 레이트, 왕복 시간, 방송한 시간으로 이루어져 있어요. 탭하면 자세한 내용이 열려요:

항목알 수 있는 것
send buffer가장 먼저 움직이는 지표이고, 지켜봐야 하는 값이에요. 버퍼는 화면이 버벅이기 전에 차기 때문에, 값이 오르면 회선이 힘들어하고 있다는 경고이지 이미 실패했다는 보고가 아니에요.
target적응형 비트레이트가 지금 맞추려는 비트레이트예요. 상황에 따라 알아서 내려갔다가 다시 올라와요.
dropped와 retransmit유실된 패킷과 다시 보낸 패킷이에요. 모바일 데이터에서 재전송이 조금 있는 건 정상이고, 드롭 수가 계속 오르는 건 정상이 아니에요.
회선마다 한 줄wifi, cell, eth로 표시되고 각자 비트레이트와 왕복 시간이 있어서, 어느 네트워크가 얼마나 싣고 있는지 보여요.
회선 줄마다 있는 점초록은 활성이고 트래픽을 싣고 있다는 뜻, 주황은 연결 중이거나 멈춤, 빨강은 끊김이에요. 방송이 유지되는데 빨간 줄이 있다면 본딩이 제 할 일을 하는 거예요.
송출 대상마다 한 줄이름이 붙어 있어서, 여러 곳에 보내는 중이라면 어느 쪽이 끊겼고 어디가 멀쩡한지 볼 수 있어요.

회선이 끊기면 어떻게 되나요

별일 없어요, 그게 핵심이에요. 끊긴 회선의 줄이 빨갛게 바뀌고, 남은 회선이 트래픽을 넘겨받고, 방송은 연결된 채로 유지돼요. 네트워크가 돌아오면 그 회선이 수신 서버에 다시 등록하고 스스로 그룹에 합류해요. 멈추거나 다시 시작하거나 아무것도 만질 필요가 없어요.

기대치를 맞춰 둘 게 두 가지 있어요. 첫째, 살아남은 회선이 방송 전체를 실어야 해서, 비트레이트가 좋은 Wi-Fi에서만 돌아갈 수준이었다면 모바일 데이터가 일하는 동안 적응형 비트레이트가 내려가고 그 뒤에 다시 올라와요. 둘째, 본딩은 속도 추가가 아니라 안정성이에요. 회선이 합쳐져서 더 굵은 관이 되는 일은 없어요. 비트레이트를 좋은 회선 하나가 감당할 수준으로 맞추면 넘어가는 순간을 거의 느끼지 못할 거예요.

필요해지기 전에 일부러 테스트해 보세요. 집에서 본딩으로 방송을 시작하고, 통계가 안정될 때까지 기다린 다음 Wi-Fi를 1분 꺼 두고 지켜보세요. wifi 줄이 빨갛게 변하고, cell 줄이 이어받고, Wi-Fi를 다시 켜면 전부 원래대로 돌아오는 걸 볼 수 있어요. 10분만 해 봐도 아무리 읽는 것보다 나아요. 방송 도중에 배우는 것보다 부엌에서 배우는 게 훨씬 좋아요.

첫 시도를 망치는 실수들

내 네트워크 안의 주소를 가리키는 것

가장 큰 실수예요. 192.168.1.50에 있는 수신 서버는 내 Wi-Fi 안에서만 닿고 다른 어디서도 닿지 않아서, 모바일 데이터 회선은 등록되지 못하고 본딩은 안 돼요. 그냥 Wi-Fi로 번거롭게 보내는 셈이에요. 송출 대상은 공개 호스트 이름이나 주소여야 하고, 릴레이, 호스팅한 서버, 또는 공유기에서 내 컴퓨터로 UDP 포트 포워딩을 걸고 공유기의 공개 주소로 접속하는 방법이 있어요. 책상 위 노트북도 같은 규칙이에요.

스트림 ID를 비워 두거나 반만 붙여 넣는 것

수신 서버는 송출하는 쪽을 인증하기 때문에, 스트림 ID가 비었거나 잘려 있으면 연결은 되는데 아무 데도 안 가요. 키는 publish: 접두어까지 통째로 Stream id 칸에 붙여 넣으세요.

비트레이트가 더 나올 거라 기대하는 것

회선 두 개는 합쳐지지 않아요. Wi-Fi만 감당할 수 있는 비트레이트로 설정하면 모바일 데이터가 일하는 순간부터 화질이 나빠 보이고, 본딩이 한 일과 정반대로 본딩 탓을 하게 돼요. 본딩은 방송을 살려 두는 거고, 비트레이트는 별개의 결정이에요.

폰에서 VPN이 켜져 있는 것

VPN은 기기의 모든 소켓을 가로채서 앱이 네트워크마다 소켓을 열 수 없고, 본딩할 게 남지 않아요. 이런 일이 생기면 통계에 그대로 나와요. VPN을 끄거나, VPN 앱 자체 설정에서 LOLS IRL을 제외하세요.

일반 SRT 서버에 srtla를 보내는 것

SRTLA에는 srtla_rec를 돌리는 수신 서버가 필요해요. 회선을 다시 합치는 게 그 프로그램이에요. 일반 SRT 리스너는 그룹 등록을 이해하지 못해요. 릴레이를 쓰거나, 셀프 호스팅 가이드에 나온 대로 SRT 서버 앞에 srtla_rec를 두세요.

지구 반대편의 릴레이를 고르는 것

거리는 되돌릴 수 없는 지연을 만들고, 왕복 시간이 충분히 길면 연결 자체가 안 만들어질 수도 있어요. 가장 가까운 지역을 고르세요. 앱이 SIM 국가에 맞는 지역에 별을 붙여 줘요.

잘 돌아가기 시작하면

다음: 무료 릴레이 쓰기