스트리밍 플랫폼은 다양한 디바이스와 네트워크 조건에서 수백만 명의 동시 시청자를 수용할 수 있도록 확장되므로 효율적인 적응형 비트레이트(ABR) 스트리밍이 필수적입니다. 이 블로그 게시물에서는 구현 세부 사항과 성능 최적화에 초점을 맞춰 클라이언트 측에서 서버 측 ABR로 전환하는 기술적 측면을 살펴봅니다.
적응형 비트레이트 스트리밍 기본 사항
적응형 비트레이트 스트리밍은 정확히 어떻게 작동하나요? 각 단계를 살펴보겠습니다. 먼저 동영상 콘텐츠를 여러 비트레이트(예: 500kbps, 1Mbps, 2Mbps 등)로 인코딩하고 이러한 다양한 렌더링을 저장하여 준비합니다.
매니페스트 파일(예: HLS용 M3U8 또는 DASH용 MPD)에는 사용 가능한 다양한 비트 전송률 스트림에 대한 정보가 포함되어 있습니다.
사용자가 재생을 시작하면 클라이언트 디바이스는 매니페스트 파일을 다운로드하여 사용 가능한 비트레이트 옵션을 확인합니다. 클라이언트는 빠른 시작을 위해 일반적으로 낮은 비트레이트로 시작하는 초기 비트레이트를 선택합니다.
동영상이 재생되는 동안 클라이언트 디바이스는 네트워크 상태와 내부 버퍼 수준을 지속적으로 모니터링합니다. 네트워크 대역폭이 제한되면 클라이언트는 리버퍼링을 방지하기 위해 더 낮은 비트레이트 청크를 요청합니다. 반대로 대역폭이 개선되면 클라이언트는 비디오 품질 향상을 위해 더 높은 비트레이트 청크를 요청합니다. 이러한 비트레이트 전환은 업데이트된 비트레이트 수준에서 새 비디오 세그먼트를 요청하는 방식으로 이루어집니다.
기존 적응형 비트레이트 스트리밍(클라이언트 측 ABR)의 과제
전통적으로 ABR 스트리밍은 클라이언트 측에서 관리되어 왔으며, 동영상을 재생하는 디바이스가 사용할 최적의 비트레이트를 결정합니다. 하지만 이 접근 방식에는 몇 가지 문제가 있습니다. 첫째, 클라이언트 디바이스는 처리 능력이 매우 다양합니다. 구형 휴대폰은 동영상 화질을 지속적으로 조정하는 데 필요한 모든 컴퓨팅을 최신 최고급 모델만큼 원활하게 처리하지 못할 수 있습니다. 그렇기 때문에 휴대폰으로 프로그램을 시청할 때 가끔 동영상 화질이 변동될 수 있습니다.
또 다른 문제는 단시간 내에도 인터넷 연결 상태가 달라질 수 있다는 점입니다. 디바이스는 이러한 변화에 지속적으로 적응해야 하므로 화질이 눈에 띄게 떨어지거나 해상도가 자주 전환되어 시청 환경이 매우 불안정해질 수 있습니다. 특히 인터넷이 불안정한 지역에 거주하는 경우 버퍼링이나 화질 저하가 많이 발생할 수 있습니다.
지연 시간 문제도 있습니다. 디바이스가 연결이 변경된 것을 인식하는 데 지연이 발생하면 비트레이트가 충분히 빠르게 조정되지 않아 멈추거나 갑자기 화질이 저하될 수 있습니다.
마지막으로, 이러한 지속적인 조정과 잠재적인 비효율성으로 인해 필요 이상으로 많은 데이터를 사용할 수 있습니다. 이는 제한된 모바일 데이터 요금제를 사용하는 사용자에게는 심각한 문제가 될 수 있습니다.
서버 측 ABR로 이러한 문제를 해결하는 방법
이러한 문제를 해결하기 위해 클라이언트 측에서 적절한 비트레이트 선택을 결정하는 대신 SSABR은 서버 측에서 선택을 수행합니다.
서버 측 적응형 비트레이트 스트리밍의 작동 방식은 다음과 같습니다. 먼저 클라이언트가 매니페스트 파일에 대한 HTTP GET 요청을 보냅니다. 요청에는 클라이언트 메타데이터(예: 디바이스 유형, 화면 해상도, 지원되는 코덱)가 포함됩니다. 그런 다음 서버는 요청 헤더에서 클라이언트 메타데이터를 구문 분석하고 몇 가지 분석(현재 CDN 부하, 클라이언트와의 지리적 거리, 유사한 클라이언트에 대한 과거 성능 등)을 수행합니다. 그런 다음 서버는 클라이언트의 기능 및 현재 네트워크 상태에 맞는 맞춤형 매니페스트 파일을 생성하고 클라이언트에 적합하다고 판단되는 비트레이트만 포함합니다. 그런 다음 서버는 사용 가능한 대역폭(RTT 및 처리량으로 추정), 콘텐츠 복잡성(I-프레임 크기, 모션 벡터), 클라이언트 버퍼 수준(실시간 피드백을 통해 보고됨)을 기준으로 최적의 비트레이트를 선택합니다. 다음으로 서버는 선택한 비트레이트로 인코딩된 비디오 세그먼트를 클라이언트 디바이스에 전달하고, 클라이언트 디바이스는 이를 디코딩하여 재생합니다. 마지막으로 서버는 네트워크 상태와 시청자 디바이스 기능을 지속적으로 모니터링합니다. 재생 중 조건이 변경되면(예: 네트워크 혼잡 발생) 서버는 버퍼링이나 화질 저하 없이 원활하게 재생되도록 비트레이트를 동적으로 조정할 수 있습니다.
이 서버 측 접근 방식에는 많은 이점이 있습니다. 클라이언트 디바이스가 직접 적절한 비트레이트를 선택해야 하는 대신 서버는 네트워크 상태, 동영상 콘텐츠의 복잡성, 디바이스의 성능 등을 훨씬 더 종합적으로 파악할 수 있습니다. 이러한 모든 정보를 바탕으로 비트레이트의 상향 또는 하향 조정에 대해 보다 적절한 결정을 내릴 수 있습니다. 즉, 다양한 화질 수준 간의 전환이 더 부드러워지고 시청자에게 전체적으로 더 일관되고 버퍼링 없는 스트리밍 환경을 제공할 수 있습니다.
비트레이트 선택 프로세스를 서버로 오프로드하면 클라이언트 디바이스의 처리 부담도 줄어듭니다. 이는 리소스가 제한된 디바이스에 특히 유용하며, 성능과 배터리 수명을 향상시킵니다.
서버 측 적응형 비트레이트 스트리밍의 또 다른 장점은 서버가 네트워크 상태를 실시간으로 지속적으로 모니터링하여 클라이언트 측 알고리즘보다 더 정확하고 빠르게 비트레이트를 조정할 수 있다는 것입니다. 따라서 연결 속도가 느려지려는 것을 감지하면 사용자가 딸꾹질을 느끼기도 전에 선제적으로 비트레이트를 낮출 수 있습니다. 그리고 연결 속도가 다시 빨라지면 바로 품질을 다시 높입니다. 특정 순간에 비디오 콘텐츠 자체가 얼마나 복잡한지도 분석할 수 있습니다. 액션이 많은 움직임이 많은 장면은 더 높은 비트레이트로 끌어올려 화질을 개선하고, 잔잔한 장면은 낮은 비트레이트로도 화질 저하 없이 스트리밍할 수 있습니다.
마지막으로, 서버 측 적응형 비트레이트 스트리밍은 스트리밍 제공업체에게 매우 비용 효율적일 수 있습니다. 보다 효율적인 비트레이트 관리는 전반적으로 대역폭 비용을 절감할 수 있습니다. 스트리밍 제공업체는 과도한 데이터 전송 비용 없이 고품질 비디오를 제공할 수 있고, 사용자는 데이터 초과에 대한 걱정 없이 좋아하는 콘텐츠를 즐길 수 있습니다.
간단히 말해, 고품질 스트림, 더 부드러운 재생, 더 나은 디바이스 성능, 비용 절감은 서버 측 적응형 비트레이트 스트리밍을 고려해야 하는 큰 이유입니다.
성능 최적화
서버 측 ABR의 이점을 극대화하기 위해 구현을 고려해야 할 몇 가지 성능 최적화가 있습니다. 첫 번째는 엣지 컴퓨팅입니다. 엣지 서버에 ABR 로직을 배포하면 데이터가 이동해야 하는 거리를 대폭 줄여 비디오 재생 중 지연 시간을 최소화할 수 있습니다. 최종 사용자와의 거리가 가까워지면 버퍼링과 지연 시간이 줄어들어 스트리밍이 더 원활해질 뿐만 아니라 비트레이트도 더 빠르게 조정할 수 있습니다. 또한 중앙 서버의 부담을 줄이면 확장성과 전반적인 네트워크 효율성이 향상되어 더 많은 트래픽 부하를 더 쉽게 처리할 수 있습니다.
또 다른 중요한 성능 최적화에는 효과적인 캐싱 전략을 구현하는 것이 포함됩니다. 인기 있는 동영상 세그먼트를 다양한 비트레이트로 지능적으로 캐싱하면 서버의 부하를 크게 줄이고 스트리밍 성능을 향상시킬 수 있습니다. 이를 위해 다양한 세그먼트의 인기를 효율적으로 추적하고 예측하는 블룸 필터와 같은 확률적 데이터 구조를 활용할 수 있습니다. 이를 통해 시스템은 자주 액세스하는 콘텐츠를 더 빠르게 저장하고 제공함으로써 최종 사용자의 지연 시간을 줄이고 원본 서버에서 데이터를 반복적으로 가져올 필요성을 최소화할 수 있습니다. 또한 이 접근 방식은 대역폭 사용량을 최적화하여 보다 확장 가능하고 효율적인 스트리밍 아키텍처를 구축하는 데 도움이 될 수 있습니다.
벤치마킹 및 Monitoring 나의 스트리밍 경험
서버 측 적응형 비트레이트 전송으로 마이그레이션한 후에는 사용자 경험과 시스템 효율성을 모두 측정하는 핵심 성과 지표(KPI)를 통해 개선 사항을 정량화할 수 있습니다. 중요한 몇 가지 핵심 성과 지표가 있습니다.
첫 번째는 시작 시간으로, 사용자의 플레이 요청부터 첫 프레임이 렌더링될 때까지의 시간을 측정합니다. 시작 시간이 오래 지연되면 사용자의 불만과 이탈이 증가할 수 있으므로 원활한 경험을 위해서는 시작 시간을 단축하는 것이 중요합니다. 또 다른 중요한 KPI는 총 리버퍼 시간을 총 플레이 시간으로 나눈 다음 100을 곱하여 계산하는 리버퍼 비율입니다. 이 비율은 동영상이 재생 중 버퍼링에 소요되는 시간의 비율을 반영하며, 이를 최소화하면 끊김 없는 시청이 보장됩니다. 분당 화질 전환 횟수를 추적하는 비트레이트 전환 빈도도 유용한 지표 중 하나입니다. 과도한 비트레이트 전환은 사용자 경험을 방해할 수 있으므로 성능과 안정성의 균형을 맞추는 것이 중요합니다. 평균 비트레이트는 세션 동안 전송된 평균 비트레이트를 측정하여 사용자가 경험하는 전반적인 동영상 품질에 대한 인사이트를 제공합니다. 일반적으로 비트레이트가 높을수록 화질이 좋지만 버퍼링을 방지하기 위해 사용 가능한 대역폭에 맞춰야 합니다. 마지막으로, VMAF 점수(비디오 다중 방법 평가 융합)는 전송된 비디오 품질이 ABR 알고리즘에 의해 결정된 비트레이트와 일치하는지 확인하는 지각적 품질 측정 지표입니다. VMAF 점수가 높을수록 비트레이트에 비해 화질이 우수하여 고품질 시청 환경을 보장합니다.
시작 시간, 리버퍼 비율, 비트레이트 전환 빈도, 평균 비트레이트, VMAF 점수는 모두 ABR 알고리즘을 미세 조정하고 사용자 만족도를 최적화하는 데 사용할 수 있는 KPI입니다.
결론
서버 측 적응형 비트레이트 스트리밍은 기존 클라이언트 측 ABR의 많은 한계를 해결하여 보다 효율적이고 일관된 스트리밍 환경을 제공합니다. 서버 측 ABR은 의사 결정 프로세스를 중앙 집중화함으로써 성능을 개선하고 품질 관리를 강화하며 데이터 사용량을 최적화합니다.
이 블로그 게시물에서는 클라이언트 측 ABR의 문제점과 서버 측 솔루션의 강력한 이점에 대해 살펴보았습니다. 스트리밍 회사의 개발자로서 적응형 비트레이트 스트리밍 솔루션 최적화에 대해 자세히 알아보고 싶다면 이 링크를 통해 최대 5,000달러의 Linode 크레딧을 신청하여 자세히 알아보세요.
내용