유튜브,넷플릭스 영상은 어떻게 끊김 없이 재생될까? 스트리밍,코덱 기초

4 분 소요

유튜브나 넷플릭스에서 영상을 누르면 거의 기다림 없이 재생이 시작됩니다. 인터넷이 느려지면 화질이 잠깐 흐려지긴 해도 대개 끊기지는 않습니다. 두세 시간짜리 영화도 미리 다 내려받지 않았는데 어떻게 바로 볼 수 있는 것일까요.

이번 글에서는 동영상이 어떻게 끊김 없이 재생되는지, 그 바탕의 스트리밍과 코덱이 무엇인지를 코드 없이 풀어 보겠습니다.

영상은 통째로 받지 않고 조금씩 받습니다 #

영상을 본다고 하면 파일을 통째로 내려받는 것을 떠올리기 쉽지만, 스트리밍은 그렇지 않습니다. 영상을 잘게 쪼갠 조각으로 나눠, 지금 볼 부분을 먼저 받아 재생하면서 다음 조각을 뒤이어 받아 둡니다.

물을 받아 마시는 것에 빗댈 수 있습니다. 욕조를 가득 채우고서야 마시는 것이 아니라, 컵으로 받아 마시면서 다음 컵을 채워 두는 식입니다. 그래서 두 시간짜리 영화도 처음 몇 초만 받으면 바로 시작할 수 있고, 보는 동안 그다음이 계속 채워집니다. 재생 위치보다 조금 앞서 받아 두는 이 여유분 덕분에, 잠깐 느려져도 끊기지 않습니다.

코덱은 무거운 영상을 압축합니다 #

영상은 데이터가 어마어마하게 큽니다. 1초에 수십 장의 그림이 지나가는 셈이라, 손대지 않은 영상은 짧아도 용량이 엄청납니다. 그대로는 도저히 빠르게 보낼 수 없습니다.

그래서 영상은 코덱이라는 기술로 압축해 보냅니다. 앞서 이미지 압축에서 봤듯, 사람 눈에 잘 띄지 않는 정보를 덜어 내고, 앞뒤 장면에서 바뀌지 않은 부분은 되풀이해 적지 않는 식으로 용량을 크게 줄입니다. 받는 쪽에서는 이 압축을 풀어 다시 영상으로 펼칩니다. 보낼 때 압축하고 볼 때 푸는 이 한 쌍이 코덱입니다.

네트워크에 맞춰 화질이 바뀝니다 #

스트리밍의 똑똑한 점은 화질을 상황에 맞춰 바꾼다는 것입니다. 서비스는 같은 영상을 여러 화질로 미리 준비해 둡니다. 그리고 보는 사람의 인터넷이 빠르면 높은 화질 조각을, 느려지면 낮은 화질 조각을 골라 보냅니다.

이를 적응형 스트리밍이라고 부릅니다. 망이 느려졌을 때 영상이 멈추는 대신 잠깐 흐려지는 경험이 바로 이것입니다. 끊고 기다리게 하느니, 화질을 낮춰서라도 재생을 이어 가는 편이 낫다고 보는 것입니다.

가까운 곳에서 영상을 받습니다 #

영상은 무겁기 때문에 먼 곳에서 받아 오면 느립니다. 그래서 서비스는 앞서 다룬 CDN을 적극 활용합니다. 인기 있는 영상을 전 세계 곳곳의 가까운 서버에 미리 복사해 두고, 사용자는 자기와 가장 가까운 서버에서 받습니다.

덕분에 멀리 떨어진 본사 서버까지 갈 필요 없이, 가까운 곳에서 빠르게 조각을 받아 옵니다. 잘게 쪼갠 조각, 코덱으로 줄인 용량, 가까운 CDN이 함께 맞물려 끊김 없는 재생을 만듭니다.

그래서 영상을 다룰 때 #

영상을 서비스에 올리거나 다룰 때는 몇 가지를 함께 보면 좋습니다. 원본을 지나치게 높은 화질로만 두면 전달이 무거워지므로, 여러 화질로 준비해 두는 편이 사용자 경험에 낫습니다. 자동 재생은 편리하지만, 모바일에서 데이터를 많이 쓰게 할 수 있다는 점도 염두에 둬야 합니다.

생방송도 비슷한 원리로 동작하되, 조각을 모아 보내는 과정 때문에 화면이 실제보다 몇 초 늦게 도착합니다. 라이브 채팅과 화면 사이에 시차가 느껴지는 이유가 여기 있습니다.

왜 비개발자가 알면 일이 편해지는가 #

  • 재생 문제를 이해합니다. 영상이 끊기거나 화질이 들쭉날쭉할 때, 그것이 네트워크와 적응형 스트리밍의 작동임을 알고 설명할 수 있습니다.
  • 비용과 품질을 가늠합니다. 영상이 CDN으로 전달된다는 점을 알면, 영상이 많은 서비스에서 전송 비용이 왜 큰지 이해할 수 있습니다.
  • 콘텐츠를 알맞게 준비합니다. 여러 화질과 자동 재생, 데이터 사용을 알면, 영상을 올릴 때 사용자 환경을 함께 고려할 수 있습니다.

마무리 #

오늘은 동영상이 잘게 쪼갠 조각으로 조금씩 전달되고, 코덱으로 압축되며, 네트워크에 맞춰 화질을 바꾸고, 가까운 CDN에서 받아 끊김 없이 재생된다는 점을 살펴봤습니다. 통째로 받는 것이 아니라 미리 조금 앞서 받아 둔다는 점이 핵심입니다.

영상을 빠르게 전달하는 CDN과 캐시가 궁금하다면 캐시,CDN — “캐시 좀 지워보세요"의 정체를, 코덱이 용량을 줄이는 바탕인 압축이 궁금하다면 이미지 파일은 왜 종류가 많을까를 함께 읽어 보시길 권합니다.

X