멀티코덱 동영상을 효율적으로 스트리밍하는 방법

JESS R의 사진
JESS R

지난 10년 동안 인터넷을 통해 전송된 대부분의 동영상 스트림은 ITU-T H.264 / MPEG-4 AVC 동영상 코덱을 사용하여 인코딩되었습니다. 2000년대 초에 개발된 이 코덱은 97.93%라는 놀라운 도달률로 다양한 디바이스와 컴퓨팅 플랫폼에서 광범위하게 지원되고 있습니다.

그림1

그러나 기술에 관한 한 이 코덱은 꽤 오래된 코덱입니다. 최근 몇 년 동안 두 가지 새로운 코덱이 도입되었습니다: ITU-TMPEG 표준 그룹의 HEVC와 개방형 미디어 연합의 AV1이 그것입니다. 두 코덱 모두 H.264/AVC에 비해 압축 효율이 50% 이상 향상되었다고 주장합니다.

이론적으로 이러한 이득은 스트리밍 비용을 크게 절감할 수 있습니다. 그러나 실제로 이러한 새로운 코덱은 기존 디바이스 또는 웹 브라우저의 특정 하위 집합에만 도달할 수 있습니다. 예를 들어 HEVC는 도달률이 18.73%에 불과한 것으로 알려졌으며, 이는 대부분 Apple 디바이스와 하드웨어 HEVC를 지원하는 디바이스를 가리킵니다. 웹 브라우저 중 AV1의 지원율은 더 높지만, Apple 디바이스 및 대부분의 기존 셋톱박스 플랫폼에서는 지원되지 않습니다.

그림2

이러한 상황은 의문을 불러일으킵니다: 다양한 디바이스에서 새로운 코덱이 단편적으로 지원되는 상황에서 모든 디바이스에 최대한 효율적으로 도달할 수 있는 스트리밍 시스템을 어떻게 설계할 수 있을까요?

이 블로그 게시물에서는 멀티 코덱 스트리밍의 개념을 소개하고 브라이트코브 비디오 클라우드 플랫폼을 지원하기 위해 설계한 주요 요소와 기술을 설명함으로써 이 질문에 답하고자 합니다.

적응형 비트레이트 스트리밍 101

멀티 코덱 스트리밍에 대해 이야기하기 전에 현대 시대의 적응형 비트레이트(ABR) 스트리밍 시스템 작동의 주요 원리를 간략히 살펴봅시다. 아래 그림에 이러한 시스템의 개념도가 나와 있습니다. 간단하게 설명하기 위해 VOD 전송 사례에 초점을 맞추겠습니다.

그림8

동영상 자산이 ABR 스트리밍용으로 준비되면 일반적으로 여러 개의 렌더링(또는 변형 스트림)으로 트랜스코딩됩니다. 이러한 렌더링은 일반적으로 비트레이트, 해상도, 기타 코덱 및 프레젠테이션 수준 매개변수가 다릅니다.

모든 렌더링이 생성되면 원본 서버에 배치됩니다. 오리진 서버는 렌더링 세트와 함께 인코딩된 스트림의 속성을 설명하는 특수 매니페스트 파일도 수신합니다. 이러한 매니페스트는 일반적으로 HLS 또는 MPEG DASH 형식으로 제공됩니다. 이후 인코딩된 콘텐츠를 사용자 디바이스로 전송하는 작업은 HTTP와 콘텐츠 전송 네트워크(CDN)를 통해 이루어지며, 전송 시스템의 안정성과 확장성을 보장합니다.

동영상 콘텐츠를 재생하기 위해 사용자 디바이스는 스트리밍 클라이언트라고 하는 특수 소프트웨어를 사용합니다. 가장 간단한 형태의 스트리밍 클라이언트는 웹 브라우저에서 실행되는 JavaScript일 수 있습니다. 또한 운영 체제(OS)에서 제공하는 사용자 지정 애플리케이션 또는 비디오 플레이어일 수도 있습니다. 그러나 구현 방식에 관계없이 대부분의 스트리밍 클라이언트에는 재생 중에 스트림/트렌디션을 적응적으로 선택할 수 있는 로직이 포함되어 있습니다.

