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

모든 기기에서 동영상이 끊김 없이 원활하게 재생됩니다.

프랑수아 보포르
프랑수아 보퍼

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

문제

일반적으로 미디어 사이트에는 사용자에게 표시할 수 있는 각 동영상의 변형이 여러 개 있으며 서로 다른 프레임 속도, 해상도, 코덱으로 인코딩됩니다. 최근까지 웹 개발자는 각 변형이 개별 사용자의 브라우저에서 재생될 수 있는지 확인하기 위해 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의 작동 방식을 알아보려면 공식 샘플을 확인하세요.