원문 캡처 · pion.ly
원문 캡처 · pion.ly

조건이 맞으면 영상 화질을 유지하면서 전송률을 15% 낮출 수 있다는 결과가 나왔다. Big Buck Bunny 영상을 여러 전송률과 키프레임 간격으로 다시 인코딩한 실험에서 얻은 수치다.

션 두부아(Sean DuBois)는 영상 송출 프로그램 OBS의 동기화와 지연 시간을 개선하려는 변경안에서 전송률을 낮출 가능성을 발견했다. 시청자가 키프레임을 요청할 수 있는 WHIP 방식의 영상 송출을 염두에 둔 내용이다. 생방송을 송출하거나 서버를 운영한다면, 키프레임 간격을 늘리고 서버가 필요할 때 요청하는 방식이 어떤 조건에서 유효한지 살펴볼 만하다.

WHIP는 어떤 역할을 하나

WHIP는 WebRTC를 이용해 영상과 음성을 서버로 보내는 방식이다. 기존의 RTMP는 TCP 연결로 FLV 형식의 미디어를 전송하는 데 널리 쓰인다. 키프레임은 영상의 한 장면을 독립적으로 복원하는 기준 프레임이고, 프레임 간 압축은 앞선 장면과 달라진 정보만 보내 데이터량을 줄인다. 키프레임 간격을 일정하게 두는 방식은 시청자가 새로 들어왔을 때 영상을 보기 시작하는 시점에도 영향을 준다.

키프레임 요청으로 무엇이 달라지나

션 두부아가 주목한 것은 OBS 변경안의 부수 효과다. 기존에는 보통 2초 간격으로 키프레임을 보내므로, 중간 장면에서 시청을 시작한 사람은 다음 키프레임이 올 때까지 기다려야 영상을 디코딩할 수 있다. 변경안은 시청자가 원할 때 키프레임을 요청할 수 있게 해 새 시청자가 더 빨리 재생을 시작하도록 한다.

키프레임은 화면이 거의 바뀌지 않아도 주기적으로 전송된다. 팩맨 그림에서 팩맨이 움직이지 않는 동안 같은 그림을 계속 보내는 상황을 떠올리면 쉽다. 실제 영상 압축에서는 키프레임 간격을 길게 하면 전송할 데이터가 줄 수 있지만, 새 시청자가 영상을 보기 시작할 때는 키프레임을 기다릴 수 있다.

두부아는 Big Buck Bunny를 서로 다른 전송률과 키프레임 간격으로 다시 인코딩해 결과를 비교했다. 그는 조건이 맞으면 OBS 사용자가 같은 화질에서 전송률을 15% 줄이거나, 전송률을 유지한 채 화질을 높일 수 있다고 봤다.

WHIP 서버는 키프레임을 어떻게 요청하나

WHIP는 수신 서버가 패킷 손실 여부 등 스트림 상태를 송신 측에 알려주는 피드백을 제공한다. 이 피드백을 활용하면 키프레임 간격을 길게 설정하고 필요할 때 요청할 수 있다.

예를 들어 OBS의 키프레임 간격을 30초로 설정할 수 있다. 새 시청자가 들어오면 WHIP 서버가 OBS에 PLI(Picture Loss Indication, 키프레임 요청 신호)를 보내 키프레임을 요청한다. 두부아가 제안한 방식대로라면 새 시청자는 빠르게 재생을 시작하고, 계속 시청하는 사람에게는 키프레임 전송을 줄일 수 있다.

적용하려면 어떤 제약을 봐야 하나

키프레임 요청은 즉시 처리되지 않는다. 인터넷이나 서버가 느리면 요청에 따른 대기가 고정 간격보다 길어질 수 있다. 시청자가 많을 때 요청이 계속 발생할 수도 있으므로, 서버는 PLI 요청의 최소 간격을 정해야 한다.

키프레임 간격이 길면 HLS(HTTP Live Streaming)와 녹화에도 영향이 간다. 저장된 영상에서 탐색할 때 더 오래 기다릴 수 있다. 두부아는 Broadcast Box로 실제 성능을 시험해 볼 계획이라고 밝혔다.

시험해 보려면 키프레임 간격과 PLI 요청 간격을 함께 확인하고, 시청자 수와 네트워크·서버 상태, HLS 송출 및 녹화에서의 탐색 동작도 살펴야 한다. 원문은 15% 수치의 화질 측정 기준과 실험 세부 조건을 밝히지 않으며, Broadcast Box에서 실제로 시험한 결과도 아직 제시하지 않는다.