YouTube가 Media Capabilities API를 통해 동영상 성능을 개선한 방법

모든 기기에서 원활한 동영상 재생을 보장합니다.

François Beaufort
François Beaufort

Media Capabilities API를 사용한 실험에서 YouTube는 전송된 동영상의 평균 해상도가 0.4% 감소하는 동안 MTBR이 7.1% 증가했습니다.

문제

일반적으로 미디어 사이트에는 사용자에게 표시할 수 있는 각 동영상의 여러 변형이 있으며, 이러한 변형은 다양한 프레임 속도, 해상도, 코덱으로 인코딩됩니다. 최근까지 웹 개발자는 isTypeSupported() 또는 canPlayType()에만 의존하여 각 변형을 개별 사용자의 브라우저에서 재생할 수 있는지 확인해야 했습니다. 이를 통해 개발자는 미디어를 재생할 수 있는지 여부를 알 수 있지만 프레임 드롭 또는 기기 배터리 소모 여부와 같은 재생 품질에 관한 표시는 제공되지 않았습니다. 이 정보가 없으면 개발자는 자체 휴리스틱을 만들거나 기기가 코덱/해상도 조합을 재생할 수 있다면 원활하고 전력 효율적으로 재생할 수 있다고 가정해야 했습니다. 성능이 낮은 기기를 사용하는 사용자의 경우 이로 인해 환경이 저하되는 경우가 많았습니다.

해결 방법

Media Capabilities API를 사용하면 웹사이트에서 클라이언트의 동영상 디코딩 성능에 관한 자세한 정보를 얻고 사용자에게 전송할 코덱과 해상도에 관해 정보에 입각한 결정을 내릴 수 있습니다. 특히 이 API는 개발자에게 특정 코덱과 해상도 조합의 부드러움과 전원 효율성을 추정하여 제공합니다. 이를 통해 개발자는 클라이언트의 재생 환경이 좋지 않을 수 있는 시나리오를 피할 수 있습니다.

Chrome에서 Media Capabilities API는 이전 재생의 측정항목을 사용하여 동일한 코덱과 동일한 해상도로 향후 재생이 원활하게 디코딩될지 예측합니다.

YouTube 사례

YouTube는 Media Capabilities API를 사용하여 기기에서 원활하게 재생할 수 없는 해상도를 적응형 비트 전송률 알고리즘이 자동으로 선택하지 못하도록 했습니다.

실험 그룹에 속한 사용자는 전체적으로 리버퍼링 빈도가 줄었으며(리버퍼링 간 평균 시간(MTBR)이 7.1% 증가) 집계 그룹에 제공된 동영상 높이로 측정한 평균 해상도는 0.4%만 감소했습니다. MTBR이 크게 증가하고 평균 해결 시간이 약간 감소한 것은 이 변경사항으로 인해 이전에 경험이 좋지 않았던 소수의 사용자의 품질이 크게 개선되었음을 나타냅니다.

사이트에 Media Capabilities API 구현

공식 샘플을 확인하여 Decoding Info API의 작동 방식을 알아보세요.