COVID-19에 대응하는 네이버의 동영상 트래픽 컨트롤 시스템

Dophi·2023년 1월 6일
0

컨퍼런스

목록 보기
3/14

소개글

각종 컨퍼런스에 나온 강연들을 정리해보면서 공부해보고 있습니다.
이번 포스팅은 DEVIEW 2020에서 안재철님께서 강연해주신 내용을 정리했습니다.
제목은 "COVID-19에 대응하는 네이버의 동영상 트래픽 컨트롤 시스템" 이며 코로나로 인해 증가하는 동영상 트래픽에 대한 문제를 어떻게 처리하는지에 대한 내용입니다.
말투는 편한 말투로 작성하니 양해 부탁드립니다.

영상 다시보기
문서 자료

발표내용

COVID-19 시대의 네이버 동영상

  • 코로나로 인해 교육계, 종교계, 공연계, 방송계 등 다양한 분야에서 동영상을 활용
  • 이로 인해 동영상 트래픽 폭증 문제 발생 (버퍼링, 저화질)
  • 변화에 대응하는 네이버 동영상
    • 동영상 트래픽 변화에 따른 장비 증설
      최고 트래픽을 기준으로 장비 증설 계획
    • HEVC 코덱 적용 범위 확대
      화질은 유지하면서 비트레이트 절감
    • AI기반 인코딩 최적화
      마찬가지로 비트레이트 절감
    • 동영상 트래픽 컨트롤 시스템 구축
      트래픽 폭주 상황에 대비하여 이를 컨트롤할 수 있도록 함

네이버 ETECH 측에서는 트래픽 폭증에 대해 위와 같은 여러가지 대응을 한다고 합니다.
이 중에서 이번 발표에서 다루는 내용은 동영상 트래픽 컨트롤 시스템 구축에 관한 내용입니다.

동영상 트래픽 컨트롤 시스템

시스템 설계 목적

동영상 트래픽을 효율적으로 컨트롤할 수 있는 시스템

시스템 설계 고려사항

  • 사용자의 시청 경험(QoE)을 최대화할 수 있는 방향으로 설계 (고화질, 안정성을 동시에 만족시키기)
  • 다양한 환경(로컬, 글로벌)에서 가장 효율적으로 동작될 수 있도록 설계

시스템 설계 주요 포인트

기존 미디어 재생 시스템 분석

  1. 영상을 재생하기 위해 CDN으로 미디어를 요청
  2. 수신한 미디어를 렌더링 모듈에 전달하여 재생

간단한 방식이지만, 이 안에서 여러가지 개선 요소가 있다고 합니다.
설명해주시는 것들을 하나씩 정리했습니다.

네트워크 트래픽 최적화

  • 미디어 플레이어는 단말의 네트워크 대역폭 정보를 참조하여 대역폭에 맞는 미디어를 요청
  • 이로 인해 제한된 대역폭을 점유하기 위해 경쟁하고 단말마다 다른 재생 경험이 나타나는 문제가 발생

재생 환경에 최적화

  • 렌더링 뷰 사이즈를 참조하여 미디어 파일을 요청

만약 480p의 화면에서 1080p의 영상을 받아오면 downscale 과정을 거치는데, 이렇게 되면 480p를 제외한 나머지 부분은 낭비되는 데이터 영역이라고 합니다.

다운로드 속도 최적화

  • CDN이 최대한 빠르게 전송을 하려하기 때문에, 이 순간에만 트래픽이 급증하게됨
  • Burst, Idle이 반복되고, Burst인 순간에 문제가 생길 수도 있음

다운로드 속도가 무조건 빠르다고 좋은 것이 아니라고 합니다.
그림과 같이 다운로드 속도가 빠르면 Burst, Idle이 반복되는 구조가 나타나기 때문에, 트래픽 급증을 막기 위해서는 적절히 조절할 수 있어야 합니다.

렌더링 최적화

  • 기존에는 CDN으로부터 파일을 받고, 디코딩을 해서, 렌더링을 통해 화면에 보여줬음
  • 화면에 최종적으로 보여주기 전, Post Processing을 통해 영상 개선 작업을 할 수 있음

영상 개선 작업에는 저화질 영상을 고화질 영상으로 변환하기, 노이즈를 제거하여 선명한 영상으로 변환하기 등이 있다고 합니다.