예를 들어, 클라이언트가 관찰된 네트워크 대역폭이 너무 낮아 현재 스트림의 실시간 재생을 지원하지 못한다고 판단하면 더 낮은 비트 전송률 스트림으로 전환할 수 있습니다. 이렇게 하면 버퍼링을 방지할 수 있습니다. 그렇지 않으면 대역폭이 충분한 경우 클라이언트는 더 높은 비트레이트, 즉 더 높은 품질의 스트림으로 전환하여 더 나은 품질의 경험을 제공할 수 있습니다. 이러한 논리가 바로 스트리밍 전송을 적응형으로 만드는 원리다. 또한 동영상이 항상 여러 개의 스트림(일반적으로 5~10개)으로 트랜스코딩되는 이유이기도 합니다.

위 다이어그램에 표시된 시스템에는 두 가지 추가 구성 요소가 있습니다: CDN 및 스트리밍 클라이언트로부터 재생 통계를 수집하는 분석 시스템과 생성할 렌더링의 수와 속성을 정의하는 ABR 인코딩 래더 생성기입니다. 브라이트코브 비디오 클라우드 시스템에서 이 블록은 컨텍스트 인식 인코딩 (CAE) 모듈에 해당합니다.

인코딩 사다리 및 스트리밍 시스템으로 달성 가능한 품질

이제 스트리밍에 사용할 수 있는 인코딩 래더의 예를 살펴보겠습니다. 이 예시는 액션 영화 비디오 콘텐츠를 위해 브라이트코브 CAE에서 만든 것입니다.

스크린샷 2021-03-23 at 8.37.41 AM

쉽게 알 수 있듯이 인코딩 래더는 5개의 스트림을 정의하여 216p에서 1080p의 해상도와 약 260 ~ 4200Kbps의 대역폭을 사용하는 동영상을 전송할 수 있습니다. 모든 스트림은 H.264/AVC 코덱으로 생성됩니다. 이 표의 마지막 열에는 이러한 렌더링을 PC 화면에서 재생할 때 예상되는 인지 화질 점수가 나열되어 있습니다. 이 값은 평균 의견 점수 (MOS) 척도를 사용하여 보고됩니다. MOS 점수 5점은 화질이 우수함을 의미하며, 1점은 화질이 나쁘다는 것을 의미합니다.

다음으로 렌더링에 해당하는 점과 다양한 네트워크 대역폭에서 스트리밍 시스템이 달성할 수 있는 최고 품질을 플롯(비트레이트, 품질)합니다. 이것은 파란색으로 표시된 단계 함수가 됩니다.

그림3

위 그림에는 동일한 인코더로 동일한 콘텐츠를 인코딩할 때 얻을 수 있는 최상의 품질 값을 설명하는 소위 품질 속도 모델 함수 [1-3]의 플롯도 포함되어 있습니다. 이 함수는 빨간색 점선 곡선으로 표시되어 있습니다.

쉽게 이해할 수 있듯이 적절한 래더 설계를 사용하면 렌더링 포인트는 품질 속도 모델의 하위 집합이 되고 스트리밍으로 달성할 수 있는 품질을 설명하는 단계 함수는 이 모델의 근사치가 됩니다. 스트리밍 시스템의 품질에 영향을 미치는 것은 인코딩 래더의 렌더링 수와 대역폭 축에 따른 렌더링의 배치입니다. 결과 단계 함수가 품질 속도 모델에 가까울수록 스트리밍 시스템에서 제공할 수 있는 품질이 더 좋아집니다.

이 모든 것이 의미하는 바는 ABR 스트리밍을 위한 인코딩 프로파일/래더를 신중하게 설계해야 한다는 것입니다. 이것이 대부분의 최신 스트리밍 시스템이 콘텐츠, 네트워크 및 기타 관련 컨텍스트의 속성을 고려하여 이 단계를 동적으로 수행하기 위해 특수 프로파일 생성기를 사용하는 이유입니다.

