구글 엔지니어가 알려주는 유튜브 영상 처리과정

2016년 8월 31일 업데이트: 2019년 11월 8일

2005년에 설립돼 현재 구글사에 속해 있는 유튜브는 세계 최대 동영상 공유 사이트다. 매 분 업로드 되는 동영상 길이는 영화 184편과 맞먹는 400시간에 이른다. 구글 엔지니어는 이런 방대한 동영상 자료를 어떻게 정상적으로 운영할 수 있을까?

유튜브 낫앤로(Nat and Lo) 채널은 최근 유튜브 사이트가 어떻게 운영되는지 소개하는 두 편의 영상을 제작했다. 영상에서는 두 명의 주인공이 구글의 여러 엔지니어들을 방문해 자신들이 업로드한 동영상이 어떻게 처리되고 정상적으로 재생되는 지에 대한 비밀을 캐냈다.

먼저 동영상 업로드의 경우, 유튜브 사이트는 먼저 사용자가 업로드한 다양한 해상도, 파일 형식의 동영상을 전 세계 사용자들이 시청할 수 있도록 유튜브 재생이 가능한 방식으로 변환시킨다.

유튜브 사이트는 먼저 사용자가 업로드하는 각종 동영상을 유튜브 재생 가능한 방식으로 변환한다. | 동영상 캡처

유튜브 사용자들이 업로드 한 동영상 파일은 보통 데이터가 매우 커서 쉽게 재생할 수 없을 뿐더러 처리 지연, 스마트폰 과열 심지어 버퍼링까지 야기할 수 있다. 따라서 유튜브는 처리 프로그램을 사용해 즉시 영상을 검사한 뒤 다시 작은 크기의 파일로 축소시킨다.

이 시스템은 동영상을 여러 화면으로 분할하는데, 매 화면은 약 5초로 각 화면을 서로 다른 서버로 보내 처리해 압축 버전을 생성한다. 이 과정을 계속 반복하면 압축된 화면들이 전부 새롭게 연결돼 방영할 수 있는 동영상 버전이 된다. 이후 사용자의 영상 해상도에 따라 시스템에서는 다양한 플레이 장치에 필요한 25개의 각기 다른 동영상 버전을 송출할 수 있다.

동영상은 여러 개 화면으로 분할돼 서로 다른 서버에서 압축된다. | 동영상 캡처

구글 엔지니어들은 설령 동영상 파일이 수백 배로 작아져도 사람의 시각은 화질이 감소된 것을 알아볼 수 없다고 한다. 이 밖에 사용자들이 동영상을 업로드한 후 유튜브는 가장 적합한 압축 비율을 찾아내며, 동영상 속 음성을 인식해 자동 자막도 생성할 수 있다.

동영상 재생은 단순하게 파일을 다운받게 해 사용자에게 보여주는 것이 아니다. 이 방법은 10년 전에 사용하던 구식이며, 구글 엔지니어들은 현재 일종 ‘식빵 조각(Sliced Bread)’이라고 부르는 솔루션을 개발했다. 이 방법은 동영상을 몇 개 조각으로 나누는데 사용자들은 한편으로는 영상을 보면서 한편으로는 영상을 다운로드하는 것이다. 한 조각을 다운받으면 유튜브 시스템에서 어느 조각을 이어서 다운받아야 할지와 그 크기를 판단한다.

사용자들이 동영상 플레이 버튼을 누르면 유튜브는 우선 사용자들의 상황을 분석한다. 예를 들어 인터넷 광대역망, 화면 크기, 다운로드하는 영상의 크기 등을 분석하는데, 만약 시스템에서 모든 상황이 양호하다고 판정하면 먼저 고해상도 영상조각을 방영하고, 인터넷이 느려지면 해상도를 낮춤으로써 재생 속도 지연을 피한다.

사용자들이 동영상 플레이 버튼을 누르면 유튜브는 상황을 분석해 상이한 해상도의 영상을 제공한다. | 동영상 캡처

동영상 재생 속도에 영향을 끼치는 또 다른 요소는 동영상 파일의 실제 위치다. 사용자가 동영상을 재생하면 유튜브는 먼저 사용자와 거리가 비교적 가깝고 유튜브와 제휴관계가 있는 인터넷서비스공급업체(ISP)로부터 영상을 확보하는데, 그 영상은 보통 ISP 하드웨어에 임시저장 되어 있다. 만약 ISP에 이 영상이 없으면 시스템에서는 상위 서버에 그 동영상이 있는지 여부를 확인하며, 만약 그래도 없으면 구글 자료센터에서 영상을 확보해 사용자에게 보여준다.

인기 동영상의 경우 ISP 하드웨어는 보통 내용을 임시 저장해 사용자가 즉시 감상할 수 있도록 제공함으로써 대기 시간을 줄여준다.

추천