시스템 아키텍쳐

  1. 비트레이트 컨트롤 모듈에서 클라우드와 연동하여 트래픽 정보를 받아옴
    • 트래픽 정보는 관리자가 수동으로 입력한 정보일 수 있고, CDN과 연동하여 받아온 정보일 수 있음
  2. 비트레이트 컨트롤 모듈은 받아온 트래픽 정보를 미디어 요청 모듈에 전달
  3. 렌더링 모듈은 현재 렌더링되는 뷰의 크기 정보를 미디어 요청 모듈에게 전달
  4. 미디어 요청 모듈은 정보들을 바탕으로, 다운로드 속도 컨트롤 모듈을 통해 재생에 최적화된 미디어를 요청
  5. CDN이 최대한 빨리 미디어를 전달하려고 할 때, 다운로드 속도 컨트롤 모듈이 재생에 적합한 속도로 미디어를 다운로드
  6. 다운로드된 미디어를 렌더링 모듈에 전달하는데, 필요시 Post Processing 작업을 거침

시스템 주요 구성 모듈

비트레이트 컨트롤 모듈

비트레이트

  • 초당 데이터 전송률을 의미
  • 비트레이트가 높을수록 고화질

비트레이트 컨트롤

  • 안정성과 고화질은 반비례 관계기 때문에, 안정성을 위해서는 비트레이트 컨트롤이 필요
  • 영상 재생 전에는 메니페스트 파일 조작을 통한 컨트롤
    • 메니페스트 파일은 미디어 서버, CDN 설정, 또는 단말에서 조작 가능
  • 영상 재생 중에는 미디어 플레이어를 통한 실시간 컨트롤
    • 영상 재생 중에 실시간으로 변경 가능

메니페스트 파일은 재생되는 영상의 화질 목록을 정의해놓은 파일입니다.
파일에서 최고 화질을 삭제하는 등의 방법을 통해 비트레이트를 컨트롤할 수 있다고 합니다.

미디어 파일 요청 모듈

  • 영상 재생 환경(렌더링 뷰 크기)을 고려하여 미디어 파일 요청
  • 사용자의 시청 경험을 해치지 않으면서, 재생 안정성(낮은 비트레이트)도 만족시킴
  • 메니페스트 파일에 Resolution 정보를 추가하면, iOS의 AVPlayer의 경우에는 자동으로 렌더링 뷰 사이즈를 참조하여 최대 화질을 결정
  • AI 기반의 미디어 파일 요청 프로세스(ABR) 적용을 검토
    • 개발자가 인지하기 어려운 다양한 환경 변수들을 학습하여, 영상 시청에 필요한 최적의 비트레이트를 도출하기를 기대

쉽게 예를 들자면, 렌더링 뷰 크기가 720p일 경우 굳이 1080p 영상은 요청하지 않는 것이라고 합니다.

다운로드 속도 컨트롤 모듈

HLS 프로토콜의 동작 구조

  • 재생 시작시 라이브 윈도우 크기만큼 미디어 파일 요청
  • 이후 청크 길이 간격으로 업데이트된 미디어 요청

다운로드 속도 컨트롤 방법

  • CDN에서 네트워크 대역폭 제어?
    • 이를 위해 CPU를 더 사용함
    • CPU가 제한되는 상황이라면 문제 발생
  • 따라서 단말에서 네트워크 속도 제어하는 방법 사용
  • 다운로드 속도는 청크 비트레이트의 3~5배가 적당
  • 만약 1.5배 이하라면 ABR 알고리즘이 현재 해상도보다 낮은 영상을 요청할 수 있어서 주의 필요

다운로드 속도를 늦추면, 트래픽 흐름이 전체적으로 비슷해지고, 순간 트래픽의 최대치도 낮아지는 것을 볼 수 있습니다.

렌더링 모듈

  • 저화질의 영상(안전성)으로 고화질을 제공 가능
  • Post Processing을 할 경우 단말에서 연산량이 증가하므로, 선택적으로 사용할 수 있게 해야함
  • 기술 종류
    • Image Enhancement
    • Super Resolution

안정성과 고화질은 반비례 관계라고 했었는데, Post Processing을 잘한다면 두가지를 모두 만족시킬 수 있습니다.
Super Resolution 기술은 현재 실시간 처리, 즉 초당 30프레임 처리는 불가능하지만, 조만간 실행 가능할 것이라고 보고 있다고 합니다.

시스템 동작 플로우

트래픽이 원활할 경우

트래픽이 폭주할 경우

profile
개발을 하며 경험한 것들을 이것저것 작성해보고 있습니다!

0개의 댓글