품질 속도 모델 구축 및 최적의 인코딩 사다리 생성에 사용할 수 있는 수학적 방법에 대한 자세한 내용은 참고자료 [1-5]에서 확인할 수 있습니다.

멀티 코덱 스트리밍: 주요 원칙

주요 개념을 설명했으니 이제 멀티코덱 스트리밍에 대해 알아봅시다.

이를 보다 구체적으로 설명하기 위해 두 가지 코덱을 사용하여 생성된 인코딩 래더의 예를 살펴 보겠습니다: H.264/AVC와 HEVC. 이 역시 브라이트코브 CAE를 사용하여 제작했습니다.

스크린샷 2021-03-23 at 8.38.05 AM

렌더링 포인트, 품질 속도 모델, 스트리밍 클라이언트가 H.264 및 HEVC 스트림을 디코딩하여 얻을 수 있는 품질에 대한 플롯은 아래 그림에 나와 있습니다.

그림4

쉽게 알 수 있듯이 HEVC의 화질 속도 모델 기능은 H.264/AVC의 화질 속도 모델보다 일관되게 더 우수합니다. 마찬가지로 HEVC 렌더링은 H.264/AVC 인코더로 인코딩된 렌더링보다 화질-속도 트레이드오프가 더 우수해야 합니다.

그러나 일반적으로 렌더링 포인트가 몇 개에 불과하고 인터리브 패턴으로 드문드문 배치될 수 있다는 점을 고려하면, 이로 인해 비트 전송률 영역이 생성되어 H.264/AVC 렌더링이 더 작거나 동일한 비트 전송률의 가까운 HEVC 렌더링보다 더 나은 품질을 제공할 수 있습니다. 위 그림에서 이러한 영역은 H.264/AVC 클라이언트의 스텝 함수가 HEVC 클라이언트의 동일한 함수보다 높을 때 볼 수 있습니다.

이것은 무엇을 의미할까요? 즉, 2코덱 래더를 사용하면 HEVC로 인코딩된 스트림만 디코딩한다고 해서 자동으로 최상의 화질을 얻을 수 있는 것은 아닙니다! 클라이언트가 H.264/AVC와 HEVC 스트림 사이를 선택적으로 지능적으로 전환하면 더 나은 품질을 얻을 수 있습니다. 아래 그래픽은 이러한 '두 코덱 클라이언트'가 달성할 수 있는 화질을 보여줍니다.

그림5

이 예시에서 두 코덱 클라이언트는 HEVC 또는 H.264 전용 래더에서 5단계가 아닌 9단계의 적응을 수행할 수 있습니다. 따라서 사용 가능한 네트워크 대역폭을 더 잘 활용하고 전반적으로 더 나은 품질을 제공할 수 있습니다.

기존 스트리밍 클라이언트에서 멀티 코덱 기능 지원

방금 살펴본 것처럼 스트리밍 클라이언트의 디코딩 능력뿐만 아니라 H.264/AVC와 HEVC 스트림을 지능적이고 원활하게 전환할 수 있는 능력은 매우 중요합니다. 이렇게 하면 화질이 향상되고 생성되는 스트림/렌디션 수가 줄어들어 스트리밍 비용이 절감됩니다.

하지만 기존의 모든 스트리밍 클라이언트에 이러한 기능이 있는 것은 아닙니다. 이 기능을 잘 수행하는 클라이언트의 가장 잘 알려진 예는 iPhone, iPad, Mac 컴퓨터 등 최신 Apple 디바이스의 기본 플레이어입니다. 이러한 플레이어는 H.264/AVC와 HEVC 스트림을 원활하게 디코딩하고 전환할 수 있습니다. 최신 버전의 Chrome 및 Firefox 브라우저는 기술적으로 자바스크립트 기반 스트리밍 클라이언트가 코덱 간 전환을 구현할 수 있는 소위 변경 유형 방법을 지원합니다.

