브라우저가 유튜브 영상을 파일 하나로 통째 내려받지 않고, manifest를 보고 작은 미디어 segment를 순차 요청해 buffer에 쌓아 재생한다는 사실에서 출발한다. blob 주소의 정체부터 demux·decode를 거쳐 화면에 프레임이 그려지기까지, 영상 재생 파이프라인을 단계별로 잇는다.
핵심 포인트- 초기 웹 영상은 전체 다운로드나 Flash 플러그인에 의존해 느리고 제약이 컸으나, HTML5 video 태그가 표준으로 재생 제어의 기반을 마련
- video 태그의 blob 주소는 서버 파일 위치가 아니라 브라우저 메모리에 만들어진 미디어 데이터를 가리키는 임시 URL이며, JavaScript가 받은 조각을 이 메모리에 공급하고 video가 읽어 재생
- 긴 영상을 몇 초 단위 segment로 나눠 필요한 구간부터 빠르게 시작하고, 도착한 조각을 buffer에 미리 쌓아 네트워크가 흔들려도 멈추지 않게 여유분 확보 — manifest에 담긴 해상도·조각 위치를 먼저 받아 조건에 맞는 segment를 연속 요청
- 컨테이너를 demux로 오디오·비디오 스트림으로 분리하고 decoder가 압축을 복원, CPU가 두 스트림의 시간 정보를 맞춰 순서를 조율하고 GPU가 초당 수십 프레임을 그려 재생 완성
왜 읽나스트리밍이 '그냥 된다'고만 알던 프론트엔드 개발자에게, blob·segment·buffer·demux/decode가 어떻게 맞물려 영상이 재생되는지 큰 그림을 잡아주는 10분 개념 정리.