스트리밍과 IPTV
인터넷을 통한 실시간 TV는 세 가지 서로 다른 곳에서 어휘를 빌려 왔습니다 — 방송 업계, 웹 업계, 그리고 우연히 사실상의 표준이 되어버린 특정 패널 소프트웨어. 여기서 자주 마주치는 말들을 정리했습니다.
-
HLS
HTTP Live Streaming -
Apple의 스트리밍 프로토콜이며, 지금은 거의 모든 곳에서 쓰입니다. 영상은 짧은 세그먼트로 잘려 텍스트 재생목록에 나열되고, 플레이어는 이를 평범한 HTTP를 통해 순서대로 가져옵니다.
HLS가 널리 쓰이게 된 이유는 특별한 서버가 필요 없기 때문입니다 — 세그먼트도 파일이고 재생목록도 파일이라서, 어떤 웹 서버든 둘 다 문제없이 전달할 수 있습니다. Apple 플랫폼에서는 물론이고 그 밖의 거의 모든 곳에서도 기본적으로 지원됩니다.
이 설계에는 사람들이 끊임없이 마주치는 결과가 하나 딸려 옵니다 — 저장할 만한 단일 동영상 파일이라는 게 애초에 없다는 점입니다. 지금 보고 있는 그 영상은 수천 개의 조각과, 그걸 가져오는 방법을 적은 지침서로만 존재합니다.
-
매니페스트
재생목록, .m3u8 -
스트림이 무엇으로 구성되어 있는지 나열하는 텍스트 파일입니다. 마스터 매니페스트는 이용 가능한 화질 단계를 나열하고, 그 각각은 실제 세그먼트를 나열하는 미디어 매니페스트를 가리킵니다.
하나를 열어보면 헤더 몇 줄, 매개변수 몇 개, 그리고 주소들뿐입니다. 실제로 보게 되는 내용은 전부 다른 곳에 있습니다. 생방송이라면 방송이 계속되는 동안 이 파일 자체도 계속 길어지기 때문에, 플레이어는 몇 초마다 이 파일을 다시 가져옵니다.
매니페스트 주소는 보통 서명이 걸려 있고 유효 시간이 정해져 있어서, 오늘 아침엔 됐던 링크가 오후엔 아무것도 가리키지 못하는 경우가 흔합니다.
-
세그먼트
조각 -
스트림의 짧은 한 조각으로, 보통 2~10초 분량이 각자 별도의 파일로 전달됩니다. 한 시간짜리 영상이면 이런 조각이 수백에서 수천 개에 이릅니다.
세그먼트로 나누는 방식 덕분에 재생 도중 화질을 바꾸는 게 가능해집니다 — 플레이어는 그냥 다른 화질 단계에서 다음 조각을 요청하면 되고, 이 전환은 끊김이 아니라 조각과 조각 사이의 경계에서 자연스럽게 일어납니다.
스트림을 다운로드하는 게 단순 복사가 아니라 재조립이 되는 이유도 이것 때문입니다. 모든 세그먼트를 하나하나 가져온 다음, 제대로 된 인덱스를 갖춘 하나의 컨테이너에 다시 써 넣어야 합니다 — 이 단계를 거쳐야 결과물에 실제로 작동하는 탐색 바가 생깁니다.
-
적응형 비트레이트
ABR -
같은 콘텐츠를 여러 화질 단계로 준비해 두고, 연결 상태가 바뀔 때마다 플레이어가 그 사이를 오가게 하는 방식입니다. 스트림이 멈추는 대신 화질이 낮아지는 이유가 바로 이것입니다.
플레이어는 세그먼트가 얼마나 빨리 도착하는지 측정해서, 감당할 수 있다고 판단되는 가장 높은 화질을 고릅니다. 연결이 나빠지면 버퍼가 완전히 바닥나기 전에 대개 한 단계 낮은 화질로 내려갑니다.
이게 스트림 시청과 파일 다운로드 사이의 가장 큰 차이입니다. 다운로드는 최고 화질 버전을 원하고 그걸 위해 기다립니다. 반면 스트림은 멈추느니 차라리 화질이 흐려지는 쪽을 택합니다.
-
버퍼링
-
지금 보고 있는 지점보다 몇 초 앞선 영상을 미리 확보해 두어서, 짧은 네트워크 순간 장애가 일시 정지로 이어지지 않게 하는 것입니다. 화면에 이 단어가 뜬다는 건 그 여유분이 바닥났다는 뜻입니다.
버퍼가 클수록 더 많은 끊김을 견뎌내지만, 그만큼 시작하는 데 시간이 더 걸리고 채널을 바꿀 때 반응도 느려집니다. 생방송 스트림은 일부러 버퍼를 작게 유지하는데, 그래서 다시보기 영상보다 훨씬 더 쉽게 끊깁니다.
IPTV 채널이 자꾸 끊긴다면 원인은 거의 항상 제공업체와 사용자 사이 어딘가에 있습니다 — 그쪽 서버, 경로, 혹은 사용자의 회선이죠. 같은 기기의 같은 앱이 같은 비트레이트의 로컬 파일은 끊김 없이 재생한다면, 이게 바로 둘을 구분하는 가장 빠른 방법입니다.
-
IPTV
-
공중파, 케이블, 위성이 아니라 인터넷을 통해 전달되는 텔레비전입니다. 이 단어 자체는 전달 방식만을 설명할 뿐, 누가 무엇을 전달할 권리가 있는지에 대해서는 아무것도 말해주지 않습니다.
구독이라는 게 실제로 무엇으로 이루어져 있는가 하면, 채널 이름을 나열하고 각 채널의 주소를 알려주는 목록입니다 — M3U 재생목록일 수도 있고, 패널의 계정일 수도 있습니다. 플레이어는 이걸 채널 가이드로 바꿔줄 뿐, 무언가를 직접 호스팅하거나 제공하지 않습니다.
이 점은 기술적으로도, 법적으로도 중요합니다. IPTV를 재생하는 앱은 그 어떤 채널도 직접 공급하지 않으며, 어떤 제공업체가 자신이 송출하는 콘텐츠에 대한 권리를 실제로 갖고 있는지는 그 제공업체에 관한 질문이지 앱에 관한 질문이 아닙니다.
함께 보기: M3U 재생목록Xtream CodesEPG
-
M3U 재생목록
-
채널 이름과 스트림 주소를 나열한 순수 텍스트 목록으로, IPTV 구독이 전달되는 가장 흔한 방식입니다. 동영상은 단 하나도 담겨 있지 않습니다.
각 항목은 채널 이름을 적은 한 줄(관례적으로 로고, 그룹, 식별자가 함께 붙습니다)과 주소를 적은 한 줄로 이뤄집니다. 이런 관례 중 어느 것도 공식 표준으로 정해진 적이 없어서, 제공업체마다 조금씩 다르게 작성합니다.
제공업체의 목록은 이 형식이 원래 예상했던 규모를 훌쩍 넘어섰습니다 — 채널 수십만 개, 텍스트 수백 메가바이트가 이제는 평범한 수준이고, 이걸 파싱하기 전에 통째로 메모리에 올리는 앱이라면 작업을 끝내기 한참 전에 iOS에 의해 강제 종료됩니다.
함께 보기: IPTVXtream Codes
-
Xtream Codes
-
API가 사실상의 표준이 되어버린 패널 소프트웨어입니다. 재생목록 파일 대신 서버 주소, 사용자 이름, 비밀번호를 받고, 앱이 그 패널에 채널·영화·시리즈·가이드 정보를 직접 요청합니다.
이걸 만든 회사는 2019년에 문을 닫았지만, API는 그 뒤로도 계속 살아남았습니다 — 이미 수천 개의 제공업체가 이걸 기반으로 서비스를 구축해 두었고, 그 고객들도 이 방식에 익숙해져 있었기 때문입니다. "Xtream 호환"이라고 소개되는 소프트웨어는 그 회사의 제품을 쓰는 게 아니라, 그 인터페이스를 구현하고 있는 것입니다.
평범한 재생목록과 실질적으로 다른 점이 두 가지 있습니다. 카탈로그가 단순한 목록이 아니라 구조화된 데이터 형태로 도착한다는 점, 그리고 패널이 동시 접속 수 제한을 건다는 점입니다 — 이 제한 때문에 다운로드와 실시간 채널 시청을 동시에 하면 서로를 밀어내는 일이 생깁니다.
-
EPG
전자 프로그램 가이드 -
편성표입니다 — 각 채널에서 지금 무엇이 나오고 있는지, 다음엔 무엇이 나올지, 조금 전엔 무엇이 나왔는지를 알려줍니다. 채널 자체와는 따로, 보통 XMLTV 파일 형태로 전달됩니다.
가이드는 제공업체가 각 채널에 붙여둔 식별자를 기준으로 채널과 매칭됩니다. 이 식별자가 빠져 있거나 일관성이 없으면(실제로 흔한 일입니다) 가이드 데이터 자체는 정확하게 존재하는데도 채널에는 편성 정보가 전혀 표시되지 않습니다.
대형 제공업체의 전체 가이드는 그 자체만으로도 상당한 용량의 다운로드입니다 — 수천 개 채널의 며칠치 편성표를 담고 있으니까요.
함께 보기: IPTV다시보기Xtream Codes
-
다시보기
타임시프트, 아카이브 -
이미 방송이 끝난 프로그램을, 제공업체의 서버에 특정 채널의 과거 시간대를 요청해서 시청하는 기능입니다. 이는 오직 제공업체가 실제로 녹화해 둔 경우에만 가능하며, 사용자의 기기에는 아무것도 저장되지 않습니다.
이 기능이 제공되는 경우, 앱은 가이드에 표시된 지난 프로그램을 눌러서 해당 채널의 그 시간대를 요청하는 것으로 바꿔줄 수 있습니다. 보통은 며칠 치 정도까지 다시보기가 가능합니다.
이건 전적으로 제공업체가 갖춘 능력에 달린 일입니다. 애초에 녹화되지 않은 채널에 앱이 다시보기 기능을 만들어 붙일 수는 없고, 지난주 가이드에 항목이 있다고 해서 그게 곧 녹화본이 실제로 존재한다는 증거도 아닙니다.
-
DRM
디지털 저작권 관리 -
라이선스 서버에서 발급받은 키를 가진, 허가된 재생 소프트웨어만 풀 수 있는 암호화입니다. Apple 플랫폼의 FairPlay, Android의 Widevine, 그리고 대부분의 웹 브라우저가 이 방식을 씁니다.
DRM으로 보호된 스트림은 처음부터 끝까지 암호화되어 있고, 그 키는 관련 규칙을 지키겠다고 증명한 소프트웨어에만 전달됩니다 — 저장 불가, 화면 캡처 불가, 때로는 외부 디스플레이 출력조차 불가능합니다.
이건 우회할 수 있는 불편함이 아니라, 설계대로 작동하고 있는 보안 장치입니다. DRM으로 보호된 스트림을 다운로드해 준다고 주장하는 도구가 있다면, 그건 자기가 실제로 하는 일에 대해서든 그 스트림이 무엇인지에 대해서든 거짓말을 하고 있는 것입니다.