스마트TV, 셋톱박스 등 하드웨어 디코더가 탑재된 많은 플랫폼의 스트리밍 클라이언트는 H.264/AVC 또는 HEVC 스트림만 디코딩할 수 있으며 스트리밍 세션 중에 다른 코덱으로 전환하지 않습니다. 당연히 H.264/AVC로 인코딩된 스트림만 디코딩할 수 있는 레거시 디바이스도 많이 있습니다.

스트리밍 클라이언트의 이러한 파편화된 공간과 그 기능은 인코딩 래더 생성 단계에서 HLS 및 DASH 매니페스트와 멀티코덱 스트리밍을 위한 전송 시스템 설계를 적절히 정의하여 고려해야 합니다. 다음 섹션에서는 브라이트코브 비디오 클라우드 플랫폼에서 이러한 모든 과제를 어떻게 해결했는지 간략하게 살펴보겠습니다.

브라이트코브 비디오클라우드 플랫폼에서 멀티 코덱 지원

브라이트코브 비디오 클라우드는 이 블로그 게시물에서 살펴본 ABR 스트리밍 시스템의 모든 구성 요소를 포함하는 엔드투엔드 온라인 비디오 플랫폼입니다.

예를 들어, 이 시스템에서 인코딩 래더 생성은 브라이트코브 CAE 기술을 사용하여 수행됩니다. 시스템 사용자/운영자에게는 H.264, HEVC는 물론 혼합 코덱 스트리밍 배포를 지원하는 여러 사전 구성된 CAE 인제스트 프로파일이 존재한다는 사실이 드러납니다.

스크린샷 2021-03-23 at 8.38.40 AM

멀티플랫폼 확장 HEVC(CAE) 혼합 코덱 인제스트 프로필을 선택하면 H.264 및 HEVC 스트림이 모두 포함된 혼합 코덱 래더가 생성됩니다. 이 프로필은 두 코덱에 대해 3개에서 12개의 출력 스트림을 생성할 수 있으며, 해상도 범위는 180p에서 1080p까지, 비트레이트 범위는 250Kbps에서 4200Kbps까지입니다. CAE 프로필 생성기는 콘텐츠의 특성과 계정에 대해 관찰된 재생 통계를 기반으로 다른 모든 사항을 자동으로 정의합니다.

비디오 클라우드에서 매니페스트와 미디어 세그먼트는 다양한 스트리밍 표준 및 프로필(예: HLS v3, HLS v7, MPEG DASH, Smooth 등)에 따라 생성됩니다. 이 모든 것은 수신 장치의 기본 설정과 기능에 따라 동적으로 생성됩니다. 또한 특정 필터링 규칙(전송 규칙)이 적용될 수도 있습니다. 예를 들어, H.264/AVC 및 HLS v3 형식의 스트리밍만 지원할 수 있는 레거시 디바이스에서 재생 요청이 들어오는 경우, TS 기반 세그먼트와 함께 HLS v3 매니페스트만 제공되며, H.264/AVC 인코딩된 스트림만 포함될 것입니다.

반면, H.264/AVC와 HEVC 스트림을 모두 결정할 수 있는 최신 디바이스의 경우, 전송 시스템에서 H.264/AVC 및 HEVC 인코딩 스트림을 모두 포함하는 매니페스트를 생성할 수 있습니다. 매니페스트에서 혼합 코덱 스트림의 선언은 HLSDASH-IF 배포 가이드라인에 따라 수행됩니다. 아래에서 이러한 선언의 개념적 예를 보여드리겠습니다.

스크린샷 2021-03-23 at 8.38.40 AM

앞서 살펴본 바와 같이 HLS에서는 혼합 코덱 렌더링이 마스터 재생 목록에 자연스러운 순서로 포함될 수 있습니다. 그러나 MPEG DASH에서는 각 코덱에 따라 정렬된 다른 적응 세트에 개별적으로 나열해야 합니다. DASH에서 혼합 코덱 렌더링 간 전환을 가능하게 하기 위해 각 적응 세트에 특수 SupplementalProperty 설명자가 포함되어 있습니다.

클라이언트가 다른 코덱을 사용하여 인코딩된 스트림 간에 전환할 때 올바른 결정을 내릴 수 있도록 특별한 상대적 품질 속성을 사용할 수 있습니다. HLS에서는 이를 SCORE 속성이라고 하며, 값이 높을수록 더 좋은 품질을 나타냅니다. MPEG DASH에서는 "품질 순위" 속성이라고 불리지만, 이제는 값이 낮을수록 더 좋은 품질을 나타냅니다. 그러나 이 두 가지 속성은 모두 선택 사항이며 기존 일부 클라이언트 디바이스에서만 지원됩니다. 모든 디바이스/클라이언트가 멀티 코덱 스트림을 전환할 때 혼동하지 않도록 브라이트코브 비디오 클라우드에서는 매니페스트 필터링 옵션을 제공하여 클라이언트가 최종 매니페스트에서 볼 수 있는 품질 값이 점진적으로 증가하는 렌더링만 남깁니다.

비디오 클라우드에서 멀티코덱 스트림의 최종 전송은 2단계 CDN 구성으로 처리되어 높은 효율성(낮은 오리진 비트 전송률)과 스트림 전송의 높은 규모 및 안정성을 보장합니다. 브라이트코브 비디오 클라우드에서 사용하는 다양한 구성 및 최적화 기술에 대한 자세한 내용은 최근 논문[3] 또는 브라이트코브 제품 설명서에서 확인할 수 있습니다.

결론

멀티 코덱 스트리밍 지원을 위해 설명한 모든 기능과 도구를 조합하면 브라이트코브 비디오 클라우드에서 몇 분 만에 활성화 및 배포할 수 있습니다.

Apple 디바이스나 기타 HEVC 지원 모바일 및 셋톱박스에 대용량 스트리밍을 전송하는 경우 HEVC 및 멀티코덱 스트리밍을 사용하면 레거시 디바이스에 대한 도달 범위의 저하 없이 CDN 트래픽/비용을 크게 절감할 수 있습니다.

저희가 설계한 도구를 사용하면 배포 비용을 최소화하고 모든 디바이스에 도달하는 높은 품질과 안정성을 보장하면서 이러한 배포가 이루어질 수 있습니다.

참고 자료

[1] Y. Reznik, K. Lillevold, A. Jagannath, J. Greer, J. Corley, "ABR 스트리밍을 위한 최적의 인코딩 프로파일 설계", Proc. 패킷 비디오 워크샵, 네덜란드 암스테르담, 2018년 6월 12일. [2] Y. Reznik, X. Li, K. Lillevold, A. Jagannath 및 J. Greer, "최적 멀티 코덱 적응형 비트 전송률 스트리밍," Proc. IEEE Int. Conf. 멀티미디어 및 엑스포(ICME), 중국 상하이, 2019년 7월 8-12일. [3] Y. Reznik, X. Li, K. Lillevold, R. Peck, T. Shutt, and P. Howard, "Optimizing Mass-Scale Multiscreen Video Delivery," SMPTE Motion Imaging Journal, vol. 3, pp. 26 - 38, 2020. [4] Y. Reznik, "평균 적응형 스트리밍 성능," Proc. 데이터 압축 컨퍼런스(DCC'21), 스노우버드, 유타주, 2021년 3월. [5] Y. Reznik, "효율적인 멀티코덱 스트리밍" - HPA 테크 리트리트 2021에서 발표

공유 

태그

브라이트코브는 한 진단 장비 제조업체가 수업 시간과 비용을 줄이면서 성공을 개선할 수 있도록 지원했습니다.
브라이트코브는 가장 유명한 자동차 시장에서 방대한 레거시 비디오 라이브러리를 관리하고 수익을 창출할 수 있도록 지원합니다....
브랜드 무결성을 유지하기 위해 리테일 브랜드는 색상, 글꼴 등을 조정할 수 있는 맞춤형 동영상 플레이어가 필요합니다.

시작할 준비가 되셨나요?

브라이트코브로 영상 마케팅 성과와 ROI를 높이는 방법을 알아보세요. 지금 문의하시면 자세히 상담해드립니다.